vsxd
b982011614
fix(ops): align smoke test with csrf and metrics access
2026-03-13 10:23:46 +08:00
vsxd
07ea0fa822
merge: bring phase4 worktree implementation into main
...
# Conflicts:
# server/skillhub-app/src/main/java/com/iflytek/skillhub/controller/cli/CliPublishController.java
# server/skillhub-app/src/main/java/com/iflytek/skillhub/controller/portal/SkillPublishController.java
# server/skillhub-storage/src/main/java/com/iflytek/skillhub/storage/LocalFileStorageService.java
# web/src/app/router.tsx
2026-03-13 10:20:19 +08:00
vsxd
33c44fb9cc
feat(phase4): complete auth, governance, observability, and ops polish
2026-03-13 10:17:48 +08:00
vsxd
62d9d88546
chore(release): cut v0.1.0-beta.2
2026-03-13 10:13:50 +08:00
vsxd
d4deb2fb74
fix: address review-reported auth and publish issues
2026-03-13 10:06:25 +08:00
vsxd
f7798dddc5
Revert "merge: bring review fixes into feature/project-init"
...
This reverts commit 92f63f8b89 , reversing
changes made to 78e16f0fe7 .
2026-03-13 10:06:14 +08:00
vsxd
5bb887b292
fix: address review-reported auth and publish issues
2026-03-12 22:29:51 +08:00
vsxd
8c5b4d176a
feat(auth): add local username-password login
2026-03-12 21:59:28 +08:00
tlzhu3
444a52f802
fix(auth): complete device flow token exchange
2026-03-12 21:42:15 +08:00
vsxd
3c9b95fd98
refactor(auth): remove local auth flow
2026-03-12 21:36:49 +08:00
vsxd
e63531ca3d
feat(dev): stabilize local env and phase3 flows
2026-03-12 21:33:25 +08:00
vsxd
05ec9bfbc2
feat(auth): add local username-password login
2026-03-12 21:27:01 +08:00
vsxd
50adf3545d
refactor(auth): improve DeviceAuthService error handling and tests
...
Strengthen device auth flow with better error messages and
additional test coverage.
2026-03-12 20:11:40 +08:00
vsxd
cab627be02
feat(infra): add i18n messages, Redis config, and slug normalization migration
...
- Add rating/admin i18n message keys (en + zh)
- Improve IdempotencyInterceptor error handling
- Add RedisTemplateConfig for consistent serialization
- Add V4 migration to normalize skill slugs
- Fix RequestIdFilterTest
2026-03-12 20:11:24 +08:00
vsxd
efd43ef3cd
feat(compat): add ClawHub compatibility layer
2026-03-12 19:20:02 +08:00
vsxd
fae775eb97
fix(test): provide mock RedisTemplate for test context
...
- Add TestRedisConfig with mock RedisTemplate bean
- Restore DeviceAuthService as normal @Service (no conditional)
- Restore controllers as normal @RestController (no conditional)
- Remove DeviceAuthConfig and DeviceAuthWebConfig (not needed)
- All 179 tests pass
2026-03-12 19:08:25 +08:00
vsxd
5cc595b0ff
feat(cli): add skill package check endpoint
2026-03-12 18:26:50 +08:00
vsxd
f47377cff1
feat(cli): add Device Auth controllers
2026-03-12 18:19:03 +08:00
vsxd
9a4d64b11b
feat(cli): implement DeviceAuthService with Redis storage
2026-03-12 18:13:46 +08:00
vsxd
37fd831ce7
feat(cli): add Device Flow data models
2026-03-12 18:11:13 +08:00
vsxd
d44f9415fe
feat(auth): update security config, auth entities, and token services
2026-03-12 17:47:08 +08:00
vsxd
0b1607630f
fix(phase1): close auth and frontend acceptance gaps
2026-03-12 00:37:51 +08:00
vsxd
404692d671
Fix phase1 auth flow gaps
2026-03-12 00:26:33 +08:00
vsxd
6380677fcf
feat(auth): complete Chunk 2 - security config, controllers, mock auth
...
Task 14: Spring Security config
- SecurityConfig with OAuth2 login, CSRF Cookie-to-Header, CLI API exempt
- ApiTokenAuthenticationFilter before UsernamePasswordAuthenticationFilter
- Spring Session Redis + OAuth2 client config in application.yml
Task 15: MockAuthFilter
- @Profile("local") filter reads X-Mock-User-Id header
- Creates PlatformPrincipal and sets SecurityContext for local dev
Task 16: AuthController + TokenController
- GET /api/v1/auth/me: current user info from session
- GET /api/v1/auth/providers: available OAuth providers
- POST/GET/DELETE /api/v1/tokens: create, list, revoke API tokens
Task 17: Enhanced GlobalExceptionHandler
- ErrorResponse with requestId and timestamp
- 400 for IllegalArgumentException, 500 catch-all with MDC requestId
2026-03-11 23:55:15 +08:00
vsxd
5c4be0a26f
feat(auth): add OAuth2 login, access policy, API token, and RBAC
...
Task 10b: OAuth Claims + Access Policy
- OAuthClaims record, OAuthClaimsExtractor SPI, GitHubClaimsExtractor
- AccessPolicy SPI with Open/EmailDomain/ProviderAllowlist/SubjectWhitelist
- AccessPolicyFactory with config-driven strategy selection
- 8 unit tests for access policies
Task 11: Identity binding + OAuth2 user service
- PlatformPrincipal session-serializable record
- IdentityBindingService: bind-or-create on OAuth login
- CustomOAuth2UserService: policy evaluation + identity binding
- OAuth2LoginSuccessHandler: store principal in session
Task 12: API Token + RBAC
- ApiTokenService: SHA-256 hashed token create/validate/revoke
- ApiTokenAuthenticationFilter: Bearer token authentication
- RbacService: role/permission queries with SUPER_ADMIN bypass
2026-03-11 23:48:16 +08:00
vsxd
2991eb11e0
feat(domain/infra/auth): add domain entities, JPA repos, and auth entities
...
Task 8: Domain layer
- UserAccount entity with UserStatus lifecycle
- Namespace, NamespaceMember entities with NamespaceRole
- Repository interfaces for domain aggregates
Task 9: Infra layer
- UserAccountJpaRepository, NamespaceJpaRepository, NamespaceMemberJpaRepository
- Spring Data JPA implementations
Task 10: Auth entities and repositories
- IdentityBinding, ApiToken, Role, Permission, RolePermission, UserRoleBinding
- JPA repositories for all auth entities
- UserRoleBinding with eager-loaded Role for RBAC queries
2026-03-11 23:42:53 +08:00
vsxd
edfff6abc7
feat: complete Chunk 1 - backend skeleton and infrastructure
...
- Migrate all Maven groupId and Java packages to com.iflytek.skillhub
- Add Docker Compose with PostgreSQL 16, Redis 7, MinIO
- Add Flyway V1 migration with Phase 1 core schema (user, auth, RBAC, namespace, audit)
- Add RequestIdFilter with MDC tracing and X-Request-Id header
- Add GlobalExceptionHandler and ErrorResponse DTO
- Add HealthController (/api/v1/health) and OpenAPI config
- Add basic SecurityConfig permitting public endpoints
- Add H2 test profile for CI-friendly testing without external services
- Add top-level Makefile for dev workflow orchestration
- All 3 tests passing
2026-03-11 23:35:47 +08:00
vsxd
27b7a4dad1
feat: project ini and docs updates
2026-03-11 22:47:05 +08:00