skillhub/server
青柠 dbb52c317c feat(admin): add system settings storage
SkillHub has no mechanism for settings an operator can change without a
redeploy: the only per-deployment knobs live in application.yml, and the
only stored preferences are per-user notification preferences.

Add a generic store. One row holds one setting group serialized as JSON,
so a group can gain fields without a schema migration.

Reads take the caller's defaults:

    <T> T get(String settingKey, Class<T> type, T defaults)

which gives two properties worth keeping:

- A group nobody has overridden has no row, and resolves to whatever the
  deployment configured. Configuration-file-only deployments keep working
  exactly as before, and an upgrade changes no behaviour.
- A stored document that can no longer be parsed also falls back to the
  defaults, with a warning. One malformed row must not take down the flows
  that read settings, such as login.

Groups are deserialized with unknown fields ignored so a rolling upgrade
can read documents written by a newer node.

No consumer yet; the following commit adds the first one.
2026-08-28 15:10:07 +08:00
..
.mvn docs: add Maven mirror config and troubleshooting guide for China developers (#233) 2026-04-07 09:50:07 +08:00
scripts feat(notification): add in-app notifications and harden delivery 2026-03-23 12:31:28 +08:00
skillhub-app feat(admin): add system settings storage 2026-08-28 15:10:07 +08:00
skillhub-auth Merge pull request #623 from gale-popai/fix/oauth-return-to 2026-08-26 15:29:48 +08:00
skillhub-domain feat(admin): add system settings storage 2026-08-28 15:10:07 +08:00
skillhub-infra feat(admin): add system settings storage 2026-08-28 15:10:07 +08:00
skillhub-notification fix: emit confirm-publish events with permission-aware subscriber fanout 2026-08-27 16:43:32 +08:00
skillhub-search feat(search): index compliance snapshot mappings 2026-08-07 15:46:06 +08:00
skillhub-storage fix(storage): disable chunked encoding for Aliyun OSS compatibility 2026-05-06 13:56:55 +08:00
.dockerignore feat(staging): optimize staging build with local Maven packaging 2026-03-14 14:21:06 +08:00
Dockerfile feat: add initial RISC-V image support (#725) 2026-08-24 16:37:34 +08:00
Dockerfile.dev fix(storage): defer S3 bucket verification until first access (#289) 2026-04-12 15:24:09 +08:00
mvnw feat: initialize Maven multi-module project structure 2026-03-11 22:52:04 +08:00
mvnw.cmd feat: initialize Maven multi-module project structure 2026-03-11 22:52:04 +08:00
pom.xml feat(notification): add in-app notifications and harden delivery 2026-03-23 12:31:28 +08:00