BMS is a Go backend service for multi-workspace bookmark management. It provides:
arc routesRepository includes:
cmd/api)cmd/migrate)cmd/arc)web/sdk)web/ui)github.com/pafthang/arc for HTTP runtime and OpenAPI generationgithub.com/pafthang/orm + github.com/pafthang/dbx for data access| 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 migrations
go run ./cmd/api
API base path:
http://localhost:8080/api/v1System routes:
http://localhost:8080/healthhttp://localhost:8080/readyhttp://localhost:8080/openapi.jsonhttp://localhost:8080/docsgo run ./cmd/arc -format json -out openapi/openapi.json
Quality-gated generation:
go run ./cmd/arc -format json -out openapi/openapi.json \
-validate-quality \
-require-tags \
-require-servers \
-require-security-schemes BearerAuth \
-require-examples
pnpm install
pnpm --filter @pafthang/bms-sdk run generate
pnpm install
pnpm --filter @pafthang/bms-ui run dev
Migration 008_seed_default_admin creates a default superadmin (idempotent):
[email protected]adminadminadminRun migration status:
go run ./cmd/migrate -action status -dir migrations
Validate migration set:
go run ./cmd/migrate -action validate -dir migrations
Rollback one step:
go run ./cmd/migrate -action down -steps 1 -dir migrations
Run 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