BMS is a Go backend service for multi-workspace bookmark management. It provides:
- Email/password auth with access/refresh tokens
- User profile and user settings APIs
- Workspace CRUD and membership management with roles
- Bookmark and tag CRUD inside workspaces
- OpenAPI generation from registered
arcroutes
Repository includes:
- Backend API (
cmd/api) - Migration CLI (
cmd/migrate) - OpenAPI generator CLI (
cmd/arc) - Web SDK (
web/sdk) - Web UI (
web/ui)
- Go
github.com/pafthang/arcfor HTTP runtime and OpenAPI generationgithub.com/pafthang/orm+github.com/pafthang/dbxfor data access- SQLite as the only database
- Go 1.25+
| Name | Default | Description |
|---|---|---|
BMS_HTTP_ADDR |
:8080 |
HTTP listen address |
BMS_DB_DSN |
file:bms.db?_pragma=foreign_keys(1)&_pragma=busy_timeout(5000) |
SQLite DSN |
BMS_JWT_SECRET |
dev-secret-change-me |
JWT signing secret |
BMS_ACCESS_TTL_SEC |
900 |
Access token TTL in seconds |
BMS_REFRESH_TTL_SEC |
2592000 |
Refresh token TTL in seconds |
BMS_ENABLE_DOCS |
true |
Enable /docs and /openapi.json routes |
BMS_CORS_ALLOWED_ORIGINS |
http://localhost:3000,http://localhost:5173 |
Comma-separated CORS origins |
go run ./cmd/migrate -action up -dir migrationsgo run ./cmd/apiAPI base path:
http://localhost:8080/api/v1
System routes:
http://localhost:8080/healthhttp://localhost:8080/readyhttp://localhost:8080/openapi.jsonhttp://localhost:8080/docs
go run ./cmd/arc -format json -out openapi/openapi.jsonQuality-gated generation:
go run ./cmd/arc -format json -out openapi/openapi.json \
-validate-quality \
-require-tags \
-require-servers \
-require-security-schemes BearerAuth \
-require-examplespnpm install
pnpm --filter @pafthang/bms-sdk run generatepnpm install
pnpm --filter @pafthang/bms-ui run devMigration 008_seed_default_admin creates a default superadmin (idempotent):
- Email:
admin@admin.admin - Password:
adminadminadmin
Run migration status:
go run ./cmd/migrate -action status -dir migrationsValidate migration set:
go run ./cmd/migrate -action validate -dir migrationsRollback one step:
go run ./cmd/migrate -action down -steps 1 -dir migrationsRun all tests:
go test ./...The repository includes integration tests using SQLite and real HTTP handlers.
CI additionally verifies OpenAPI quality gates and OpenAPI 3.1 validation.
MIT. See LICENSE.
Current route groups:
AuthUsersUserSettingsWorkspacesWorkspaceUsersBookmarksTagsAdmin