Commit graph

180 commits

Author SHA1 Message Date
XiaoSeS
3c8b62a664 fix(auth): harden LDAP identity assertions
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 21:54:49 +08:00
XiaoSeS
a35bdce3c6 feat(auth): add LDAP and Active Directory adapter
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 19:13:32 +08:00
XiaoSeS
c6b18c6be6 Merge pull request #668 from feature/identity-account-merge
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 17:17:36 +08:00
XiaoSeS
fd49ad9170 feat(auth): add secure account merging
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 17:07:43 +08:00
XiaoSeS
7f5d5466ff chore(integration): stage observability boundary fixes
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 15:52:20 +08:00
XiaoSeS
e9a913e30b fix(observability): tighten tracing integration boundaries
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 15:51:31 +08:00
XiaoSeS
c7bd56e77a Merge PR #635: builtin-skills starter collection 2026-07-31 14:35:08 +08:00
wowo-zZ
7885cc568b feat(builtin-skills): add reviewed starter collection
Signed-off-by: wowo-zZ <zhenggui5228@126.com>
2026-07-31 14:22:23 +08:00
XiaoSeS
e7bde3e177 chore(integration): stage CAS adapter on big-main
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 12:05:54 +08:00
XiaoSeS
85fb05ff8f chore(integration): stage observability validation on big-main
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 12:02:45 +08:00
XiaoSeS
2c1bcf3b22 fix(auth): harden CAS identity link flow
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 12:01:38 +08:00
XiaoSeS
d00fc0ea12 chore(integration): sync main before observability validation
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 11:48:43 +08:00
XiaoSeS
8b3ad8b14e docs(observability): document tracing deployment modes
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 11:30:42 +08:00
XiaoSeS
09db71ffa7 docs(weekly): mirror reports into project Pages
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 11:18:22 +08:00
XiaoSeS
07c2c9d750 chore(auth): sync CAS adapter with big-main
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 10:35:48 +08:00
XiaoSeS
74fab9734c feat(auth): add CAS 2.0 and 3.0 login adapter
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 09:31:25 +08:00
XiaoSeS
9557478dd8 feat(auth): add explicit identity link and safe unlink flow
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 07:02:17 +08:00
XiaoSeS
09a74cad1e fix(auth): harden provider adapter boundaries
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 02:06:58 +08:00
XiaoSeS
c6fe19e2c8 chore(auth): merge big-main into provider registry
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 01:46:38 +08:00
XiaoSeS
c81c9ab3ed fix(db): resolve identity migration version collision
Preserve the V44 compliance index reserved by PR #561 and renumber the unreleased identity migrations to V45-V48.

Refs #561

Refs #652

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-31 01:16:27 +08:00
XiaoSeS
2c7466118e feat(auth): add unified provider registry
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-30 23:31:36 +08:00
XiaoSeS
b217339012 feat(auth): add profile sync and provisioning policies
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-30 22:02:24 +08:00
XiaoSeS
0320c20623 docs(auth): document authority recovery contract
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-30 19:35:08 +08:00
XiaoSeS
c089797979 docs(auth): record issue 640 verification
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-30 18:17:42 +08:00
XiaoSeS
c71828f980 feat(auth): introduce unified identity core
Refs #640

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-30 18:15:03 +08:00
ylhu16
93e5c4e004 chore(integration): stage unified identity design on big-main 2026-07-30 16:08:19 +08:00
ylhu16
a13429a95e fix(auth): isolate unsafe account merge flow
Keep the legacy routes fail-closed, remove the unsafe orchestration service, replace the UI controls with a security notice, and define the acceptance contract for the future safe merge flow.

Closes #634

Parent: #628

Signed-off-by: ylhu16 <ylhu16@iflytek.com>
2026-07-30 15:57:43 +08:00
ylhu16
8b09a1330a chore(integration): stage issue #632 on big-main
Signed-off-by: ylhu16 <ylhu16@iflytek.com>

# Conflicts:
#	docs/02-domain-model.md
#	server/skillhub-auth/src/test/java/com/iflytek/skillhub/auth/identity/IdentityBindingServiceTest.java
2026-07-30 15:29:05 +08:00
ylhu16
fe1c6e718b fix(auth): harden approved account activation flow
Signed-off-by: ylhu16 <ylhu16@iflytek.com>
2026-07-30 15:20:12 +08:00
ylhu16
075683963e fix(auth): provision global membership on user approval
Closes #632

