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