Commit Graph

  • b61e550d59 chore(deps): update dependency lint-staged to v17.0.5 (#167) APF Portal Bot 2026-05-16 16:18:44 +02:00
  • 0435fec10a feat(portal-admin): jaeger deep link on trace_id + actor-pivot on actor_id_hash (#166) julien 2026-05-16 03:36:40 +02:00
  • 6f26bcdd65 feat(shared-ui): move the role label from the portal-shell sidebar into the user menu (#165) julien 2026-05-16 03:09:56 +02:00
  • 10c80f189d feat(portal-shell): align theme switcher trigger with locale switcher shape (#164) julien 2026-05-16 02:52:53 +02:00
  • bba1703622 fix(deps): scope the vite < 7 override to vitepress so @angular/build keeps vite 8 (#163) julien 2026-05-16 02:07:43 +02:00
  • 076cfb67a6 feat(portal-shell): move theme switcher to footer, drop redundant settings icon (#162) julien 2026-05-16 01:14:36 +02:00
  • 2dbf2d8ce4 fix(docs): cap vite below 7 (rolldown-vite) and pin mermaid transitives (#161) julien 2026-05-15 23:57:57 +02:00
  • e3a495ab46 docs(development): refresh after phase-3a + add topology / trace diagrams (#160) julien 2026-05-15 23:08:50 +02:00
  • a8f027f546 fix(deps): update dependency axios to v1.16.1 (#158) APF Portal Bot 2026-05-15 22:38:43 +02:00
  • 779061660b chore(security): override vite + esbuild past vitepress's vulnerable transitives (#159) julien 2026-05-15 22:18:07 +02:00
  • ed477aeb26 fix(deps): update dependency @scalar/nestjs-api-reference to v1.1.16 (#156) APF Portal Bot 2026-05-15 20:04:13 +02:00
  • d94df427a1 fix(docs): pre-bundle mermaid deps so the dev server resolves dayjs/cytoscape (#157) julien 2026-05-15 20:03:29 +02:00
  • abdfb8e1f4 fix(deps): update angular (#155) APF Portal Bot 2026-05-15 19:38:25 +02:00
  • 7579b25dfe feat(docs): vitepress site for docs/, mermaid rendering, ci build workflow (#154) julien 2026-05-15 19:14:14 +02:00
  • aa8ad97feb fix(portal-admin): adr refs point at gitea, not the madr template repo (#153) julien 2026-05-15 18:48:07 +02:00
  • 035ea7c748 fix(portal-admin): adr refs point at gitea, not the madr template repo (#152) julien 2026-05-15 18:47:14 +02:00
  • ee51efb688 feat(portal): /api/me/capabilities + cross-app menu links + real role label (#151) julien 2026-05-15 16:11:26 +02:00
  • 1160771061 feat(portal-admin): profile page on /profile guarded by authGuard (#150) julien 2026-05-15 15:42:52 +02:00
  • a8ead65ea8 feat(shared-ui): user menu dropdown + integration on portal-shell + portal-admin (#149) julien 2026-05-15 15:23:39 +02:00
  • e3e7800ecb feat(portal-admin): header brand logo + sidebar background covers full column (#148) julien 2026-05-15 13:59:16 +02:00
  • 6120471b66 chore(workspace): tsconfig composite refs + axe-linter false-positive config (#147) julien 2026-05-15 12:25:20 +02:00
  • 636a1661f5 chore(deps): update typescript tooling to v8.59.3 (#146) APF Portal Bot 2026-05-15 11:26:25 +02:00
  • 2480d0dd6d fix(portal-bff): align admin entra role name with Portal.Admin (#145) julien 2026-05-15 10:33:54 +02:00
  • 0335d992d9 chore(deps): update dependency vite to v8.0.13 (#144) APF Portal Bot 2026-05-15 09:58:51 +02:00
  • 1513ad327c feat(portal-bff): openapi spec + scalar api reference UI (dev-only) (#143) julien 2026-05-14 20:52:03 +02:00
  • e90e88ec45 feat(portal-admin): user directory viewer screen (#142) julien 2026-05-14 20:15:21 +02:00
  • 1df99cd800 feat(portal-bff): admin user-directory read endpoint (#141) julien 2026-05-14 20:01:38 +02:00
  • aca9e8d155 feat(portal-bff): user directory upserted at sign-in (#140) julien 2026-05-14 19:30:12 +02:00
  • 96339cc99b fix(portal-bff): serve /.well-known/jwks.json via express (path-to-regexp v8 ducks the dot) (#139) julien 2026-05-14 19:12:38 +02:00
  • 282a972346 feat(portal-bff): signed-assertion strategy + /.well-known/jwks.json (#138) julien 2026-05-14 18:34:07 +02:00
  • d665c66c4e feat(portal-bff): obo strategy + encrypted downstream token cache (#137) julien 2026-05-14 18:13:30 +02:00
  • d86f3f9663 feat(portal-admin): audit log viewer screen (#136) julien 2026-05-14 17:50:17 +02:00
  • 71a098b154 fix(feature-auth): use AUTH_PATH_PREFIX to skip the /me endpoint in the 401 interceptor (#135) julien 2026-05-14 17:23:44 +02:00
  • 40741ce326 feat(portal-admin): spa auth wiring + admin shell skeleton (#134) julien 2026-05-14 17:00:38 +02:00
  • aea395ae65 feat(ci): assert gzip transfer sizes against ADR-0017 budgets (#133) julien 2026-05-14 16:22:54 +02:00
  • 261203ec5a feat(portal-bff): admin audit-log read endpoint + audit_reader-locked path (#132) julien 2026-05-14 16:08:58 +02:00
  • 77343e3113 fix(portal-bff): use the real portal-admin dev port (4300) in admin-flow references (#131) julien 2026-05-14 15:40:07 +02:00
  • 392a32c0fe chore(deps): update analog monorepo to v2.5.1 (#130) APF Portal Bot 2026-05-14 15:13:15 +02:00
  • fed905edc5 feat(portal-bff): distinct admin session + /api/admin/auth flow (#129) julien 2026-05-14 02:21:47 +02:00
  • d51ccebe6a feat(portal-bff): @RequireMfa decorator + freshness guard (ADR-0011) (#128) julien 2026-05-14 01:34:45 +02:00
  • 3ed6dae3a5 feat(portal-bff): admin module + role guard + /api/admin/me self-test (#127) julien 2026-05-14 01:17:30 +02:00
  • f9f0151717 feat(portal-bff): extract Entra roles claim onto AuthenticatedUser (#126) julien 2026-05-14 00:30:37 +02:00
  • 6a6bf90e7f docs: refresh CLAUDE.md "Repository status" section (#125) julien 2026-05-14 00:12:46 +02:00
  • da2bd6d481 docs(adr-0021): phase-2 security baseline (helmet, CORS, CSRF, rate-limit, error envelope) (#124) julien 2026-05-13 23:54:45 +02:00
  • 0e6c114ba7 feat(portal-bff): rate limiting + structured error filter (#123) julien 2026-05-13 21:34:33 +02:00
  • 5bbe2304ff feat(portal-bff): helmet + env-driven CORS allowlist + double-submit CSRF (#122) julien 2026-05-13 20:50:44 +02:00
  • a97be121e6 fix(portal-bff): audit writes use raw INSERT (audit_writer has no SELECT for RETURNING) (#121) julien 2026-05-13 19:48:32 +02:00
  • 940267e317 feat(portal-bff): wire ADR-0013 audit pipeline to the auth lifecycle (#120) julien 2026-05-13 14:21:42 +02:00
  • 4d4791a807 chore(deps): update dependency vite to v8.0.12 (#118) APF Portal Bot 2026-05-13 13:07:55 +02:00
  • 6aee56abe9 docs(architecture): refresh containers + nx boundaries diagrams, add local-infra diagram (#119) julien 2026-05-13 11:15:03 +02:00
  • 177f2f20c0 feat(portal-shell): authGuard + BFF http interceptors + /profile demo route (#117) julien 2026-05-13 00:43:56 +02:00
  • c427e5d4fe fix(portal-bff): set REDIS_URL + SESSION_* in auth.module.spec so ci:check passes on a clean runner (#116) julien 2026-05-12 23:58:55 +02:00
  • c3de2340e7 feat(portal-bff): absolute-timeout middleware + user_sessions index per ADR-0010 (#115) julien 2026-05-12 23:23:14 +02:00
  • 0e4f0fc611 fix(portal-shell): send withCredentials on /me so the session cookie crosses SPA→BFF in dev (#114) julien 2026-05-12 22:35:10 +02:00
  • 9a9faf9a31 feat(portal-shell): wire SPA auth state to BFF /me + header login/logout widget (#113) julien 2026-05-12 20:11:34 +02:00
  • 0464ce3ac8 feat(portal-bff): close the auth loop — callback persists session, /me, RP-initiated /logout (#112) julien 2026-05-12 19:46:38 +02:00
  • 2e9605a078 chore(deps): pin protobufjs to >=8.0.2 to clear 7 transitive advisories (#111) julien 2026-05-12 19:16:18 +02:00
  • 758d723744 feat(portal-bff): session middleware with AES-256-GCM at rest per ADR-0010 (#110) julien 2026-05-12 18:06:13 +02:00
  • d4b5ed1c5d feat(portal-bff): redis client foundation per ADR-0010 (#109) julien 2026-05-12 16:48:20 +02:00
  • bfa35d3283 fix(portal-bff): drop strict amr check — flow blocked when Entra omits the claim (#108) julien 2026-05-12 15:31:57 +02:00
  • c50794eceb feat(portal-bff): /auth/callback route — token exchange + amr check (#107) julien 2026-05-12 12:16:39 +02:00
  • 9443a52bb7 chore(brand): swap header logo to a real svg + ship favicons for portal-admin (#106) julien 2026-05-12 11:59:04 +02:00
  • 0eb404d111 feat(portal-bff): /auth/login route — pkce flow start + signed cookie (#105) julien 2026-05-12 11:20:03 +02:00
  • b7093d61de feat(portal-bff): msal confidential client provider in AuthModule (#104) julien 2026-05-12 10:34:23 +02:00
  • abd651b697 chore(deps): update dependency @types/node to v24.12.4 (#103) APF Portal Bot 2026-05-12 09:41:08 +02:00
  • 58e3b65bd9 feat(portal-bff): entra config foundation — boot validator + auth module (#102) julien 2026-05-12 02:27:55 +02:00
  • cb69a692e7 chore(ts): drop deprecated baseUrl from tsconfig.base.json (#101) julien 2026-05-12 02:06:23 +02:00
  • d962be838a feat(portal-admin): skeleton app per ADR-0020 (#100) julien 2026-05-12 01:49:19 +02:00
  • 8329fa133d refactor(libs): graduate Icon / LayoutStateService / brand tokens to libs/shared/* (#99) julien 2026-05-12 01:17:30 +02:00
  • 99522540a5 feat(portal-shell): ci gate — fail prod build on missing translations (#98) julien 2026-05-12 00:30:27 +02:00
  • fe180fd125 feat(infra): local serve-static profile — Caddy reverse proxy for the prod build (#97) julien 2026-05-12 00:06:33 +02:00
  • d118d09aba fix(portal-shell): catch-all route prevents NG04002 on /fr in dev mode (#96) julien 2026-05-11 22:12:24 +02:00
  • 192cc483b6 feat(portal-shell): locale switcher in the footer (#95) julien 2026-05-11 20:48:27 +02:00
  • 8f84cc6389 feat(portal-shell): collapse accessibility routes into one i18n-marked route (#94) julien 2026-05-11 20:18:28 +02:00
  • 65fae7f963 feat(portal-shell): i18n string sweep — mark UI strings + FR translations (#93) julien 2026-05-11 19:54:43 +02:00
  • 04675b1b59 fix(ci): perf job — point Lighthouse at /fr/ and /en/, drop spa fallback (#92) julien 2026-05-11 17:18:52 +02:00
  • 29d16c7527 feat(portal-shell): wire @angular/localize plumbing per ADR-0019 (#91) julien 2026-05-11 16:46:08 +02:00
  • 8f125d2a90 feat(portal-shell): wire environment.ts per ADR-0018 (#90) julien 2026-05-11 12:48:55 +02:00
  • c5e91f240b docs(decisions): add ADR-0019 i18n + ADR-0020 portal-admin (#89) julien 2026-05-11 12:29:54 +02:00
  • 8b986f3dc3 feat(portal-shell): thin full-width footer with copyright + a11y links (#88) julien 2026-05-11 11:07:36 +02:00
  • 3a0a9c700d fix(portal-shell): dark mode actually applies to component-scoped surfaces (#87) julien 2026-05-11 10:45:39 +02:00
  • 0ae7e0e23d feat(portal-shell): light / dark / auto theme switcher (#86) julien 2026-05-11 03:01:11 +02:00
  • b6aa17f6a0 feat(portal-shell): align header logo zone with the sidebar rail (#85) julien 2026-05-11 01:14:42 +02:00
  • 29f79d677e feat(portal-shell): full favicon set + PWA manifest (#84) julien 2026-05-11 01:03:05 +02:00
  • 3371fbd613 feat(portal-shell): app-shell layout with collapsable sidebar (#83) julien 2026-05-11 00:36:41 +02:00
  • a463199728 feat(infra): reactivate act_runner cache by sharing the runners network (#82) julien 2026-05-10 19:03:58 +02:00
  • 2d676cc279 feat(infra): add ci-runners.sh wrapper for the runner stack (#81) julien 2026-05-10 06:37:07 +02:00
  • 674c8b2f88 chore(deps): update dependency gitleaks/gitleaks to v8.30.1 (#79) APF Portal Bot 2026-05-10 04:59:32 +02:00
  • 4476cbb518 docs(decisions): add ADR-0018 — environment configuration strategy (#80) julien 2026-05-10 04:58:02 +02:00
  • 4473b1d4a4 chore(ci): track trivy and gitleaks binary versions via renovate custom manager (#78) julien 2026-05-10 04:07:06 +02:00
  • 922a44bb50 chore(ci): auto-merge low-risk renovate updates (#77) julien 2026-05-10 03:58:01 +02:00
  • 02ac44e498 feat(portal-bff): audit log foundation per ADR-0013 (#76) julien 2026-05-10 03:44:01 +02:00
  • e2dd2e4dd8 fix(portal-shell): use .postcssrc.json so tailwind utilities are emitted (#75) julien 2026-05-10 02:55:15 +02:00
  • 0d31937aeb feat(portal-shell): replace nx-welcome with real shell and home + budgets per ADR-0017 (#74) julien 2026-05-10 02:38:42 +02:00
  • 288610b9ba docs(development): add observability dev-loop section (#73) julien 2026-05-10 02:14:46 +02:00
  • 8f2cd4e068 feat(portal-shell): wire spa-side opentelemetry tracing (#72) julien 2026-05-09 23:23:18 +02:00
  • c3c15585ff style(portal-bff): apply prettier to check-database-url.ts (#71) julien 2026-05-09 22:45:10 +02:00
  • b74d3f1b9b feat(portal-bff): observability foundations (Pino + CLS + OTel) (#70) julien 2026-05-09 22:28:17 +02:00
  • 80e35c6aab chore(deps): update dependency lint-staged to v17.0.4 (#69) APF Portal Bot 2026-05-09 22:13:56 +02:00
  • fc9b63f24a feat(infra): add dev.sh wrapper for the local-dev compose stack (#68) julien 2026-05-09 21:50:37 +02:00