All checks were successful
CI/CD / detect-changes (pull_request) Successful in 24s
CI/CD / test-frontend (pull_request) Has been skipped
CI/CD / test-go-pg (pull_request) Successful in 2m30s
CI/CD / test-sqlite (pull_request) Successful in 2m37s
CI/CD / build-and-deploy (pull_request) Successful in 1m30s
Three trigger primitives replacing the old monolithic scheduler: - Event triggers: extensions subscribe to bus patterns via manifest, async handler invocation through sandbox.CallEntryPoint - Webhook triggers: inbound HTTP at /api/v1/hooks/:pkg/:slug with HMAC-SHA256 verification and synchronous Starlark response - Scheduled tasks: user-created cron scripts with restricted sandbox (no raw HTTP, no DB table creation), runs as creator identity New tables: triggers, scheduled_tasks, trigger_logs (postgres + sqlite). New permission: triggers.register. Full admin + user CRUD APIs. SyncManifestTriggers hooked into seed and install flows. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package sqlite
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
"switchboard-core/store"
|
|
)
|
|
|
|
// NewStores creates all SQLite store implementations and wires them
|
|
// into the Stores bundle. Call this at startup after database.Connect().
|
|
func NewStores(db *sql.DB) store.Stores {
|
|
SetDB(db)
|
|
return store.Stores{
|
|
Users: NewUserStore(),
|
|
Teams: NewTeamStore(),
|
|
Audit: NewAuditStore(),
|
|
GlobalConfig: NewGlobalConfigStore(),
|
|
Policies: NewPolicyStore(db),
|
|
Groups: NewGroupStore(),
|
|
ResourceGrants: NewResourceGrantStore(),
|
|
Notifications: NewNotificationStore(),
|
|
NotifPrefs: NewNotificationPreferenceStore(),
|
|
Presence: NewPresenceStore(),
|
|
Health: NewHealthStore(),
|
|
Connections: NewConnectionStore(),
|
|
Dependencies: NewDependencyStore(),
|
|
Packages: NewPackageStore(),
|
|
Workflows: NewWorkflowStore(),
|
|
ExtPermissions: NewExtensionPermissionStore(),
|
|
ExtData: NewExtDataStore(),
|
|
Tickets: NewTicketStore(),
|
|
RateLimits: NewRateLimitStore(),
|
|
Triggers: NewTriggerStore(),
|
|
ScheduledTasks: NewScheduledTaskStore(),
|
|
}
|
|
}
|