| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"88b5fd9010750325fca06afb410f03653c970ddc","after":"02c068b9401161d8787e492f1c19f348ae2f85a2","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/88b5fd9010750325fca06afb410f03653c970ddc...02c068b9401161d8787e492f1c19f348ae2f85a2","commits":[{"id":"02c068b9401161d8787e492f1c19f348ae2f85a2","message":"Merge pull request #23 from laoluojuhai/feat/identity-http-runtime\n\nfeat(identity): 接入统一 HTTP 模块与独立身份数据库","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/02c068b9401161d8787e492f1c19f348ae2f85a2","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-12T17:01:39-07:00","added":["docs/PF-07身份HTTP模块迁移记录-2026-09-12.md","docs/PF-07身份私有契约迁移记录-2026-09-12.md","governance/prepare-identity.mjs","identity/apps/api-nestjs/contracts/index.ts","identity/apps/api-nestjs/oidc/index.ts","identity/apps/api-nestjs/persistence/client/index.ts","identity/apps/api-nestjs/security/index.ts","identity/apps/api-nestjs/src/controller.ts","identity/packages/contracts/domain/index.d.ts","identity/packages/contracts/domain/index.js","identity/packages/contracts/src","identity/packages/contracts/vitest.config.ts","reports/identity-http.latest.json","runtime/modules/identity/http-source-relocation.json","runtime/modules/identity/prisma/migrations/20260608150500_init/migration.sql","runtime/modules/identity/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","runtime/modules/identity/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","runtime/modules/identity/prisma/migrations/20260830093000_idp_applications/migration.sql","runtime/modules/identity/prisma/migrations/20260830183000_idp_tenants_users/migration.sql","runtime/modules/identity/prisma/migrations/20260831070000_oidc_authorization_code/migration.sql","runtime/modules/identity/prisma/migrations/20260831140000_oidc_refresh_rotation/migration.sql","runtime/modules/identity/prisma/migrations/20260831150000_oidc_backchannel_logout/migration.sql","runtime/modules/identity/prisma/migrations/20260831160000_idp_management_boundary/migration.sql","runtime/modules/identity/prisma/migrations/20260831170000_hosted_password_login/migration.sql","runtime/modules/identity/prisma/migrations/20260831181000_totp_authenticators/migration.sql","runtime/modules/identity/prisma/migrations/20260831190000_authorization_consent/migration.sql","runtime/modules/identity/prisma/migrations/migration_lock.toml","runtime/modules/identity/src/contracts/authentication.ts","runtime/modules/identity/src/contracts/contracts.test.ts","runtime/modules/identity/src/contracts/idp-management.test.ts","runtime/modules/identity/src/contracts/idp-management.ts","runtime/modules/identity/src/contracts/index.ts","runtime/modules/identity/src/contracts/job.ts","runtime/modules/identity/src/contracts/order.ts","runtime/modules/identity/src/contracts/realtime-command.test.ts","runtime/modules/identity/src/contracts/realtime-command.ts","runtime/modules/identity/src/contracts/realtime-database.test.ts","runtime/modules/identity/src/contracts/realtime-stats.ts","runtime/modules/identity/src/contracts/realtime.ts","runtime/modules/identity/src/contracts/replay.test.ts","runtime/modules/identity/src/contracts/replay.ts","runtime/modules/identity/src/contracts/statemachine.test.ts","runtime/modules/identity/src/contracts/statemachine.ts","runtime/modules/identity/src/contracts/subscription.test.ts","runtime/modules/identity/src/contracts/subscription.ts","runtime/modules/identity/src/contracts/tenant.ts","runtime/modules/identity/src/contracts/user.ts","runtime/modules/identity/src/http/applications/applications.controller.ts","runtime/modules/identity/src/http/applications/applications.module.ts","runtime/modules/identity/src/http/applications/applications.service.ts","runtime/modules/identity/src/http/authentication/authentication.controller.ts","runtime/modules/identity/src/http/authentication/authentication.module.ts","runtime/modules/identity/src/http/authentication/authentication.service.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.controller.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.module.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.service.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.controller.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.module.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.service.ts","runtime/modules/identity/src/http/common/idp-management-auth.module.ts","runtime/modules/identity/src/http/common/idp-management-auth.ts","runtime/modules/identity/src/http/common/self-service-session.ts","runtime/modules/identity/src/http/common/zod-validation.pipe.ts","runtime/modules/identity/src/http/controller.ts","runtime/modules/identity/src/http/health.ts","runtime/modules/identity/src/http/identity.module.ts","runtime/modules/identity/src/http/oidc/backchannel-logout-dispatcher.service.ts","runtime/modules/identity/src/http/oidc/backchannel-logout-operations.service.ts","runtime/modules/identity/src/http/oidc/oidc-protocol.service.ts","runtime/modules/identity/src/http/oidc/oidc-public.controller.ts","runtime/modules/identity/src/http/oidc/oidc-public.module.ts","runtime/modules/identity/src/http/oidc/oidc-public.service.ts","runtime/modules/identity/src/http/oidc/oidc-state.controller.ts","runtime/modules/identity/src/http/oidc/oidc-state.service.ts","runtime/modules/identity/src/http/prisma/prisma.module.ts","runtime/modules/identity/src/http/prisma/prisma.service.ts","runtime/modules/identity/src/http/redis/redis.module.ts","runtime/modules/identity/src/http/root-routes.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.controller.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.module.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.service.ts","runtime/modules/identity/src/http/tenants/bootstrap-token.guard.ts","runtime/modules/identity/src/http/tenants/tenants.controller.ts","runtime/modules/identity/src/http/tenants/tenants.module.ts","runtime/modules/identity/src/http/tenants/tenants.service.ts","runtime/modules/identity/src/http/users/users.controller.ts","runtime/modules/identity/src/http/users/users.module.ts","runtime/modules/identity/src/http/users/users.service.ts","runtime/modules/identity/src/persistence/client.ts","runtime/modules/identity/src/persistence/database-url.test.ts","runtime/modules/identity/src/persistence/database-url.ts","runtime/test/e2e/identity-profile.test.ts"],"removed":["identity/packages/contracts/src/authentication.ts","identity/packages/contracts/src/contracts.test.ts","identity/packages/contracts/src/idp-management.test.ts","identity/packages/contracts/src/idp-management.ts","identity/packages/contracts/src/index.ts","identity/packages/contracts/src/job.ts","identity/packages/contracts/src/order.ts","identity/packages/contracts/src/realtime-command.test.ts","identity/packages/contracts/src/realtime-command.ts","identity/packages/contracts/src/realtime-database.test.ts","identity/packages/contracts/src/realtime-stats.ts","identity/packages/contracts/src/realtime.ts","identity/packages/contracts/src/replay.test.ts","identity/packages/contracts/src/replay.ts","identity/packages/contracts/src/statemachine.test.ts","identity/packages/contracts/src/statemachine.ts","identity/packages/contracts/src/subscription.test.ts","identity/packages/contracts/src/subscription.ts","identity/packages/contracts/src/tenant.ts","identity/packages/contracts/src/user.ts"],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","contracts/SOURCE.md","contracts/catalogs/platform-projects.json","contracts/test/governance-linter.test.mjs","docs/PF-07身份核心迁移记录-2026-09-12.md","governance/caddy-routes.json","governance/test/check-caddy.test.mjs","governance/test/identity-source-relocation.test.mjs","identity/CLAUDE.md","identity/apps/api-nestjs/tsconfig.json","identity/apps/api-nestjs/vitest.config.ts","identity/packages/contracts/package.json","identity/reports/contract-consumers.latest.json","identity/reports/docs-truth.latest.json","identity/reports/dual-backend-behavior.latest.json","identity/reports/dual-backend-parity.latest.json","identity/reports/fork-readiness.latest.json","identity/reports/governance-docs.latest.json","identity/reports/governance.latest.json","identity/reports/migrations.latest.json","identity/reports/naming.latest.json","identity/reports/runtime-acceptance.latest.json","identity/reports/runtime-governance.latest.json","identity/reports/schema-sync.latest.json","identity/reports/statemachine-write-guard.latest.json","identity/reports/ui-acceptance.latest.json","identity/reports/validation-source.latest.json","identity/scripts/lib/own-tests.mjs","package.json","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/port-conformance.latest.json","runtime/apps/api-nestjs/src/create-app.ts","runtime/apps/api-nestjs/src/platform/http/platform-modules.controller.ts","runtime/docs/domain/identity-blueprint.md","runtime/modules.json","runtime/modules/identity/package.json","runtime/modules/identity/prisma/schema.prisma","runtime/modules/identity/source-relocation.json","runtime/modules/identity/src/index.ts","runtime/modules/identity/test/fixtures/README.md","runtime/modules/identity/tsconfig.json","runtime/modules/kit/src/index.test.ts","runtime/modules/kit/src/index.ts","runtime/pnpm-lock.yaml","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json","runtime/test/package.json","runtime/turbo.json","stack/caddy/Caddyfile"]},{"id":"3dad70fba60976838ee81c2dc31f394ebc355691","message":"docs(identity): record merged-source acceptance and port conformance\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/3dad70fba60976838ee81c2dc31f394ebc355691","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T16:46:26-07:00","added":[],"removed":[],"modified":["docs/PF-07身份HTTP模块迁移记录-2026-09-12.md","identity/reports/contract-consumers.latest.json","identity/reports/docs-truth.latest.json","identity/reports/dual-backend-behavior.latest.json","identity/reports/dual-backend-parity.latest.json","identity/reports/fork-readiness.latest.json","identity/reports/governance-docs.latest.json","identity/reports/governance.latest.json","identity/reports/migrations.latest.json","identity/reports/naming.latest.json","identity/reports/runtime-acceptance.latest.json","identity/reports/runtime-governance.latest.json","identity/reports/schema-sync.latest.json","identity/reports/statemachine-write-guard.latest.json","identity/reports/ui-acceptance.latest.json","identity/reports/validation-source.latest.json","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/identity-http.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/port-conformance.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"25ead3e9f3f453f9110d7a020e6ee70fd95638cc","message":"Merge mainline persistence and adversarial fixes into identity HTTP branch\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/25ead3e9f3f453f9110d7a020e6ee70fd95638cc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T16:41:47-07:00","added":["contracts/candidates/contracts/fact-intake-api.v1.openapi.json","docs/完整实现对抗验收-2026-09-12.md","governance/lib/mainline-evidence.mjs","reports/adversarial-acceptance.latest.json","reports/adversarial-environment.latest.json","reports/adversarial-promotion-negative.latest.json","reports/adversarial/2026-09-12/catalog-full.log","reports/adversarial/2026-09-12/ci-port-annotations.json","reports/adversarial/2026-09-12/ci-unit-annotations.json","reports/adversarial/2026-09-12/cold-fact-fixed.log","reports/adversarial/2026-09-12/cold-fact.log","reports/adversarial/2026-09-12/cold-fix-typecheck.log","reports/adversarial/2026-09-12/cold-unit-fixed.log","reports/adversarial/2026-09-12/cold-unit-network.log","reports/adversarial/2026-09-12/cold-unit.log","reports/adversarial/2026-09-12/contracts-local.log","reports/adversarial/2026-09-12/contracts-workspace.log","reports/adversarial/2026-09-12/fact-js-before.sha","reports/adversarial/2026-09-12/governance.log","reports/adversarial/2026-09-12/install.log","reports/adversarial/2026-09-12/mainline.log","reports/adversarial/2026-09-12/permission-after.log","reports/adversarial/2026-09-12/permission-before.log","reports/adversarial/2026-09-12/port-environment-failure.log","reports/adversarial/2026-09-12/port.log","reports/adversarial/2026-09-12/pre-integration/reports/mainline-acceptance.latest.json","reports/adversarial/2026-09-12/pre-integration/reports/mainline-restore.latest.json","reports/adversarial/2026-09-12/pre-integration/reports/port-conformance.latest.json","reports/adversarial/2026-09-12/pre-integration/reports/release-manifest.latest.json","reports/adversarial/2026-09-12/pre-integration/reports/revocation-sla.latest.json","reports/adversarial/2026-09-12/pre-integration/runtime/reports/runtime-acceptance.latest.json","reports/adversarial/2026-09-12/pre-integration/runtime/reports/ui-acceptance.latest.json","reports/adversarial/2026-09-12/promotion-after.log","reports/adversarial/2026-09-12/promotion-before.log","reports/adversarial/2026-09-12/promotion-cli.log","reports/adversarial/2026-09-12/restore.log","reports/adversarial/2026-09-12/runtime.log","reports/adversarial/2026-09-12/ui.log","reports/foundation-audit-current.latest.json","reports/mainline-acceptance.latest.json","reports/mainline-candidate-regression.latest.json","reports/mainline-dev-deployment.latest.json","reports/mainline-restore.latest.json","reports/revocation-sla.latest.json","reports/stack-image-pins.latest.json","runtime/apps/api-nestjs/src/platform/http/fact-intake.controller.ts","runtime/modules/fact/src/persistence/runtime.test.ts","runtime/modules/fact/src/persistence/runtime.ts","runtime/modules/kit/src/fact-runtime.ts","runtime/test/e2e/fact-http.test.ts"],"removed":[],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","contracts/candidates/README.md","docs/MS-2-3持久主线执行记录-2026-09-12.md","docs/staging晋级操作说明.md","docs/候选校验与恢复脚本修复记录-2026-09-12.md","docs/持久主线本地验收.md","governance/README.md","governance/check-mainline.mjs","governance/check-promotion.mjs","governance/prepare-package-release.mjs","governance/restore-mainline.mjs","governance/test/package-release.test.mjs","governance/test/promotion.test.mjs","governance/test/verify-candidate.test.mjs","governance/verify-candidate.mjs","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/port-conformance.latest.json","reports/release-manifest.latest.json","runtime/CLAUDE.md","runtime/apps/api-nestjs/src/platform/platform-http.module.ts","runtime/clients/fact/src/index.ts","runtime/clients/permission/README.md","runtime/clients/permission/src/index.test.ts","runtime/clients/permission/src/index.ts","runtime/modules/fact/src/index.ts","runtime/modules/fact/src/persistence/fact-store.ts","runtime/modules/kit/src/index.ts","runtime/reports/agent-adapters.latest.json","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/ui-acceptance.latest.json","runtime/reports/validation-source.latest.json","runtime/test/chaos/redpanda-disconnect.test.ts","runtime/test/e2e/revocation-sla.test.ts","runtime/turbo.json","stack/README.md","stack/compose.yaml"]},{"id":"c618f5c6ecf6b5f7fe081a422821b4fc7c88ba4a","message":"docs(identity): preserve fixed-source HTTP and compatibility evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/c618f5c6ecf6b5f7fe081a422821b4fc7c88ba4a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T16:41:03-07:00","added":["reports/identity-http.latest.json"],"removed":[],"modified":["docs/PF-07身份HTTP模块迁移记录-2026-09-12.md","identity/reports/contract-consumers.latest.json","identity/reports/docs-truth.latest.json","identity/reports/dual-backend-behavior.latest.json","identity/reports/dual-backend-parity.latest.json","identity/reports/fork-readiness.latest.json","identity/reports/governance-docs.latest.json","identity/reports/governance.latest.json","identity/reports/migrations.latest.json","identity/reports/naming.latest.json","identity/reports/runtime-acceptance.latest.json","identity/reports/runtime-governance.latest.json","identity/reports/schema-sync.latest.json","identity/reports/statemachine-write-guard.latest.json","identity/reports/ui-acceptance.latest.json","identity/reports/validation-source.latest.json","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"99c3f521ef427039910e61b4c9195f0fdfdcf9b2","message":"feat(identity): mount canonical HTTP module with isolated persistence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/99c3f521ef427039910e61b4c9195f0fdfdcf9b2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T16:35:22-07:00","added":["docs/PF-07身份HTTP模块迁移记录-2026-09-12.md","governance/prepare-identity.mjs","identity/apps/api-nestjs/contracts/index.ts","identity/apps/api-nestjs/oidc/index.ts","identity/apps/api-nestjs/persistence/client/index.ts","identity/apps/api-nestjs/security/index.ts","identity/apps/api-nestjs/src/controller.ts","runtime/modules/identity/http-source-relocation.json","runtime/modules/identity/prisma/migrations/20260608150500_init/migration.sql","runtime/modules/identity/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","runtime/modules/identity/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","runtime/modules/identity/prisma/migrations/20260830093000_idp_applications/migration.sql","runtime/modules/identity/prisma/migrations/20260830183000_idp_tenants_users/migration.sql","runtime/modules/identity/prisma/migrations/20260831070000_oidc_authorization_code/migration.sql","runtime/modules/identity/prisma/migrations/20260831140000_oidc_refresh_rotation/migration.sql","runtime/modules/identity/prisma/migrations/20260831150000_oidc_backchannel_logout/migration.sql","runtime/modules/identity/prisma/migrations/20260831160000_idp_management_boundary/migration.sql","runtime/modules/identity/prisma/migrations/20260831170000_hosted_password_login/migration.sql","runtime/modules/identity/prisma/migrations/20260831181000_totp_authenticators/migration.sql","runtime/modules/identity/prisma/migrations/20260831190000_authorization_consent/migration.sql","runtime/modules/identity/prisma/migrations/migration_lock.toml","runtime/modules/identity/src/http/applications/applications.controller.ts","runtime/modules/identity/src/http/applications/applications.module.ts","runtime/modules/identity/src/http/applications/applications.service.ts","runtime/modules/identity/src/http/authentication/authentication.controller.ts","runtime/modules/identity/src/http/authentication/authentication.module.ts","runtime/modules/identity/src/http/authentication/authentication.service.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.controller.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.module.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.service.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.controller.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.module.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.service.ts","runtime/modules/identity/src/http/common/idp-management-auth.module.ts","runtime/modules/identity/src/http/common/idp-management-auth.ts","runtime/modules/identity/src/http/common/self-service-session.ts","runtime/modules/identity/src/http/common/zod-validation.pipe.ts","runtime/modules/identity/src/http/controller.ts","runtime/modules/identity/src/http/health.ts","runtime/modules/identity/src/http/identity.module.ts","runtime/modules/identity/src/http/oidc/backchannel-logout-dispatcher.service.ts","runtime/modules/identity/src/http/oidc/backchannel-logout-operations.service.ts","runtime/modules/identity/src/http/oidc/oidc-protocol.service.ts","runtime/modules/identity/src/http/oidc/oidc-public.controller.ts","runtime/modules/identity/src/http/oidc/oidc-public.module.ts","runtime/modules/identity/src/http/oidc/oidc-public.service.ts","runtime/modules/identity/src/http/oidc/oidc-state.controller.ts","runtime/modules/identity/src/http/oidc/oidc-state.service.ts","runtime/modules/identity/src/http/prisma/prisma.module.ts","runtime/modules/identity/src/http/prisma/prisma.service.ts","runtime/modules/identity/src/http/redis/redis.module.ts","runtime/modules/identity/src/http/root-routes.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.controller.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.module.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.service.ts","runtime/modules/identity/src/http/tenants/bootstrap-token.guard.ts","runtime/modules/identity/src/http/tenants/tenants.controller.ts","runtime/modules/identity/src/http/tenants/tenants.module.ts","runtime/modules/identity/src/http/tenants/tenants.service.ts","runtime/modules/identity/src/http/users/users.controller.ts","runtime/modules/identity/src/http/users/users.module.ts","runtime/modules/identity/src/http/users/users.service.ts","runtime/modules/identity/src/persistence/client.ts","runtime/modules/identity/src/persistence/database-url.test.ts","runtime/modules/identity/src/persistence/database-url.ts","runtime/test/e2e/identity-profile.test.ts"],"removed":[],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","contracts/SOURCE.md","contracts/catalogs/platform-projects.json","contracts/test/governance-linter.test.mjs","governance/caddy-routes.json","governance/test/check-caddy.test.mjs","governance/test/identity-source-relocation.test.mjs","identity/apps/api-nestjs/tsconfig.json","identity/apps/api-nestjs/vitest.config.ts","package.json","runtime/apps/api-nestjs/src/create-app.ts","runtime/apps/api-nestjs/src/platform/http/platform-modules.controller.ts","runtime/docs/domain/identity-blueprint.md","runtime/modules.json","runtime/modules/identity/package.json","runtime/modules/identity/prisma/schema.prisma","runtime/modules/identity/src/index.ts","runtime/modules/identity/test/fixtures/README.md","runtime/modules/identity/tsconfig.json","runtime/modules/kit/src/index.test.ts","runtime/modules/kit/src/index.ts","runtime/pnpm-lock.yaml","runtime/test/package.json","runtime/turbo.json","stack/caddy/Caddyfile"]}],"total_commits":0,"head_commit":{"id":"02c068b9401161d8787e492f1c19f348ae2f85a2","message":"Merge pull request #23 from laoluojuhai/feat/identity-http-runtime\n\nfeat(identity): 接入统一 HTTP 模块与独立身份数据库","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/02c068b9401161d8787e492f1c19f348ae2f85a2","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-12T17:01:39-07:00","added":["docs/PF-07身份HTTP模块迁移记录-2026-09-12.md","docs/PF-07身份私有契约迁移记录-2026-09-12.md","governance/prepare-identity.mjs","identity/apps/api-nestjs/contracts/index.ts","identity/apps/api-nestjs/oidc/index.ts","identity/apps/api-nestjs/persistence/client/index.ts","identity/apps/api-nestjs/security/index.ts","identity/apps/api-nestjs/src/controller.ts","identity/packages/contracts/domain/index.d.ts","identity/packages/contracts/domain/index.js","identity/packages/contracts/src","identity/packages/contracts/vitest.config.ts","reports/identity-http.latest.json","runtime/modules/identity/http-source-relocation.json","runtime/modules/identity/prisma/migrations/20260608150500_init/migration.sql","runtime/modules/identity/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","runtime/modules/identity/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","runtime/modules/identity/prisma/migrations/20260830093000_idp_applications/migration.sql","runtime/modules/identity/prisma/migrations/20260830183000_idp_tenants_users/migration.sql","runtime/modules/identity/prisma/migrations/20260831070000_oidc_authorization_code/migration.sql","runtime/modules/identity/prisma/migrations/20260831140000_oidc_refresh_rotation/migration.sql","runtime/modules/identity/prisma/migrations/20260831150000_oidc_backchannel_logout/migration.sql","runtime/modules/identity/prisma/migrations/20260831160000_idp_management_boundary/migration.sql","runtime/modules/identity/prisma/migrations/20260831170000_hosted_password_login/migration.sql","runtime/modules/identity/prisma/migrations/20260831181000_totp_authenticators/migration.sql","runtime/modules/identity/prisma/migrations/20260831190000_authorization_consent/migration.sql","runtime/modules/identity/prisma/migrations/migration_lock.toml","runtime/modules/identity/src/contracts/authentication.ts","runtime/modules/identity/src/contracts/contracts.test.ts","runtime/modules/identity/src/contracts/idp-management.test.ts","runtime/modules/identity/src/contracts/idp-management.ts","runtime/modules/identity/src/contracts/index.ts","runtime/modules/identity/src/contracts/job.ts","runtime/modules/identity/src/contracts/order.ts","runtime/modules/identity/src/contracts/realtime-command.test.ts","runtime/modules/identity/src/contracts/realtime-command.ts","runtime/modules/identity/src/contracts/realtime-database.test.ts","runtime/modules/identity/src/contracts/realtime-stats.ts","runtime/modules/identity/src/contracts/realtime.ts","runtime/modules/identity/src/contracts/replay.test.ts","runtime/modules/identity/src/contracts/replay.ts","runtime/modules/identity/src/contracts/statemachine.test.ts","runtime/modules/identity/src/contracts/statemachine.ts","runtime/modules/identity/src/contracts/subscription.test.ts","runtime/modules/identity/src/contracts/subscription.ts","runtime/modules/identity/src/contracts/tenant.ts","runtime/modules/identity/src/contracts/user.ts","runtime/modules/identity/src/http/applications/applications.controller.ts","runtime/modules/identity/src/http/applications/applications.module.ts","runtime/modules/identity/src/http/applications/applications.service.ts","runtime/modules/identity/src/http/authentication/authentication.controller.ts","runtime/modules/identity/src/http/authentication/authentication.module.ts","runtime/modules/identity/src/http/authentication/authentication.service.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.controller.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.module.ts","runtime/modules/identity/src/http/authenticator-self-service/authenticator-self-service.service.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.controller.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.module.ts","runtime/modules/identity/src/http/authorization-consents/authorization-consents.service.ts","runtime/modules/identity/src/http/common/idp-management-auth.module.ts","runtime/modules/identity/src/http/common/idp-management-auth.ts","runtime/modules/identity/src/http/common/self-service-session.ts","runtime/modules/identity/src/http/common/zod-validation.pipe.ts","runtime/modules/identity/src/http/controller.ts","runtime/modules/identity/src/http/health.ts","runtime/modules/identity/src/http/identity.module.ts","runtime/modules/identity/src/http/oidc/backchannel-logout-dispatcher.service.ts","runtime/modules/identity/src/http/oidc/backchannel-logout-operations.service.ts","runtime/modules/identity/src/http/oidc/oidc-protocol.service.ts","runtime/modules/identity/src/http/oidc/oidc-public.controller.ts","runtime/modules/identity/src/http/oidc/oidc-public.module.ts","runtime/modules/identity/src/http/oidc/oidc-public.service.ts","runtime/modules/identity/src/http/oidc/oidc-state.controller.ts","runtime/modules/identity/src/http/oidc/oidc-state.service.ts","runtime/modules/identity/src/http/prisma/prisma.module.ts","runtime/modules/identity/src/http/prisma/prisma.service.ts","runtime/modules/identity/src/http/redis/redis.module.ts","runtime/modules/identity/src/http/root-routes.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.controller.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.module.ts","runtime/modules/identity/src/http/session-self-service/session-self-service.service.ts","runtime/modules/identity/src/http/tenants/bootstrap-token.guard.ts","runtime/modules/identity/src/http/tenants/tenants.controller.ts","runtime/modules/identity/src/http/tenants/tenants.module.ts","runtime/modules/identity/src/http/tenants/tenants.service.ts","runtime/modules/identity/src/http/users/users.controller.ts","runtime/modules/identity/src/http/users/users.module.ts","runtime/modules/identity/src/http/users/users.service.ts","runtime/modules/identity/src/persistence/client.ts","runtime/modules/identity/src/persistence/database-url.test.ts","runtime/modules/identity/src/persistence/database-url.ts","runtime/test/e2e/identity-profile.test.ts"],"removed":["identity/packages/contracts/src/authentication.ts","identity/packages/contracts/src/contracts.test.ts","identity/packages/contracts/src/idp-management.test.ts","identity/packages/contracts/src/idp-management.ts","identity/packages/contracts/src/index.ts","identity/packages/contracts/src/job.ts","identity/packages/contracts/src/order.ts","identity/packages/contracts/src/realtime-command.test.ts","identity/packages/contracts/src/realtime-command.ts","identity/packages/contracts/src/realtime-database.test.ts","identity/packages/contracts/src/realtime-stats.ts","identity/packages/contracts/src/realtime.ts","identity/packages/contracts/src/replay.test.ts","identity/packages/contracts/src/replay.ts","identity/packages/contracts/src/statemachine.test.ts","identity/packages/contracts/src/statemachine.ts","identity/packages/contracts/src/subscription.test.ts","identity/packages/contracts/src/subscription.ts","identity/packages/contracts/src/tenant.ts","identity/packages/contracts/src/user.ts"],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","contracts/SOURCE.md","contracts/catalogs/platform-projects.json","contracts/test/governance-linter.test.mjs","docs/PF-07身份核心迁移记录-2026-09-12.md","governance/caddy-routes.json","governance/test/check-caddy.test.mjs","governance/test/identity-source-relocation.test.mjs","identity/CLAUDE.md","identity/apps/api-nestjs/tsconfig.json","identity/apps/api-nestjs/vitest.config.ts","identity/packages/contracts/package.json","identity/reports/contract-consumers.latest.json","identity/reports/docs-truth.latest.json","identity/reports/dual-backend-behavior.latest.json","identity/reports/dual-backend-parity.latest.json","identity/reports/fork-readiness.latest.json","identity/reports/governance-docs.latest.json","identity/reports/governance.latest.json","identity/reports/migrations.latest.json","identity/reports/naming.latest.json","identity/reports/runtime-acceptance.latest.json","identity/reports/runtime-governance.latest.json","identity/reports/schema-sync.latest.json","identity/reports/statemachine-write-guard.latest.json","identity/reports/ui-acceptance.latest.json","identity/reports/validation-source.latest.json","identity/scripts/lib/own-tests.mjs","package.json","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/port-conformance.latest.json","runtime/apps/api-nestjs/src/create-app.ts","runtime/apps/api-nestjs/src/platform/http/platform-modules.controller.ts","runtime/docs/domain/identity-blueprint.md","runtime/modules.json","runtime/modules/identity/package.json","runtime/modules/identity/prisma/schema.prisma","runtime/modules/identity/source-relocation.json","runtime/modules/identity/src/index.ts","runtime/modules/identity/test/fixtures/README.md","runtime/modules/identity/tsconfig.json","runtime/modules/kit/src/index.test.ts","runtime/modules/kit/src/index.ts","runtime/pnpm-lock.yaml","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json","runtime/test/package.json","runtime/turbo.json","stack/caddy/Caddyfile"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6762,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":9,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-13T08:01:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}... |