Commit Graph

163 Commits

Author SHA1 Message Date
Xiaoxia AI f73b87314d ci(release): bind gitea token for archive checkout 2026-06-22 18:05:26 +08:00
Xiaoxia AI 785b73239e ci(release): package web artifact on runtime builder 2026-06-22 17:55:16 +08:00
Xiaoxia AI 3f2afbf770 ci(release): allow builder-local production upload key 2026-06-22 16:42:56 +08:00
Xiaoxia AI 598092f5f6 ci(release): add runtime builder runner workflow 2026-06-22 15:17:57 +08:00
Xiaoxia AI de9ac41add docs(release): add runtime build host runbook 2026-06-22 15:14:44 +08:00
Xiaoxia AI a21b44cf55 fix(release): prevent runtime builds on production host 2026-06-22 15:00:23 +08:00
Xiaoxia AI 92a515fa05 docs(deploy): document production runtime image gate 2026-06-22 14:57:40 +08:00
Xiaoxia AI 8a9542274f fix(deploy): require runtime image artifact for production 2026-06-22 14:53:48 +08:00
Xiaoxia AI df7c4ee0d7 chore(release): add runtime image artifact deploy 2026-06-22 14:48:33 +08:00
Xiaoxia AI 0042c4d54f fix(web): route admin mocks to coming soon 2026-06-22 10:55:32 +08:00
Xiaoxia AI 51a1729c59 fix(web): disable unsupported subscription api calls 2026-06-22 10:35:24 +08:00
Xiaoxia AI 6fb8d11cec fix(deploy): skip runtime image builds on production host 2026-06-22 10:04:26 +08:00
Xiaoxia AI 1cf43fa6a0 fix(deploy): isolate production web api proxy 2026-06-22 10:02:03 +08:00
Xiaoxia AI 1939878dec fix(deploy): require prebuilt web artifact for production 2026-06-22 09:34:27 +08:00
Xiaoxia AI c7f243d7d8 fix(deploy): cache web dependencies during image build 2026-06-22 07:47:49 +08:00
Xiaoxia AI d7ff0dceb1 fix(deploy): allow direct production deploy host prefix 2026-06-22 07:15:02 +08:00
Xiaoxia AI aa2b190866 fix(deploy): allow direct staging deploy host prefix 2026-06-21 23:13:51 +08:00
Xiaoxia AI 238cffcbcf fix(deploy): align staging deploy host prefix 2026-06-21 23:11:36 +08:00
Xiaoxia AI 70a9f4f4b5 fix(deploy): use mirrored web base images 2026-06-21 17:23:24 +08:00
Xiaoxia AI 2874ab0ac0 fix(deploy): rebuild web image during releases 2026-06-21 16:49:00 +08:00
Xiaoxia AI 3680888d36 fix(auth): allow registration without display name 2026-06-21 16:24:21 +08:00
Xiaoxia AI a186f367f3 fix(deploy): separate production application deployment 2026-06-21 15:50:40 +08:00
Xiaoxia AI 713a244e80 chore(release): provision separated production infrastructure 2026-06-21 15:35:09 +08:00
Xiaoxia AI 14e3cde119 chore(release): initialize separated production env 2026-06-21 14:24:23 +08:00
Xiaoxia AI f9c012098f chore(release): allow smtp skip in strict smoke 2026-06-21 14:09:29 +08:00
Xiaoxia AI b7e69c4e0b chore(release): script database backup runbook 2026-06-21 13:26:45 +08:00
Xiaoxia AI e98dfc9ffb chore(release): add alembic preflight check 2026-06-21 13:01:49 +08:00
Xiaoxia AI ccb6786e0b chore(release): add external service smoke checks 2026-06-21 12:50:33 +08:00
Xiaoxia AI 6d68c28860 chore(release): validate production env readiness 2026-06-21 12:34:51 +08:00
Xiaoxia AI ccb7e1e57a refactor(storage): retire minio runtime naming 2026-06-21 11:20:55 +08:00
Xiaoxia AI 3594cc1216 refactor(auth): configure external service adapters 2026-06-21 11:04:07 +08:00
Xiaoxia AI b78a290bdd feat(auth): add verification and password reset routes 2026-06-21 10:40:56 +08:00
Xiaoxia AI 9872c20d30 refactor(adapters): remove legacy postgres adapter 2026-06-21 10:11:18 +08:00
Xiaoxia AI 6ba97351aa refactor(auth): remove auth simple shim 2026-06-21 09:57:17 +08:00
Xiaoxia AI 27ea04264f feat(workspace): restore member management routes 2026-06-21 09:36:08 +08:00
Xiaoxia AI 383151efcb feat(workspace): restore core routes on sqlalchemy adapters 2026-06-21 09:22:09 +08:00
Xiaoxia AI a912e17868 refactor(auth): replace legacy middleware sentinel 2026-06-21 09:06:22 +08:00
Xiaoxia AI cddd9948e3 feat(auth): add bearer current user dependency 2026-06-21 08:35:25 +08:00
Xiaoxia AI 93271f7dda refactor(auth): route simple auth through use cases 2026-06-21 08:22:49 +08:00
Xiaoxia AI ebae5f51b0 fix(schema): forbid auto create schema in deployed envs 2026-06-21 07:36:46 +08:00
Xiaoxia AI bfbaddbd9a style: normalize python formatting gates 2026-06-21 06:52:19 +08:00
Xiaoxia AI 4b4602a0fd refactor(schema): mark sqlalchemy models as schema mainline 2026-06-21 06:30:55 +08:00
Xiaoxia AI 788de9a245 refactor(adapters): deprecate postgres repository path 2026-06-21 02:15:56 +08:00
Xiaoxia AI d25bd753a2 refactor(api): guard route adapter boundaries 2026-06-21 02:02:55 +08:00
Xiaoxia AI 0e93d2e71f refactor(domain): move auth infrastructure to adapters 2026-06-21 00:46:56 +08:00
Xiaoxia AI 57310f33d4 fix(auth): harden simple auth and router imports 2026-06-21 00:27:58 +08:00
Xiaoxia AI 4e33158d8d feat(quota): add quota checking and management system
- Implement QuotaChecker for project and storage limits
- Check project count before creation (respect max_projects)
- Check storage availability before upload
- Get quota status with usage percentages
- Update storage usage (increase/decrease)
- Define warning levels (normal/warning/critical/exceeded)
- Add ProjectRepository interface for project counting
- Add 14 comprehensive unit tests (all passed)

