Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
295 commits
Select commit Hold shift + click to select a range
01aab56
feat: Add comprehensive admin API for authorization management
stmh Aug 31, 2025
1fa7aa3
Update documentation and fix tests for new bearer token system
stmh Aug 31, 2025
306830a
fix(auth): centralize user ID logic and fix bearer token authorization
stmh Aug 31, 2025
3480151
feat: implement shared admin types and enhance authentication logging
stmh Aug 31, 2025
1629d87
refactor: remove emojis from admin command success messages
stmh Aug 31, 2025
da4dd95
fix: resolve clap panic in admin permissions test command
stmh Aug 31, 2025
149bd8e
feat: use email addresses as user identifiers for OAuth users
stmh Aug 31, 2025
36921a3
feat: enhance OIDC user info capture and logging
stmh Aug 31, 2025
20b09e8
feat: implement OIDC profile picture support in user avatars
stmh Aug 31, 2025
6c93781
feat: implement comprehensive permission-based UI access control
stmh Aug 31, 2025
3cec366
refactor: streamline admin CLI command error handling
stmh Aug 31, 2025
e10373a
fix: update OIDC test data and apply code formatting
stmh Aug 31, 2025
c63f96d
feat: add permission-based visibility for custom actions
stmh Aug 31, 2025
342c2f6
fix: resolve permission-based action button visibility race condition
stmh Aug 31, 2025
cf84e49
chore: Code style
stmh Aug 31, 2025
b8d71ed
fix: resolve clippy warnings and improve code quality
stmh Aug 31, 2025
5717477
fix: improve authorization security and robustness
stmh Aug 31, 2025
f641a40
chore: Code style fixes
stmh Aug 31, 2025
ad30988
fix: resolve frontend linting errors
stmh Aug 31, 2025
cbc1740
docs: enhance bearer token security documentation
stmh Aug 31, 2025
74399c2
fix: align Casbin model matcher between test and production environments
stmh Aug 31, 2025
d368f3d
Merge pull request #436 from factorial-io/feat/rbac
stmh Sep 3, 2025
91505b5
chore: Remove unused file
stmh Sep 3, 2025
77648aa
fix: improve bearer token authentication and error logging
stmh Sep 3, 2025
8557bf6
refactor: remove unused get_user_by_token method from AuthorizationSe…
stmh Sep 3, 2025
f73e63e
Revert "refactor: remove unused get_user_by_token method from Authori…
stmh Sep 3, 2025
0fe385d
fix: Fix code warning
stmh Sep 3, 2025
bc792d8
Merge branch 'main' into next
stmh Sep 17, 2025
07cb19a
docs: add PRD for unified output system with logs and shell access
stmh Sep 17, 2025
c4f4005
feat: add bollard technical spike and findings documentation
stmh Sep 17, 2025
311f569
feat: add unified output system and configuration
stmh Sep 17, 2025
2dc35a7
feat!: refactor TaskDetails and TaskManager to use unified output
stmh Sep 17, 2025
39c852a
fix: show container status messages to clients via task output
stmh Sep 17, 2025
b704b83
docs: add code quality reminder to CLAUDE.md
stmh Sep 17, 2025
91c7d7b
feat: add WebSocket message types for logs and shell sessions
stmh Sep 17, 2025
bef20ac
docs: document Phase 1 completion and next steps
stmh Sep 17, 2025
b33a52f
feat: implement bollard log streaming and shell services
stmh Sep 17, 2025
15a0eea
feat(core): add helper methods for container lookup in AppData
stmh Sep 18, 2025
4cf96a6
refactor(services): improve error handling and add helper methods
stmh Sep 18, 2025
bbc83e7
feat(api): integrate service errors with AppError
stmh Sep 18, 2025
922bef8
feat(api): implement logs and shell API endpoints
stmh Sep 18, 2025
5ec778e
feat(router): integrate logs and shell endpoints into API router
stmh Sep 18, 2025
ad5fac9
test: add comprehensive tests for logs and shell services
stmh Sep 18, 2025
3355b45
fix(test): update secure_response_test for removed TaskDetails fields
stmh Sep 18, 2025
5312162
docs: update CLAUDE.md with Phase 2 completion status
stmh Sep 18, 2025
ec78fc8
chore: Fix clippy suggestions
stmh Sep 18, 2025
74bc69e
Merge branch 'main' into next
stmh Sep 20, 2025
5db0e88
refactor: update authorization config to use serde_norway
stmh Sep 20, 2025
5c84d67
refactor(cli): reorganize app commands into modular structure and add…
stmh Sep 21, 2025
7d8b6a0
feat(logs): implement authenticated WebSocket log streaming with impr…
stmh Sep 21, 2025
f88647c
feat(cli): simplify --timestamps flag to boolean behavior
stmh Sep 21, 2025
9d1a125
feat(cli): improve log command options for better UX
stmh Sep 21, 2025
8137915
docs: update PRD and CLAUDE.md to reflect Phase 3 completion
stmh Sep 21, 2025
b4be84c
feat(cli): improve log command UX and add terminal detection
stmh Sep 21, 2025
afad796
feat(websocket): implement unified task output streaming system
stmh Sep 22, 2025
4606adc
refactor(api): restructure handlers into REST and WebSocket modules
stmh Sep 22, 2025
ee1875d
refactor(websocket): consolidate message types in scotty-core
stmh Sep 22, 2025
b220730
docs: update PRD and CLAUDE.md for Phase 3.5 completion
stmh Sep 22, 2025
71d155e
feat(websocket): implement real-time task output streaming for Phase 3.6
stmh Sep 22, 2025
92660bb
docs: update CLAUDE.md and PRD with Phase 3.6 completion details
stmh Sep 22, 2025
56a1d03
feat(dev): add Zed debug configuration for scotty server
stmh Sep 22, 2025
740eda5
chore: Apply clippy fixes
stmh Sep 22, 2025
3e789b6
chore: Apply cargo fmt fixes
stmh Sep 22, 2025
8d36f23
refactor(websocket): improve messaging consistency and error handling
stmh Sep 22, 2025
d64016e
Merge branch 'main' into next
stmh Sep 24, 2025
e57a9ec
fix: normalize URLs to prevent double slashes in API calls (#470)
stmh Sep 24, 2025
82db01d
feat(core): add TypeScript bindings generation for WebSocket messages
stmh Sep 28, 2025
1cba507
feat(websocket): enhance message types for frontend integration
stmh Sep 28, 2025
fef2f3b
feat(frontend): implement real-time task output and WebSocket integra…
stmh Sep 28, 2025
cd8b245
chore: update documentation and configuration for frontend integration
stmh Sep 28, 2025
feb5d6a
fix(auth): resolve wildcard scope expansion bug in authorization system
stmh Sep 28, 2025
319f021
refactor(frontend): centralize session management and eliminate token…
stmh Sep 28, 2025
5c58511
docs(config): improve OAuth assignments documentation
stmh Sep 28, 2025
b8e50a6
fix(frontend): resolve WebSocket integration and task output issues
stmh Sep 28, 2025
7dfe6f1
chore: update dependencies and configuration files
stmh Sep 28, 2025
24d2250
refactor: optimize build system and eliminate type duplication
stmh Sep 28, 2025
bcc4990
docs: update documentation for Phase 3.7 infrastructure optimization
stmh Sep 28, 2025
eeecd48
docs: clarify TaskDetails breaking change implementation
stmh Sep 28, 2025
3eb7fc1
fix(ts-generator): prevent unwanted bindings directory creation
stmh Sep 28, 2025
1f4f0a3
feat(output): add dedicated OutputStreamType variants for status mess…
stmh Sep 28, 2025
6e64fa5
perf(auth): implement token caching to reduce filesystem access
stmh Sep 28, 2025
55d2703
refactor(test): reduce app state creation duplication in bearer_auth_…
stmh Sep 28, 2025
41b65f6
refactor(core): embed TaskOutput directly in TaskDetails for tight co…
stmh Sep 29, 2025
8ce9a6a
Merge branch 'main' into feat/better-logs-and-shell
stmh Oct 16, 2025
d4f3ffb
fix: resolve merge conflicts from main branch
stmh Oct 16, 2025
90fb25a
chore: add allow(dead_code) attributes to suppress clippy warnings
stmh Oct 16, 2025
040ec7d
Merge branch 'main' into feat/better-logs-and-shell
stmh Oct 23, 2025
7a507d4
Merge branch 'main' into feat/better-logs-and-shell
stmh Oct 23, 2025
1570232
Merge branch 'main' into feat/better-logs-and-shell
stmh Oct 23, 2025
160375a
fix(backend): resolve deadlock and lock contention in task management
stmh Oct 23, 2025
5518021
chore(frontend): improve UI components and development tooling
stmh Oct 23, 2025
20b3da2
fix(frontend): resolve custom actions dropdown reactivity issues
stmh Oct 23, 2025
b198374
chore: Code style fixes
stmh Oct 23, 2025
d3bd5ae
refactor(frontend): fix ESLint errors and improve code quality
stmh Oct 24, 2025
320cc53
Merge branch 'main' into next
stmh Oct 24, 2025
287dff8
docs: correct unified output system implementation status
stmh Oct 24, 2025
bd8ad97
fix(auth): resolve WebSocket dev mode authentication and security issues
stmh Oct 24, 2025
3b8c03a
refactor(tasks): unify task completion handlers and fix state management
stmh Oct 24, 2025
c2528c1
fix: cleanup frontend task output
stmh Oct 24, 2025
7e8b156
feat(frontend): implement container log viewer with navigation improv…
stmh Oct 24, 2025
72efe2f
refactor: improve log output styling, performance, and controls
stmh Oct 24, 2025
f962e82
refactor(frontend): restructure task detail page for consistency
stmh Oct 24, 2025
9e11bd9
ci: add TypeScript generation step to frontend build
stmh Oct 24, 2025
82eb890
fix(ci): run TypeScript generator from correct working directory
stmh Oct 24, 2025
d5dcf49
Merge pull request #513 from factorial-io/feat/logview-in-frontend
stmh Oct 24, 2025
6842cdb
chore: Use AGENTS.md
stmh Oct 24, 2025
c440587
chore: initialize beads issue tracking for unified output system
stmh Oct 24, 2025
5f93545
docs: move progress tracking from docs to beads issues
stmh Oct 24, 2025
7711819
docs: research OpenTelemetry metrics with OTel Collector + VictoriaMe…
stmh Oct 24, 2025
d7971ed
feat: add OpenTelemetry metrics infrastructure with OTel Collector + …
stmh Oct 24, 2025
524fbbe
refactor: consolidate observability stack into main docker-compose.yml
stmh Oct 24, 2025
bcd0dfa
feat(metrics): add OpenTelemetry metrics module with ScottyMetrics st…
stmh Oct 24, 2025
2a69d85
feat(metrics): instrument log streaming service with OpenTelemetry me…
stmh Oct 24, 2025
2022a4f
feat(metrics): make OTLP endpoint configurable via environment variable
stmh Oct 24, 2025
f3de56c
fix(observability): remove resourcedetection processor from otel-coll…
stmh Oct 25, 2025
a43d743
feat(observability): add Grafana dashboard for scotty metrics
stmh Oct 25, 2025
012fc27
fix(observability): correct OpenTelemetry metric names in Grafana das…
stmh Oct 25, 2025
cab98b6
feat: add memory usage metrics (scotty-17)
stmh Oct 25, 2025
72207b6
refactor: reorganize observability stack into dedicated directory
stmh Oct 25, 2025
29d47c0
feat(metrics): add task metrics and refactor to use dedicated helper …
stmh Oct 25, 2025
f5a842a
feat(metrics): add stable Tokio task metrics tracking
stmh Oct 25, 2025
42d296a
feat(observability): add Tokio runtime metrics to Grafana dashboard
stmh Oct 25, 2025
bb28b5c
feat(observability): enhance metrics collection and add HTTP metrics …
stmh Oct 25, 2025
991755e
refactor: use spawn_instrumented for consistent Tokio metrics tracking
stmh Oct 25, 2025
075c755
feat(observability): upgrade to OpenTelemetry 0.31 and implement cust…
stmh Oct 25, 2025
8e29753
fix(observability): enable HTTP metrics middleware when metrics telem…
stmh Oct 25, 2025
aaa4946
chore: close OpenTelemetry upgrade task (scotty-15)
stmh Oct 25, 2025
28783bc
feat(observability): add AppList metrics for application monitoring (…
stmh Oct 26, 2025
a612480
feat(observability): add WebSocket metrics instrumentation (scotty-11)
stmh Oct 26, 2025
184fa98
feat(observability): add task output streaming metrics (scotty-16)
stmh Oct 26, 2025
162326f
feat(observability): instrument shell service with metrics (scotty-10)
stmh Oct 26, 2025
6e14d8f
refactor(observability): move app metrics into dedicated dashboard row
stmh Oct 26, 2025
17e9387
docs(observability): add comprehensive observability documentation (s…
stmh Oct 26, 2025
fe60b3b
chore: update beads issue tracking with completed metrics work
stmh Oct 26, 2025
6854663
docs(observability): add Prometheus compatibility and stack flexibili…
stmh Oct 26, 2025
5fc9fa3
docs(observability): condense Prometheus compatibility section
stmh Oct 26, 2025
d2e0bbc
docs: add observability to documentation navigation menu
stmh Oct 26, 2025
d4eb5ee
chore: update beads tracking with completed documentation task
stmh Oct 26, 2025
1a3019a
fix: resolve clippy linting errors in metrics modules
stmh Oct 26, 2025
307230f
style: apply cargo fmt formatting fixes
stmh Oct 26, 2025
40e96fb
Merge pull request #514 from factorial-io/feat/otel-metrics-observabi…
stmh Oct 26, 2025
4afb059
Merge branch main into feat/better-logs-and-shell
stmh Oct 26, 2025
87adaab
Merge branch 'next' into feat/better-logs-and-shell
stmh Oct 26, 2025
be32979
Add Rust code quality improvement tasks to backlog
stmh Oct 26, 2025
256c844
fix(scotty-types): prevent panic on UTF-8 character truncation
stmh Oct 26, 2025
5d7bac8
Merge pull request #485 from factorial-io/feat/better-logs-and-shell
stmh Oct 26, 2025
416d90c
chore: current beads status
stmh Oct 26, 2025
4685116
chore: upgrade dependencies and improve code quality
stmh Oct 26, 2025
78a63ec
fix(frontend): remove tsconfig exclude to fix CI warning
stmh Oct 26, 2025
13e6ae5
fix(docker): update Dockerfile to use bun.lock instead of bun.lockb
stmh Oct 26, 2025
335f3bd
fix(ts-generator): use absolute path from CARGO_MANIFEST_DIR for Dock…
stmh Oct 26, 2025
cd6dc56
fix(frontend): add $generated path alias for TypeScript generated files
stmh Oct 26, 2025
c29d2e1
fix(frontend): point $generated alias to index.ts file explicitly
stmh Oct 26, 2025
32840c2
fix(frontend): run svelte-kit sync before build
stmh Oct 26, 2025
d28b542
fix(ci): run TypeScript generator from workspace root
stmh Oct 26, 2025
b089f99
fix(ts-generator): generate index.ts with type guards and re-exports
stmh Oct 26, 2025
f6e6ab8
refactor(frontend): replace barrel file with inline type guards
stmh Oct 27, 2025
29845ae
fix(security): use constant-time comparison for bearer token validation
stmh Oct 27, 2025
c3328f1
fix(security): apply constant-time comparison to login handler
stmh Oct 27, 2025
9e296ad
fix(oauth): replace hardcoded localhost with configurable frontend ba…
stmh Oct 27, 2025
8775feb
Merge pull request #524 from factorial-io/fix/scotty-39-constant-time…
stmh Oct 27, 2025
c788eaa
fix(oauth): replace hardcoded localhost with configurable frontend ba…
stmh Oct 27, 2025
187c264
fix(security): use constant-time comparison for bearer token validation
stmh Oct 27, 2025
0767494
fix(security): apply constant-time comparison to login handler
stmh Oct 27, 2025
be62734
docs(oauth): document frontend_base_url configuration option
stmh Oct 27, 2025
34318b4
Merge branch 'next' into fix/scotty-36-oauth-callback-url
stmh Oct 27, 2025
0886b0f
fix(security): apply constant-time comparison to login handler
stmh Oct 27, 2025
1b69bc6
fix(oauth): replace hardcoded localhost with configurable frontend ba…
stmh Oct 27, 2025
90a1dcc
Merge pull request #525 from factorial-io/fix/scotty-36-oauth-callbac…
stmh Oct 27, 2025
317d52a
feat(oauth): implement session cleanup and comprehensive monitoring
stmh Oct 27, 2025
e6dd48e
fix(security): Use placeholder tokens for bearer-tokens
stmh Oct 27, 2025
c19268f
Merge pull request #526 from factorial-io/feat/oauth-session-cleanup-…
stmh Oct 27, 2025
f52f8ba
fix(oauth): protect PKCE verifier and CSRF token with MaskedSecret
stmh Oct 28, 2025
01a2f47
refactor(oauth): remove unnecessary base64 encoding from PKCE verifier
stmh Oct 28, 2025
50e6cd2
Merge pull request #528 from factorial-io/fix/scotty-38-pkce-secret-p…
stmh Oct 28, 2025
9926eab
feat(security): implement comprehensive API rate limiting
stmh Oct 28, 2025
d14478d
feat(metrics): add rate limiting metrics and Grafana dashboard
stmh Oct 28, 2025
9bef28f
docs: add comprehensive rate limiting documentation
stmh Oct 28, 2025
2baff5b
fix(tests): add IP headers to rate limiting integration tests
stmh Oct 28, 2025
dc4d57d
bd sync: 2025-10-28 23:20:35
stmh Oct 28, 2025
fc61985
fix(security): address critical rate limiting issues from PR review
stmh Oct 28, 2025
ed671d6
docs: address PR review feedback for rate limiting
stmh Oct 28, 2025
cc57db0
feat(metrics): add comprehensive rate limiting metrics
stmh Oct 28, 2025
37042ed
Merge pull request #529 from factorial-io/feat/scotty-40-rate-limiting
stmh Oct 28, 2025
1d7027f
feat(scottyctl): add app:shell command and refactor service validation
stmh Nov 1, 2025
9d63459
feat(scottyctl): implement interactive shell with raw terminal mode
stmh Nov 1, 2025
f43db90
fix(websocket): add handler for ShellSessionData input
stmh Nov 2, 2025
6650627
fix(shell): use singleton ShellService across all handlers
stmh Nov 2, 2025
e02421a
docs: add comprehensive project documentation
stmh Nov 2, 2025
02cc6f7
fix: add .env file loading support for server configuration
stmh Nov 2, 2025
bd38585
docs: document .env file support for configuration
stmh Nov 2, 2025
8c4489b
fix(shell): resolve critical TTY mode bugs for interactive shell
stmh Nov 2, 2025
1f4b3cd
feat(shell): add terminal size support for interactive shell
stmh Nov 2, 2025
3dd7b64
fix(shell): remove double-wrapping of shell commands
stmh Nov 2, 2025
4dabc3c
refactor(shell): migrate from REST to WebSocket-only implementation
stmh Nov 2, 2025
dd2d84a
test(shell): add comprehensive unit tests for shell feature
stmh Nov 2, 2025
8b7d56b
style: apply cargo fmt formatting
stmh Nov 2, 2025
843296f
chore: current beads status
stmh Nov 2, 2025
58b3d21
feat(shell): propagate exit codes in command mode
stmh Nov 2, 2025
d80c3cf
refactor(shell): add SessionGuard for panic-safe cleanup
stmh Nov 2, 2025
e69c393
test(shell): add E2E WebSocket integration tests
stmh Nov 2, 2025
4a3c743
feat(shell): add structured audit logging for compliance
stmh Nov 2, 2025
30e4969
refactor(websocket): trim ShellSessionData payload in logs
stmh Nov 2, 2025
c22f6d3
chore: update Cargo.lock and beads status
stmh Nov 2, 2025
087ad8d
style: apply cargo fmt and fix clippy warnings
stmh Nov 2, 2025
24c09af
fix: resolve clippy warnings for pre-push hook
stmh Nov 2, 2025
c0142ba
fix: suppress dead_code warnings for test utils
stmh Nov 2, 2025
94aef58
fix: fix broken doctests after adding lib.rs
stmh Nov 2, 2025
65f363c
docs: add documentation for app:logs and app:shell commands
stmh Nov 2, 2025
5c06d3e
fix(cli): remove non-functional --workdir option from app:shell command
stmh Nov 2, 2025
93c5eb4
Merge pull request #541 from factorial-io/feat/scotty-2-shell-cli
stmh Nov 2, 2025
19412ae
refactor(observability): split monolithic Grafana dashboard into dedi…
stmh Nov 2, 2025
2bc1ea4
fix(observability): set Y-axis minimum to 0 for memory panels
stmh Nov 2, 2025
98efbbd
fix(observability): reduce VictoriaMetrics retention and disk space t…
stmh Nov 2, 2025
8c08cf4
fix(observability): correct metric names in overview dashboard
stmh Nov 2, 2025
bbc53df
feat(auth): support bearer token fallback when OAuth is enabled
stmh Nov 3, 2025
07d26a6
chore: update beads metadata for scotty-46
stmh Nov 3, 2025
64b33f6
perf(auth): check bearer tokens before OAuth to avoid network latency
stmh Nov 3, 2025
5608e30
Merge pull request #542 from factorial-io/feat/scotty-46-oauth-bearer…
stmh Nov 3, 2025
6ebb352
refactor(auth): streamline bearer token check and improve logging con…
stmh Nov 3, 2025
2f66e9d
chore: update beads metadata for scotty-49
stmh Nov 3, 2025
8082df1
fix(config): prevent secrets in Docker images and clarify identifier …
stmh Nov 3, 2025
0f082a3
Merge pull request #545 from factorial-io/fix/scotty-47-config-security
stmh Nov 3, 2025
e2becca
docs: add comprehensive hybrid OAuth + bearer token authentication do…
stmh Nov 3, 2025
907af7f
docs: address PR feedback on hybrid auth documentation
stmh Nov 3, 2025
8ee3429
Merge pull request #546 from factorial-io/feat/scotty-48-hybrid-auth-…
stmh Nov 3, 2025
ef54336
fix(state-machine): propagate errors from handlers to tasks
stmh Nov 3, 2025
21dadba
chore(beads): update scotty-44 with implementation notes
stmh Nov 3, 2025
0c6012a
refactor: extract task completion logic into shared helper
stmh Nov 3, 2025
ecd0693
Merge pull request #547 from factorial-io/fix/scotty-44-error-propaga…
stmh Nov 3, 2025
a2e8ef8
chore(beads): update scotty-44 with refactoring notes
stmh Nov 3, 2025
9b49149
feat: add .scottyignore support for app:create
stmh Nov 4, 2025
e9c328d
fix: extract and display error messages from API responses
stmh Nov 4, 2025
2a8a282
chore: remove unused test helper functions
stmh Nov 4, 2025
d98d614
feat: add gzip compression for file uploads in app:create
stmh Nov 4, 2025
de067c9
chore: add beads configuration template
stmh Nov 4, 2025
32b34a0
fix: address PR feedback with tests and security improvements
stmh Nov 4, 2025
7e7e52c
Merge pull request #549 from factorial-io/feature/scottyignore-support
stmh Nov 4, 2025
1f372d3
Merge remote-tracking branch 'origin/next' into feature/optimize-file…
stmh Nov 4, 2025
9c7ad59
fix: enable real-time task output streaming in scottyctl
stmh Nov 4, 2025
ae48f7b
fix: enable real-time task output streaming in scottyctl
stmh Nov 4, 2025
9f8595d
fix: address PR feedback with proper error handling and security
stmh Nov 4, 2025
e62b841
fix: improve decompression error handling and size limit enforcement
stmh Nov 4, 2025
025b392
Merge pull request #550 from factorial-io/feature/optimize-file-transfer
stmh Nov 4, 2025
a9194fe
docs: document task handle behavior and add WebSocket fallback logging
stmh Nov 4, 2025
b22af1b
Merge pull request #551 from factorial-io/fix/task-output-streaming
stmh Nov 4, 2025
d10ac0c
docs: clean up intermediate docs and fix OAuth authentication documen…
stmh Nov 4, 2025
ed86f25
docs: complete authorization documentation with admin permissions
stmh Nov 4, 2025
48fa311
docs: complete CLI documentation with admin and auth commands
stmh Nov 4, 2025
ae56afb
docs: update frontend README with Scotty-specific documentation
stmh Nov 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .beads/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# SQLite databases
*.db
*.db-journal
*.db-wal
*.db-shm

# Daemon runtime files
daemon.lock
daemon.log
daemon.pid
bd.sock

# Legacy database files
db.sqlite
bd.db

# Keep JSONL exports and config (source of truth for git)
!*.jsonl
!metadata.json
!config.json
48 changes: 48 additions & 0 deletions .beads/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Beads Configuration File
# This file configures default behavior for all bd commands in this repository
# All settings can also be set via environment variables (BD_* prefix)
# or overridden with command-line flags

# Issue prefix for this repository (used by bd init)
# If not set, bd init will auto-detect from directory name
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
# issue-prefix: ""

# Use no-db mode: load from JSONL, no SQLite, write back after each command
# When true, bd will use .beads/issues.jsonl as the source of truth
# instead of SQLite database
# no-db: false

# Disable daemon for RPC communication (forces direct database access)
# no-daemon: false

# Disable auto-flush of database to JSONL after mutations
# no-auto-flush: false

# Disable auto-import from JSONL when it's newer than database
# no-auto-import: false

# Enable JSON output by default
# json: false

# Default actor for audit trails (overridden by BD_ACTOR or --actor)
# actor: ""

# Path to database (overridden by BEADS_DB or --db)
# db: ""

# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
# auto-start-daemon: true

# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
# flush-debounce: "5s"

# Integration settings (access with 'bd config get/set')
# These are stored in the database, not in this file:
# - jira.url
# - jira.project
# - linear.url
# - linear.api-key
# - github.org
# - github.repo
# - sync.branch - Git branch for beads commits (use BEADS_SYNC_BRANCH env var or bd config set)
50 changes: 50 additions & 0 deletions .beads/issues.jsonl

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions .beads/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"database": "beads.db",
"version": "0.21.5",
"jsonl_export": "beads.jsonl"
}
51 changes: 51 additions & 0 deletions .cargo-husky/hooks/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/sh
#
# Pre-push hook for scotty
# Ensures code quality before pushing to remote
#

set -e

echo "Running pre-push checks..."
echo ""

# 1. Check code formatting first (fastest check)
echo "📝 Checking Rust code formatting..."
cargo fmt -- --check
echo "✅ Rust formatting OK"
echo ""

# 2. Run Clippy linter
echo "🔍 Running Clippy linter..."
cargo clippy -- -D warnings
echo "✅ Clippy checks passed"
echo ""

# 3. Frontend checks (only if frontend files changed)
# Check if any frontend files are being pushed
if git diff --name-only @{upstream}..HEAD 2>/dev/null | grep -q "^frontend/" || \
git diff --name-only HEAD 2>/dev/null | grep -q "^frontend/"; then

echo "🎨 Linting frontend code..."
cd frontend && npm run lint
cd ..
echo "✅ Frontend linting passed"
echo ""

echo "🔎 Type-checking frontend code..."
cd frontend && npm run check
cd ..
echo "✅ Frontend type checking passed"
echo ""
else
echo "⏭️ Skipping frontend checks (no frontend changes detected)"
echo ""
fi

# 4. Run Rust tests (slowest, run last)
echo "🧪 Running Rust tests..."
cargo test
echo "✅ All tests passed"
echo ""

echo "🎉 All pre-push checks passed! Proceeding with push..."
5 changes: 5 additions & 0 deletions .env.1password
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SCOTTY__DOCKER__REGISTRIES__FACTORIAL__PASSWORD=op://Kubernetes/Deploybot Kubernetes token/password
SCOTTY__API__OAUTH__CLIENT_ID=op://Scotty/scotty local oauth gitlab/application_id
SCOTTY__API__OAUTH__CLIENT_SECRET=op://Scotty/scotty local oauth gitlab/Secret
SCOTTY__TELEMETRY="metrics"
OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317"
10 changes: 10 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,16 @@ jobs:

steps:
- uses: actions/checkout@v4

# Setup Rust toolchain for TypeScript generation
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable

# Generate TypeScript types from Rust code
- name: Generate TypeScript types
run: cargo run --package scotty-ts-generator

- uses: oven-sh/setup-bun@v2

# run any `bun` or `bunx` command
Expand Down
17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
/target
/ts-generator/target
frontend/node_modules
frontend/src/generated/
scotty-types/bindings/
docs/node_modules
docs/_site
apps/test-nginx-creation
/apps/test-nginx
apps/cd-with-db/
frontend/public
/.beads/daemon.lock

# Environment files with secrets
.env
.env.local
.env.production

# Configuration files with sensitive data
# Note: We keep config/default.yaml and config/casbin/policy.yaml tracked
# for internal use, but document that secrets should use env vars.
# For external users, they should copy from .example files.
config/local.yaml
config/production.yaml
config/*.local.yaml
18 changes: 18 additions & 0 deletions .zed/debug.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Project-local debug tasks
//
// For more documentation on how to configure debug tasks,
// see: https://zed.dev/docs/debugger
[
{
"label": "Build & Debug scotty server",
"build": {
"command": "cargo",
"args": ["build", "--bin", "scotty"]
},
"program": "$ZED_WORKTREE_ROOT/target/debug/scotty",
// sourceLanguages is required for CodeLLDB (not GDB) when using Rust
"sourceLanguages": ["rust"],
"request": "launch",
"adapter": "CodeLLDB"
}
]
Loading