Signed-off-by: ylhu16 <ylhu16@iflytek.com>
2026-07-30 15:03:26 +08:00
ylhu16
0dd16575ba docs(auth): define unified identity federation architecture
Signed-off-by: ylhu16 <ylhu16@iflytek.com>
2026-07-30 14:38:22 +08:00
ylhu16
3f1eebd1e6 fix(auth): enforce trusted OAuth identity attributes
Signed-off-by: ylhu16 <ylhu16@iflytek.com>
2026-07-30 14:33:34 +08:00
XiaoSeS
6817d98007
Merge pull request #367 from xring/fix/postgres-lostfound
Some checks are pending
Deploy Docs / build (push) Waiting to run
Deploy Docs / Deploy (push) Blocked by required conditions
Security / Dependency Review (push) Waiting to run
Security / CodeQL (java-kotlin) (push) Waiting to run
Security / CodeQL (javascript-typescript) (push) Waiting to run
Security / CodeQL (python) (push) Waiting to run
fix(deploy): isolate PostgreSQL data from volume root
2026-07-30 09:56:00 +08:00
XiaoSeS
3db3c9685f feat(redis): complete cluster connection support
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-29 17:36:06 +08:00
XiaoSeS
13b3f2da92 chore(cli): integrate contributor merge update (#606)
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-29 10:37:03 +08:00
XiaoSeS
a9007a4e8c fix(cli): preserve download error contract (#606)
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-29 10:31:49 +08:00
dongmucat
c1835fc9e9 merge(main): resolve CLI error mapping conflicts (#606)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-29 10:24:23 +08:00
XiaoSeS
ad4a2dbc2f chore(cli): merge main into PR #608
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-29 10:19:03 +08:00
XiaoSeS
7872e64177
Merge pull request #609 from iflytek/fix/auth-revoked-token-validation
test(auth): cover revoked CLI token lifecycles
2026-07-29 03:37:47 +08:00
XiaoSeS
0dd600ce13 fix(deploy): preserve PostgreSQL PVC data layout 2026-07-29 01:41:20 +08:00
XiaoSeS
e4fb26d4ba fix(nginx): trust forwarded proto only when configured
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-28 20:03:50 +08:00
gale-popai
d977ea9dc4
fix(api): tell callers why a request was forbidden (#610)
* fix(api): tell callers why a request was forbidden

The scope filter already computes an exact reason ("Missing API token
scope: skill:delete", "API token cannot access endpoint: /x") and the
access-denied handler discarded it, returning a bare "Forbidden" for
every case: missing scope, endpoint closed to API tokens, and paths
that simply don't exist. Clients cannot tell those apart, so they
guess — the published CLI reports every 403 as "token may lack
required scope", which sent us debugging token scopes for an hour when
the real causes were a revoked token and a mistyped namespace path.

The reason now rides in the response via a new error.forbidden.detail
message (en + zh), and is logged alongside the exception type.

Signed-off-by: Gal Eyal <gal.e@popai.health>

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(api): safely expose API token denial reasons

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>

---------

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-28 17:42:20 +08:00
dongmucat
d4d1f65705 fix(cli): scope local remove by namespace (#606)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 16:58:32 +08:00
dongmucat
a94073004f docs(cli): define namespace error fix plan (#606)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 16:58:31 +08:00
dongmucat
5012b31af2 test(auth): cover CLI session fallback (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 15:22:11 +08:00
dongmucat
8163a48e9e docs(auth): align Bearer-only response contract (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 13:52:42 +08:00
FenjuFu
e5f0cc140a
docs(faq): add community-sourced deployment and operations Q&A (#593)
* docs(faq): add community-sourced deployment and operations Q&A

Adds entries collected from real user-support threads to the reference FAQ
(both zh and en):

- 502 on auth APIs while the page loads, traced to server startup failure
  on the SKILLHUB_DOWNLOAD_ANON_COOKIE_SECRET placeholder guard
- config changes not taking effect (.env.release.example vs .env.release,
  restart vs recreate)
- built-in skill sync failure in offline environments
- upgrade path with Flyway auto-migration and volume retention
- external dependencies and the lack of MySQL support
- granting SUPER_ADMIN to an OAuth account via the bootstrap admin
- telling CLI and server versions apart
- installing skills into a target directory on an intranet

Signed-off-by: FenjuFu <fufenjupku@gmail.com>

* docs(faq): move entries to the published docs source and fix inaccuracies

Move the new FAQ entries from document/ (a generated tree that the docs
build does not read) to docs/skillhub/, which is what make docs-build and
the Pages deploy actually publish.

Also address review feedback:
- drop the SKILLHUB_BUILTIN_SKILLS_ENABLED tip; compose.release.yml does
  not pass that variable through, so setting it has no effect
- correct the dependency list: object storage defaults to local, S3 is
  recommended for production
- soften the 502 wording, since upstream/DNS/network can also cause it
- state the 32-character minimum for the cookie secret
- give a real bulk-install example and qualify v0.2.12 as a server version
- drop entries already covered by existing upgrade/MySQL/version questions

Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>

* docs(faq): correct deployment and admin guidance

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>

* docs(faq): fix remaining recreate guidance

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>

* docs(faq): clarify bulk install paths

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>

---------

Signed-off-by: FenjuFu <fufenjupku@gmail.com>
Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
Co-authored-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-28 13:49:38 +08:00
dongmucat
5805e0f1d3 docs(auth): document CLI token failure semantics (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 12:55:35 +08:00
dongmucat
e5b8439678 docs(auth): plan revoked token regression coverage (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 11:37:07 +08:00
dongmucat
6567c19664 docs(auth): tighten runtime validation gates (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 11:20:08 +08:00