Phase 4 Task 22/68 completed
2026-06-17 07:24:14 +08:00
Xiaoxia AI dba2fe94ac feat(subscription): add upgrade and cancel subscription use cases
- Implement UpgradeSubscriptionUseCase (Free→Pro→Enterprise)
- Prevent downgrades (must use cancel to return to Free)
- Auto-set quotas and expiration date on upgrade
- Implement CancelSubscriptionUseCase to downgrade to Free
- Only workspace owner can manage subscription
- Add 8 comprehensive unit tests (all passed)

Phase 4 Task 21/68 completed
2026-06-17 07:20:34 +08:00
Xiaoxia AI 80c29ba940 feat(permissions): add permission system and checker
- Implement PermissionChecker for workspace access control
- Define Permission constants for all operations
- Define ROLE_PERMISSIONS mapping (Owner/Admin/Member/Viewer)
- Support workspace/member/project/asset permission checks
- Helper functions: check_is_owner, check_can_manage_members, etc.
- Add 15 comprehensive unit tests (all passed)

Phase 4 Task 20/68 completed
2026-06-17 07:16:02 +08:00
Xiaoxia AI 0a2137c2aa feat(workspace): add list members use case
- Implement ListMembersUseCase to get all workspace members
- Return member info with user details (username, email, display_name)
- Show role, inviter, and join time for each member
- Only workspace members can view member list
- Add 6 comprehensive unit tests (all passed)

Phase 4 Task 18/68 completed
2026-06-17 07:06:33 +08:00