Files
llm-wiki/harness/source/vault-layout.json
T

8568 lines
464 KiB
JSON

{
"areas": {
"00-system": [
"rules",
"templates"
],
"10-projects": [
"raw/project-notes",
"raw/branch-notes",
"raw/diagrams",
"raw/errors"
],
"20-evidence": [
"raw/official-docs",
"raw/company-tech-blogs",
"raw/lectures",
"raw/job-postings",
"raw/invest-research"
],
"30-knowledge": [
"wiki/concepts",
"wiki/projects",
"wiki/explainer",
"wiki/invest",
"wiki/invest-concepts",
"wiki/invest-plan",
"wiki/invest-strategy"
],
"40-publish": [
"raw/blog-topics",
"raw/interviews",
"wiki/blog",
"wiki/interview",
"wiki/portfolio",
"wiki/publish-blog",
"wiki/topics-interview"
],
"50-journal": [
"raw/daily-notes",
"raw/daily-tasks",
"raw/invest-daily",
"raw/invest-ledger"
],
"90-archive": [
"raw/archive"
]
},
"canonical_mapping": {
"default_pattern": "{vault_root}/{area}/{category}/{relative_path}",
"project_member_pattern": "{vault_root}/{area}/{project}/{category}/{relative_path}",
"project_relation": "branch-to-project",
"schema_version": "project-first-paths/v1"
},
"migration_manifest": {
"entries": [
{
"canonical_path": "vault/00-system/rules/advisory-depth.md",
"legacy_path": "rules/advisory-depth.md",
"sha256": "409eb88c112b770e0f46f74474afc19cdab6503652f79c5fd02aa3957dd37fa5"
},
{
"canonical_path": "vault/00-system/rules/branch-depth-gate.md",
"legacy_path": "rules/branch-depth-gate.md",
"sha256": "7556db65504a0bbe8882268f00fadfb7da54963a80c1d1df00acaad2679c7441"
},
{
"canonical_path": "vault/00-system/rules/consistency-contract.md",
"legacy_path": "rules/consistency-contract.md",
"sha256": "7d45678212236b41034ae395facd2c3f32bc7c04db29dde2165886c6fd1f2ccf"
},
{
"canonical_path": "vault/00-system/rules/coverage-gate.md",
"legacy_path": "rules/coverage-gate.md",
"sha256": "433fddda40e1b468eca71eeb52c3dced339d9396df237e1e4e38fb14c20856c2"
},
{
"canonical_path": "vault/00-system/rules/diagram-standards.md",
"legacy_path": "rules/diagram-standards.md",
"sha256": "f005b19e96182242b3fa6d7a6fc7e79b08743a59b1f5c4128790ea2075f4dc1f"
},
{
"canonical_path": "vault/00-system/rules/evidence-first-research.md",
"legacy_path": "rules/evidence-first-research.md",
"sha256": "cd512b79c599972df08ad6be90ee06a2235c4a67a67be1cb3ecdcab1c7280dbd"
},
{
"canonical_path": "vault/00-system/rules/execution-profiles.md",
"legacy_path": "rules/execution-profiles.md",
"sha256": "0fef0bab691684abc30021930cb4b34f957925700f827ad550af5a31f4ca9ba2"
},
{
"canonical_path": "vault/00-system/rules/extraction-tiering.md",
"legacy_path": "rules/extraction-tiering.md",
"sha256": "1a8cb9b4553c228f7fa878ce1369ba7a1d5b94b3296bf60f9dc2b891d98a3e41"
},
{
"canonical_path": "vault/00-system/rules/linking-rules.md",
"legacy_path": "rules/linking-rules.md",
"sha256": "a306504e5f8aa1d457d554830f9e91500af8939770cdca340c828fc212f632e9"
},
{
"canonical_path": "vault/00-system/rules/naming-conventions.md",
"legacy_path": "rules/naming-conventions.md",
"sha256": "bb3ca18bc6f2acaa7103cc0c37ddb9862e0b580d7a066bf5c019aaec97b04b9d"
},
{
"canonical_path": "vault/00-system/rules/project-readiness-gate.md",
"legacy_path": "rules/project-readiness-gate.md",
"sha256": "d07f3553b79478fb39b772b8b8f85aba51ed85c277617fa3e1b332328b65f87e"
},
{
"canonical_path": "vault/00-system/rules/prose-style.md",
"legacy_path": "rules/prose-style.md",
"sha256": "11117c1555dc86c6d09185e349ccb8d944ab0ecb5e02533718306bbece6712cd"
},
{
"canonical_path": "vault/00-system/rules/reporting-standards.md",
"legacy_path": "rules/reporting-standards.md",
"sha256": "7f8556d757eb62dbdf35cd1a87f8d53b76a130ec782ad33e0e0d03aa548ff818"
},
{
"canonical_path": "vault/00-system/rules/subagent-input-contracts.md",
"legacy_path": "rules/subagent-input-contracts.md",
"sha256": "d5616cf0ebc644aef5ded9072f3b79166770fddb74a5935698ce865cfaaec90c"
},
{
"canonical_path": "vault/00-system/rules/tag-taxonomy.md",
"legacy_path": "rules/tag-taxonomy.md",
"sha256": "7c331ac10fe17256975a4cb7f54676ea2c356bbd0e965382c2fb5ffe545b8831"
},
{
"canonical_path": "vault/00-system/templates/blog-template.md",
"legacy_path": "templates/blog-template.md",
"sha256": "22d528a6864ca8b829e7d072760923e084a112f8b8571fb0a20692a8b7341df4"
},
{
"canonical_path": "vault/00-system/templates/blog-topic-template.md",
"legacy_path": "templates/blog-topic-template.md",
"sha256": "8416ed079dd23443183c0d616ebaba130da4d3a2974be0b9132c362bba2698a0"
},
{
"canonical_path": "vault/00-system/templates/branch-note-template.md",
"legacy_path": "templates/branch-note-template.md",
"sha256": "f954447f18134559d7d030867f3d46ad98460c4e9d63a9b1fbfeb4292cf14395"
},
{
"canonical_path": "vault/00-system/templates/branch-report-template.md",
"legacy_path": "templates/branch-report-template.md",
"sha256": "1c3478590e4be348ca3d0281c66c12e0ce91e63b5e91391d6372c1e2bbcde971"
},
{
"canonical_path": "vault/00-system/templates/concept-template.md",
"legacy_path": "templates/concept-template.md",
"sha256": "5ac205db9637f90a36c60c2854161f4820f425b218ac0ba9d261c9c4d1f673ce"
},
{
"canonical_path": "vault/00-system/templates/daily-note-template.md",
"legacy_path": "templates/daily-note-template.md",
"sha256": "7e11cdfd82c8813dc16cd5a601d746f43c1ff8c59f92bb82eaee1f94cc979e65"
},
{
"canonical_path": "vault/00-system/templates/daily-task-develop-template.md",
"legacy_path": "templates/daily-task-develop-template.md",
"sha256": "550e5db52a13b4872663c5e2ee7a1c8ea47dffe185474feb99127cf9f8c0fde5"
},
{
"canonical_path": "vault/00-system/templates/daily-task-infra-template.md",
"legacy_path": "templates/daily-task-infra-template.md",
"sha256": "437d5b6e089922a597c32ab7e922787b1a536b86965e6b6d3330acc240a5aa6d"
},
{
"canonical_path": "vault/00-system/templates/error-note-template.md",
"legacy_path": "templates/error-note-template.md",
"sha256": "996a347b70a513c8df0924484b0c96ac111dc15c2b8f04877eb95d6728f2fb18"
},
{
"canonical_path": "vault/00-system/templates/explainer-template.md",
"legacy_path": "templates/explainer-template.md",
"sha256": "85a9c9e5302d2572a8c9c689b7062738b94cc62c3f3cc0a2dedde53522c97a93"
},
{
"canonical_path": "vault/00-system/templates/interview-prep-template.md",
"legacy_path": "templates/interview-prep-template.md",
"sha256": "369d00df04be9c3d7488e29111ca61a6189b9ef96a50f4e66c5e2603b9be1e40"
},
{
"canonical_path": "vault/00-system/templates/interview-template.md",
"legacy_path": "templates/interview-template.md",
"sha256": "6dfeb998d297611daf3a610b6f18a7a6a3eb07cfce71cccaf029b225be6911b5"
},
{
"canonical_path": "vault/00-system/templates/invest-concept-template.md",
"legacy_path": "templates/invest-concept-template.md",
"sha256": "01aa0388da1f95fab979048ee87e8a091f623ca59e7031b72351affe022d4346"
},
{
"canonical_path": "vault/00-system/templates/invest-daily-template.md",
"legacy_path": "templates/invest-daily-template.md",
"sha256": "014d793679313e1bb673b2294442ff501038f34a64b44405c78e33f95b21d456"
},
{
"canonical_path": "vault/00-system/templates/invest-field-card-template.md",
"legacy_path": "templates/invest-field-card-template.md",
"sha256": "cc17e0e1b219d82cc4547d102adb36918c22a0e4ecd4cdc62620e29902be9b4d"
},
{
"canonical_path": "vault/00-system/templates/invest-ledger-template.md",
"legacy_path": "templates/invest-ledger-template.md",
"sha256": "826a9b38d074ebb4a5f93e3ee6fe03698a8d827b951c423b76ff9869e49aaf60"
},
{
"canonical_path": "vault/00-system/templates/invest-plan-template.md",
"legacy_path": "templates/invest-plan-template.md",
"sha256": "f056f6a6a4152d8756f750c89518262192cf4c245c95a271e4258b3bd7deccbb"
},
{
"canonical_path": "vault/00-system/templates/invest-research-template.md",
"legacy_path": "templates/invest-research-template.md",
"sha256": "d0f3bd31ab6f7ca092a92e01aec8edb249b0773b7e6fe4a9a793731e0a48b32a"
},
{
"canonical_path": "vault/00-system/templates/invest-strategy-template.md",
"legacy_path": "templates/invest-strategy-template.md",
"sha256": "f5e41d15b56a741c2375e53b6bacb95f2329cd23db8e8347607d3e69715e3036"
},
{
"canonical_path": "vault/00-system/templates/job-posting-template.md",
"legacy_path": "templates/job-posting-template.md",
"sha256": "c79bf0e6f9393085e82f967a4b76abd8c4f3aa4453af0eb48fdb46739af6ce1f"
},
{
"canonical_path": "vault/00-system/templates/lecture-note-template.md",
"legacy_path": "templates/lecture-note-template.md",
"sha256": "5fa3d7311432a8e43b5bdb00d56a2acc55528bdf3aa7d6e357b11d1d56cc3949"
},
{
"canonical_path": "vault/00-system/templates/portfolio-template.md",
"legacy_path": "templates/portfolio-template.md",
"sha256": "a962896d3838ada662c42589558fb30f99c44667101330e49e2beca28caa4520"
},
{
"canonical_path": "vault/00-system/templates/project-report-template.md",
"legacy_path": "templates/project-report-template.md",
"sha256": "601de44b6622961a1152df2d01b2bebf47f0f8154abe05c017d92181d20dded0"
},
{
"canonical_path": "vault/00-system/templates/project-template.md",
"legacy_path": "templates/project-template.md",
"sha256": "784659513071a520457e24c04d9d3d1bc3a25d93e70983d3dbcfcaef59017309"
},
{
"canonical_path": "vault/00-system/templates/raw-source-template.md",
"legacy_path": "templates/raw-source-template.md",
"sha256": "bb0db263e8c39437e951fd0719a3021ac2dc7638c484001da1967807cf34364b"
},
{
"canonical_path": "vault/00-system/templates/source-summary-template.md",
"legacy_path": "templates/source-summary-template.md",
"sha256": "9687e15d171a5a79ed94f06d4da81cd9d35376bcc304bba2a54ea06ac61f2e7d"
},
{
"canonical_path": "vault/00-system/templates/wiki-project-template.md",
"legacy_path": "templates/wiki-project-template.md",
"sha256": "e95c397fe79fac04a26600e69e647ce69e94e88406ca58c3f95a02eaa38fdf90"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-accessibility-baseline-contract.md",
"legacy_path": "raw/branch-notes/feature-accessibility-baseline-contract.md",
"sha256": "fcb9d3437106bd61380910941189976554c97eaf5e5f7357c91cd1c68ba704db"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-api-client-response-envelope-contract.md",
"legacy_path": "raw/branch-notes/feature-api-client-response-envelope-contract.md",
"sha256": "faf7cfdc115455b08e356fcd0089a5ee784fdd6b7f4a7bfb9b8dcce9f61d893b"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-async-ui-state-contract.md",
"legacy_path": "raw/branch-notes/feature-async-ui-state-contract.md",
"sha256": "c48043b2387d1a92084b161627046b064c4d5df53a12ae47dcf74a8524b88ab6"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-boundary-mapper-viewmodel-contract.md",
"legacy_path": "raw/branch-notes/feature-boundary-mapper-viewmodel-contract.md",
"sha256": "8bd36cbbb73d123e9b1ba70ba6f4566678ef3637043e4f9e68d2890b0dba4b35"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-architecture-enforcement-lint-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-architecture-enforcement-lint-contract.md",
"sha256": "98d8d336d7aa106d40369e0dee42eb301a9a52c5a4a8f581598920b1ace21e5a"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-auth-session-integration-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-auth-session-integration-contract.md",
"sha256": "582f8fd331d17bcab3785bc516533e32a4407284410e7c5f203fcfe3f2a4499c"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-browser-security-boundary-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-browser-security-boundary-contract.md",
"sha256": "6686610d6b5d234512fc631e7bde136792f06d532428034a763d5464076661c7"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-build-bundle-supply-chain-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-build-bundle-supply-chain-contract.md",
"sha256": "b8106b4a84b8f5d04477e7be5fd18d15ec368393b9a883a0d1b113af08641ae2"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-ci-quality-gates-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-ci-quality-gates-contract.md",
"sha256": "81130f86e19a9a47ba25d688ce7fccc7479abe9e1fdb1e3024231e35af4bffd6"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-clean-architecture-layering-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-clean-architecture-layering-contract.md",
"sha256": "5652a69492d4a6d8456afe5c06bd3af242fb38d3882850600b375501ff9f45f2"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-contract-compatibility-governance.md",
"legacy_path": "raw/branch-notes/feature-frontend-contract-compatibility-governance.md",
"sha256": "5acf226b541ab4eded0b0cf0b30a19549b5efcb58bec5eaa846451dc24135214"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-contract-registry-governance.md",
"legacy_path": "raw/branch-notes/feature-frontend-contract-registry-governance.md",
"sha256": "f27d41cf087ecfa99565293915913cd78944f79372e5fbdecd223357ab5a41b0"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-env-runtime-config-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-env-runtime-config-contract.md",
"sha256": "1fd5e34686eb1a93c9d3ab62b45d4b5ac205720e253f56895186daca1b1f8b57"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-error-classification-boundary-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-error-classification-boundary-contract.md",
"sha256": "88a14e8d0f983a06b3c0ea8055522b18c9175a1f30ccc3562a8b4302207378d7"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-observability-logging-trace-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-observability-logging-trace-contract.md",
"sha256": "42dcb649e91bfc6c3497fb91a1e475b767157ce40ab13fbe3e36682a3610e50d"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-operational-runbook-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-operational-runbook-contract.md",
"sha256": "790d61749d3692ab89da5b2c76b3dd9096369eac2403b1d093b7f9af5cca7539"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-project-bootstrap-toolchain-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-project-bootstrap-toolchain-contract.md",
"sha256": "6d0f0b13ce33f23475d509293383f708246d4d416b5cf7beae5edb47b0afa60a"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-release-cache-rollback-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-release-cache-rollback-contract.md",
"sha256": "b42aecfa4678d08ad21bf6fd58947d981e886ab4e3f3dcaccd0590e877feb339"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-render-recovery-boundary-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-render-recovery-boundary-contract.md",
"sha256": "a9d705110b0600b5dc07566b0cf5b7d946b3ea2c5f9df990902221f29b9128df"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-storage-registry-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-storage-registry-contract.md",
"sha256": "6b1257dc01e5070cc759a6009690d328588bd2abd40de38c7c55fe045534b973"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-test-taxonomy-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-test-taxonomy-contract.md",
"sha256": "c5c5c5dd4b1f6ee1f94ea038859fa65d60ec7ad77cd6feaf0cdea28d37cecf2a"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-routing-navigation-guard-contract.md",
"legacy_path": "raw/branch-notes/feature-routing-navigation-guard-contract.md",
"sha256": "e802d0a19884c065d646b18a1738325713097a53593e13af643431ecf05a0dfb"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-runtime-schema-validation-contract.md",
"legacy_path": "raw/branch-notes/feature-runtime-schema-validation-contract.md",
"sha256": "d8234cafccb2f0c2cf450d97cee5ec83606c917fd6db9793a656ffa86a3b78a9"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-sample-feature-slice-contract-fixture.md",
"legacy_path": "raw/branch-notes/feature-sample-feature-slice-contract-fixture.md",
"sha256": "0263856f787d7299b16902ac5834331a0e5074f12f8bf2f222ce916015e797a9"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-server-state-caching-contract.md",
"legacy_path": "raw/branch-notes/feature-server-state-caching-contract.md",
"sha256": "15f4d6758a4a34f320adc44561312620b44845c1d19adf0470e6d4354bc4ec5f"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-tailwind-design-token-styling-contract.md",
"legacy_path": "raw/branch-notes/feature-tailwind-design-token-styling-contract.md",
"sha256": "1eb86389ebb1491efea5daf65436f0651e2c04f2c63864e9e31aeeb961915b67"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-web-vitals-performance-budget-contract.md",
"legacy_path": "raw/branch-notes/feature-web-vitals-performance-budget-contract.md",
"sha256": "828014e2d2f5554ae47b486b2b6bca9bfd5c6a5a6958ee850bf0b2dccb820ee4"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/project-notes/ca-skeleton-frontend-operational-contract.md",
"legacy_path": "raw/project-notes/ca-skeleton-frontend-operational-contract.md",
"sha256": "d9c50706e2f2ecea1f890c98b60dd802ecb2ef2d987241ec968ee991a8130c6d"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/chore-harness-policy-engine-alignment.md",
"legacy_path": "raw/branch-notes/chore-harness-policy-engine-alignment.md",
"sha256": "e8d012a5198f7ff6e87ceb6d24539967753deca7f9f5336be47b73a8c68d3b4f"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/chore-ulid-to-uuidv7.md",
"legacy_path": "raw/branch-notes/chore-ulid-to-uuidv7.md",
"sha256": "ee699955da6cf3624564c24961b2e4abfe03cd6ef52d718560bc80e88e865845"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-api-compatibility-deprecation-contract.md",
"legacy_path": "raw/branch-notes/feature-api-compatibility-deprecation-contract.md",
"sha256": "2564d415b27d640a749172f2e057f51d506ee72bb1632d77b1f2b29f5e8b2da0"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-api-contract-baseline.md",
"legacy_path": "raw/branch-notes/feature-api-contract-baseline.md",
"sha256": "a7bf93646ddb1f8949d36dc91609718bdc651c9929cb46976529509bd6011fad"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-application-port-usecase-contract.md",
"legacy_path": "raw/branch-notes/feature-application-port-usecase-contract.md",
"sha256": "e08ccafc99cb092e5d4716c24961fe2904afa330662f84ef475b47d1d9e52d2a"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-application-query-bypass-contract.md",
"legacy_path": "raw/branch-notes/feature-application-query-bypass-contract.md",
"sha256": "e1c77ddfd50f914fc838f2bb1cc4fbff3f68731e646fb27b90b26c1e93e71072"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-architecture-enforcement-rules.md",
"legacy_path": "raw/branch-notes/feature-architecture-enforcement-rules.md",
"sha256": "99ba7e2b94b567db0c444d8bff23ad721f10e59d8031c9f48bdc184b83b73c78"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-authentication-authorization-contract.md",
"legacy_path": "raw/branch-notes/feature-authentication-authorization-contract.md",
"sha256": "9c16b6d246dde9dceb2d934e89dd38f1cbbfde9e4f70f81e741c96d39fe74068"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-background-job-async-contract.md",
"legacy_path": "raw/branch-notes/feature-background-job-async-contract.md",
"sha256": "94d1d19566b34752af2e9767921d78e7015ae96243a07d8a3c632f70dbe047cd"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-boundary-validation-mapping-contract.md",
"legacy_path": "raw/branch-notes/feature-boundary-validation-mapping-contract.md",
"sha256": "76167e9e74bc11caf48c9504d9adcb84ec34dd3dec6ed6adea278160dfbb508e"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-build-release-supply-chain-contract.md",
"legacy_path": "raw/branch-notes/feature-build-release-supply-chain-contract.md",
"sha256": "4f1a94b4cfdf8b10d7d408288528b05913ea53760ce7c6d4ac2abfc6f66202ea"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-business-rule-validation-contract.md",
"legacy_path": "raw/branch-notes/feature-business-rule-validation-contract.md",
"sha256": "8227569356c1e775d55e4987990d504d7a8f0778566f45ef9c9475ec6ebdd465"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-cache-consistency-contract.md",
"legacy_path": "raw/branch-notes/feature-cache-consistency-contract.md",
"sha256": "8a48307a8a3855c6751f5ee9f5eceaf19d3b2a1ce4045ef52c4622dac4db16d8"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-cachestore-multi-backend-router.md",
"legacy_path": "raw/branch-notes/feature-cachestore-multi-backend-router.md",
"sha256": "04ae64fe27b4e4ac97b205d6b9eac462ee7e6cceb8bf4fff7b5c017782c494a5"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-ci-quality-gates-contract.md",
"legacy_path": "raw/branch-notes/feature-ci-quality-gates-contract.md",
"sha256": "fbc8a15d9f13ddc9a96608e7f6f02297541614b1e80a3a568d138b30c09dc7aa"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-container-runtime-contract.md",
"legacy_path": "raw/branch-notes/feature-container-runtime-contract.md",
"sha256": "23a50bb2c806894987f89152e17f1d1f59af250a5e94eefa3c9366fb935d7665"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-contract-registry-governance.md",
"legacy_path": "raw/branch-notes/feature-contract-registry-governance.md",
"sha256": "410ed53b1b22fc9f8e3c753e7d9346c9b3f616acba82f6d77cd259ef3e06e37f"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-contract-verification-test-suite.md",
"legacy_path": "raw/branch-notes/feature-contract-verification-test-suite.md",
"sha256": "b9fc2ed47add006dfde264f2654e1c35f9ea688cdbc3c21d2bec2ab2b13e9f61"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-data-retention-privacy-contract.md",
"legacy_path": "raw/branch-notes/feature-data-retention-privacy-contract.md",
"sha256": "173eaf58276ba050af476cca347b9b546b180ccef25d07daa6a2ecfd0419103f"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-database-connection-pool-contract.md",
"legacy_path": "raw/branch-notes/feature-database-connection-pool-contract.md",
"sha256": "41e7a18ad6abfd5cd20ff35682956f496f2c5155379ed246a94c067e5294a07d"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-dependency-vulnerability-management-contract.md",
"legacy_path": "raw/branch-notes/feature-dependency-vulnerability-management-contract.md",
"sha256": "ba7c27c6c69603168b1eac8823c72169ecf89faa566efd0b8fdcf1dc2d68a872"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-developer-experience-contract.md",
"legacy_path": "raw/branch-notes/feature-developer-experience-contract.md",
"sha256": "273d2befda6b67a521b211f4b7209b86e273ec6f46db2c879f8739da586783a3"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-distributed-lock-contract.md",
"legacy_path": "raw/branch-notes/feature-distributed-lock-contract.md",
"sha256": "6b6e1471abb646059391faffdcbb1f3743b605d649ee8f556fa24fa6cdf623f5"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-distributed-tracing-contract.md",
"legacy_path": "raw/branch-notes/feature-distributed-tracing-contract.md",
"sha256": "0eddcaca8dd75c44b80e5dd6edd6e69e28ff3461450935fe85adae033cb58f88"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-domain-event-outbox-contract.md",
"legacy_path": "raw/branch-notes/feature-domain-event-outbox-contract.md",
"sha256": "96a11d320736bf0f88433640908c421a5827d920074fe0cf49a933694b1e9ec1"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-domain-feature-onboarding-contract.md",
"legacy_path": "raw/branch-notes/feature-domain-feature-onboarding-contract.md",
"sha256": "32adef5a79ca4c360fcbdba0b364ebe12799e364aa50534ae6b0a07f5c3fca5f"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-domain-modeling-guardrails.md",
"legacy_path": "raw/branch-notes/feature-domain-modeling-guardrails.md",
"sha256": "793544b698fb14125d97424c5051107d837442da73045b37fb650a4789fbec25"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-env-driven-runtime-configuration.md",
"legacy_path": "raw/branch-notes/feature-env-driven-runtime-configuration.md",
"sha256": "18848d069b6f36f08c1fc7e95ba1443533ac77285723feb82a56e2c662d8606c"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-file-resource-handling-contract.md",
"legacy_path": "raw/branch-notes/feature-file-resource-handling-contract.md",
"sha256": "e400df6ea7bf9a6a46ac1572e01a8d8c60fd5e2ad9cee96445e59d338aab212a"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-implementation-readiness-scorecard.md",
"legacy_path": "raw/branch-notes/feature-implementation-readiness-scorecard.md",
"sha256": "a072aa47fc5bc70dd49a7bbf9dc0a4fdb947cb37a14d4b65505e3573277b9068"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-integration-adapter-templates.md",
"legacy_path": "raw/branch-notes/feature-integration-adapter-templates.md",
"sha256": "3ace0a58442fb7d4788f612515298724647a6e96f10aab6f04ef66ebce0c86a8"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-log-management-contract.md",
"legacy_path": "raw/branch-notes/feature-log-management-contract.md",
"sha256": "38310eeea1a0ac091b880c23fab0c901cd837ba75718c94a306075e301a6f041"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-management-actuator-security-contract.md",
"legacy_path": "raw/branch-notes/feature-management-actuator-security-contract.md",
"sha256": "151b0c0088e93264ed5010502f4d6f8572bf098e862b06e815549b5b3688fe3a"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-messaging-multibroker-router.md",
"legacy_path": "raw/branch-notes/feature-messaging-multibroker-router.md",
"sha256": "5e1bd6a7bde7fec7afbb31082d29a2a3877352aceb68d6b4ebdd1782c4252e54"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-metrics-alerting-contract.md",
"legacy_path": "raw/branch-notes/feature-metrics-alerting-contract.md",
"sha256": "1691d60cf00341e8356b4aa9764dc9e888b4db46ec948277ee21f7faec55e136"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-migration-startup-contract.md",
"legacy_path": "raw/branch-notes/feature-migration-startup-contract.md",
"sha256": "4ad54d495eba71c73df35046104969e0bfe790df62afcb07df871d45a4058673"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-notification-provider-spi.md",
"legacy_path": "raw/branch-notes/feature-notification-provider-spi.md",
"sha256": "d6e2acce3f9ae204ee747b24a307eeeff8b994c933a013808635f23d25c697ff"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-operational-error-observability-foundation.md",
"legacy_path": "raw/branch-notes/feature-operational-error-observability-foundation.md",
"sha256": "c837092637c45ab8a2beb5cd143c5f40e056e5c53e072c73d904e3d951448620"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-operational-runbook-contract.md",
"legacy_path": "raw/branch-notes/feature-operational-runbook-contract.md",
"sha256": "87582e0d109e4f45bf4a6e55f6b857ab4b1400ee0ed3f97ea161c8b4e04dea39"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-outbound-http-client-baseline.md",
"legacy_path": "raw/branch-notes/feature-outbound-http-client-baseline.md",
"sha256": "a5ddb14b245e1f8a79a8438438c52767820f157fd21aa5310d93b98c5d0e2930"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-persistence-auditing-contract.md",
"legacy_path": "raw/branch-notes/feature-persistence-auditing-contract.md",
"sha256": "3a6af9acca7278193e21f87ae811e3e3085fd40035c418e2938c39c95173eb0a"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-persistence-failure-baseline.md",
"legacy_path": "raw/branch-notes/feature-persistence-failure-baseline.md",
"sha256": "6b88686bf63e1682f8377884b86cffd08ccb90a0e379ca5f6e236e11444f88c4"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-rate-limit-idempotency-contract.md",
"legacy_path": "raw/branch-notes/feature-rate-limit-idempotency-contract.md",
"sha256": "d5d253ae4dd21efd8558c221ab04c706f4b66e21b0b989e715ec54a468fd38b1"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-repository-access-permission-contract.md",
"legacy_path": "raw/branch-notes/feature-repository-access-permission-contract.md",
"sha256": "c75ee03bfe4b605b341dd909c77e3745c783ee0022e3598c7438a334f7d32949"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-resource-identifier-contract.md",
"legacy_path": "raw/branch-notes/feature-resource-identifier-contract.md",
"sha256": "607d5c61013ea85372a0503d145f2f8eb3437cf9a07a052f76e442c372066e4e"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-runtime-context-propagation-contract.md",
"legacy_path": "raw/branch-notes/feature-runtime-context-propagation-contract.md",
"sha256": "d8e6798b826be966d52a4b350481d3f6840133f9045739882ee654f775248cdf"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-runtime-health-lifecycle-contract.md",
"legacy_path": "raw/branch-notes/feature-runtime-health-lifecycle-contract.md",
"sha256": "db6a4ca521aef365ef4a6692fa63398e1eb44e11ef467a7086f485a2d6e0ade7"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-sample-domain-contract-fixture.md",
"legacy_path": "raw/branch-notes/feature-sample-domain-contract-fixture.md",
"sha256": "12ae7fa7d6bedcbafa9037a873ab3547e7ddae57730f50843dc68c7569d68fd2"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-sample-portfolio-public-access.md",
"legacy_path": "raw/branch-notes/feature-sample-portfolio-public-access.md",
"sha256": "ac0a4bff1e95b30185a668f6ef0d82ecf3aa2abb4405f8535c855e5aad2b3777"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-sample-removal-adoption-contract.md",
"legacy_path": "raw/branch-notes/feature-sample-removal-adoption-contract.md",
"sha256": "9310bcb70e815d293e3140d30a1ecd2d166e8dc036fa2167132bd5119338e53d"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-schema-serialization-contract.md",
"legacy_path": "raw/branch-notes/feature-schema-serialization-contract.md",
"sha256": "85554f829906fafa4db2bf17301c85fb8e052653411627d51e36521e71846d41"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-secrets-config-source-contract.md",
"legacy_path": "raw/branch-notes/feature-secrets-config-source-contract.md",
"sha256": "1694aa3f3226cc83c60750535d239f59587794f51080b31f42fbc1438632d1e7"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-security-operational-baseline.md",
"legacy_path": "raw/branch-notes/feature-security-operational-baseline.md",
"sha256": "2aca4ed7466bca6acd5c18cd7a3b78e9de692ee01a72f2828233dfbcb21376b8"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-skeleton-package-blueprint-contract.md",
"legacy_path": "raw/branch-notes/feature-skeleton-package-blueprint-contract.md",
"sha256": "ca1f5ff004952113f40659bcf4930cf7d618d3b0240875acc21cfd769a1fd919"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-startup-failure-log-suppression.md",
"legacy_path": "raw/branch-notes/feature-startup-failure-log-suppression.md",
"sha256": "69759a73eefc6595c2728658996502fa476c45b389048c2bddb6b2b1ad0edb6f"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-static-analysis-quality-contract.md",
"legacy_path": "raw/branch-notes/feature-static-analysis-quality-contract.md",
"sha256": "fc53ae4c56e0139c188630a301324918e869b749064eba39ac612383f27ef758"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-streaming-response-contract.md",
"legacy_path": "raw/branch-notes/feature-streaming-response-contract.md",
"sha256": "cce67dae8742d7782958cedcc7cb8f78ffb15e21e4215d0529e161795f974b43"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-tenant-context-policy.md",
"legacy_path": "raw/branch-notes/feature-tenant-context-policy.md",
"sha256": "2aecbe2f9ffdff9df1581a876025cecaa17fb9ef169d3a1863e19a1116030461"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-test-taxonomy-fixture-contract.md",
"legacy_path": "raw/branch-notes/feature-test-taxonomy-fixture-contract.md",
"sha256": "89eb5573268d451469db755970fd558027b2613c21131c35ec7a870b489f575b"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-transaction-concurrency-contract.md",
"legacy_path": "raw/branch-notes/feature-transaction-concurrency-contract.md",
"sha256": "a47ae1844a99b3df538216e32fedc6a77d4d9a142e242cda614297fb8d1ac858"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-webhook-outbound-contract.md",
"legacy_path": "raw/branch-notes/feature-webhook-outbound-contract.md",
"sha256": "7f7ef5dad81aa1443eb1b190f2bb2a718febd60251d602da9cb6bb3457173d8f"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/project-notes/ca-skeleton-operational-contract.md",
"legacy_path": "raw/project-notes/ca-skeleton-operational-contract.md",
"sha256": "9e4c86faee4198d38fb2846577dc35c6e3f56498ea6200549004603904ef2fd0"
},
{
"canonical_path": "vault/10-projects/diagrams/ca-skeleton-frontend/architecture-deployment-2026-07-18.drawio",
"legacy_path": "raw/diagrams/ca-skeleton-frontend/architecture-deployment-2026-07-18.drawio",
"sha256": "9a654326fb840ddf24b832221ff7eec4b8fadd9f87ad84174fccfa3bfcd1a25b"
},
{
"canonical_path": "vault/10-projects/diagrams/ca-skeleton-frontend/architecture-overview-2026-07-18.drawio",
"legacy_path": "raw/diagrams/ca-skeleton-frontend/architecture-overview-2026-07-18.drawio",
"sha256": "c0ae56c9c964c5c6e698ab7dcc91736b9b811b2b834381817905db81c4230ba0"
},
{
"canonical_path": "vault/10-projects/diagrams/ca-skeleton/architecture-modules-2026-05-26.drawio",
"legacy_path": "raw/diagrams/ca-skeleton/architecture-modules-2026-05-26.drawio",
"sha256": "dcbe685e0fa229822bba62a5e9fc152463807c4481803ecda3b1bebbb1300c5b"
},
{
"canonical_path": "vault/10-projects/diagrams/ca-skeleton/architecture-runtime-topology-2026-05-26.drawio",
"legacy_path": "raw/diagrams/ca-skeleton/architecture-runtime-topology-2026-05-26.drawio",
"sha256": "c1a1088a84e230f5ee4d37869528ef83c05dbee29370138e1a070c0c65db0213"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.drawio",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.drawio",
"sha256": "680ab6e2434de5873492109ab83b8afe8edaafe796e1eb8b000dc7dcaa8e688d"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.svg",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.svg",
"sha256": "29db80e20ba7f74426086cb7b5e797af4657cc9f877ae0be4848d671b8329220"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-hexagonal-2026-07-04.drawio",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-hexagonal-2026-07-04.drawio",
"sha256": "efa37a7aec3734ac9537185d29d9a0b89a493bffc8518a2e095bb4788567638d"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-hexagonal-2026-07-04.svg",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-hexagonal-2026-07-04.svg",
"sha256": "8ace1df5a0975b17982a90218afbdc8e7e41a73ba6c8cd75c3fa2e927f1427f1"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-layered-2026-07-04.drawio",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-layered-2026-07-04.drawio",
"sha256": "9fd314d88a63c1bed729ab30c72d0f06e0c73a1df4065a2499e7034636f8d879"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-layered-2026-07-04.svg",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-layered-2026-07-04.svg",
"sha256": "4fe16f41db0ff05e2f6aaa2eaa802c557a54fd1f38b1e399f25a2e20e5197558"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p1a-edge-no-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p1a-edge-no-google-2026-05-26.drawio",
"sha256": "ee5303dc82fa729c73cf7d58c5977aa0d0c3089585c7c85be7c2f1fa6b3e1280"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p1b-edge-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p1b-edge-google-2026-05-26.drawio",
"sha256": "8c81e201f3bbd59f9d58e5b0db2db0e4307b7ae23c8e4cc8708ed295341e34c3"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p2a-cluster-internal-no-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p2a-cluster-internal-no-google-2026-05-26.drawio",
"sha256": "6e2f3a52747ba62e36bb38c99f1a774c35b3127d08231c3d6a21823f52bc2580"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p2b-cluster-internal-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p2b-cluster-internal-google-2026-05-26.drawio",
"sha256": "a29bb09db7c2118707696e605faafbb6a64405af26049828dad9fe6c065542b7"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p3a-single-ec2-no-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p3a-single-ec2-no-google-2026-05-26.drawio",
"sha256": "9123d111586da850ae1c881f317ddfa81319680d6820253400318a13187c86bd"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p3b-single-ec2-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p3b-single-ec2-google-2026-05-26.drawio",
"sha256": "e5f068011f556f9198fadeead3d30abcf0942b9d8e1883672d83d2cf2be6f54c"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/archived/architecture-p3a-single-ec2-no-google-2026-05-26-v1.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/archived/architecture-p3a-single-ec2-no-google-2026-05-26-v1.drawio",
"sha256": "fba465ff10898373fc6979bd7da527373c6da2292a3e975da56e91dec56aa47d"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/archived/architecture-p3a-single-ec2-no-google-2026-05-26-v2.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/archived/architecture-p3a-single-ec2-no-google-2026-05-26-v2.drawio",
"sha256": "c1c4f0e0a19f91624062fe11f9967a74b50db40330065b483d6d39a39b0be405"
},
{
"canonical_path": "vault/10-projects/diagrams/nplus1-presentation-prep/architecture-lab-loop-2026-07-20.drawio",
"legacy_path": "raw/diagrams/nplus1-presentation-prep/architecture-lab-loop-2026-07-20.drawio",
"sha256": "5f8d1c06e47a08744b29d353d2c95f7e3ee7b43367ad777101029db803185ea8"
},
{
"canonical_path": "vault/10-projects/errors/apply-patch-auto-approval-rejected-2026-05-28.md",
"legacy_path": "raw/errors/apply-patch-auto-approval-rejected-2026-05-28.md",
"sha256": "0c5cb2911b3150c7e8e5d5e31dc28b8b4a1bb5b8146c02763176ac942fcc8f4f"
},
{
"canonical_path": "vault/10-projects/errors/archunit-b7-configprops-nested-record-accessor-outbound-2026-06-13.md",
"legacy_path": "raw/errors/archunit-b7-configprops-nested-record-accessor-outbound-2026-06-13.md",
"sha256": "79fe8ad883c426ed54407d460f72115b262a7b84889494e3535c588917b77686"
},
{
"canonical_path": "vault/10-projects/errors/archunit-b7-configuration-bean-factory-return-type-2026-06-09.md",
"legacy_path": "raw/errors/archunit-b7-configuration-bean-factory-return-type-2026-06-09.md",
"sha256": "c89e3ef1aba33f239c899d512c7703596114f175988d9db64accde73501e0b6f"
},
{
"canonical_path": "vault/10-projects/errors/archunit-empty-should-anchor-2026-05-27.md",
"legacy_path": "raw/errors/archunit-empty-should-anchor-2026-05-27.md",
"sha256": "1718272e8fdda6baf36123a2545beaa7d4923faf14a3f3cc7af2bd86d57380c0"
},
{
"canonical_path": "vault/10-projects/errors/archunit-importpackages-empty-vacuous-stale-build-2026-06-20.md",
"legacy_path": "raw/errors/archunit-importpackages-empty-vacuous-stale-build-2026-06-20.md",
"sha256": "8033f40888927b553fddded6d4fb252daefefa65e51eb9751d44c53771db15a4"
},
{
"canonical_path": "vault/10-projects/errors/archunit-no-uuid-random-trace-id-false-positive-2026-06-01.md",
"legacy_path": "raw/errors/archunit-no-uuid-random-trace-id-false-positive-2026-06-01.md",
"sha256": "ef94ab169c8167a1e540fe9b84e60bcf5de438bd9bb5972edb28ceac75b94fc7"
},
{
"canonical_path": "vault/10-projects/errors/archunit-test-scope-sample-ticket-inclusion-2026-05-28.md",
"legacy_path": "raw/errors/archunit-test-scope-sample-ticket-inclusion-2026-05-28.md",
"sha256": "fc24a920273033668753bf632e4162cc60914d329481339bced83acdddafd14f"
},
{
"canonical_path": "vault/10-projects/errors/archunit-testcompileonly-class-loading-2026-06-02.md",
"legacy_path": "raw/errors/archunit-testcompileonly-class-loading-2026-06-02.md",
"sha256": "0e11ca03f92f4353d1c914108a9b5aff748a712566acd23bdcb3007d6e447afa"
},
{
"canonical_path": "vault/10-projects/errors/bootstrap-postgres-port-collision-2026-06-24.md",
"legacy_path": "raw/errors/bootstrap-postgres-port-collision-2026-06-24.md",
"sha256": "fd6b6030373677de628da019b6c58d6f1945464f93badae673301505a16612ff"
},
{
"canonical_path": "vault/10-projects/errors/ca-comment-to-readme-subagents-overstrip-runtime-strings.md",
"legacy_path": "raw/errors/ca-comment-to-readme-subagents-overstrip-runtime-strings.md",
"sha256": "246cf604877981f99847008ef9eea9e20b776e9ad055b8df991628afb8d53d7f"
},
{
"canonical_path": "vault/10-projects/errors/ca-gitignored-seed-divergence-at-rebase.md",
"legacy_path": "raw/errors/ca-gitignored-seed-divergence-at-rebase.md",
"sha256": "97c4973d266f498900dd22be6faca23fba2790c6d70bd7a5ff722f81cffd0483"
},
{
"canonical_path": "vault/10-projects/errors/ca-public-path-snapshot-scope-violation.md",
"legacy_path": "raw/errors/ca-public-path-snapshot-scope-violation.md",
"sha256": "5323b3a9f4e662d57e037066db59efedb6572d608f12745c36872291a1e38371"
},
{
"canonical_path": "vault/10-projects/errors/ca-tmpl-import-gate-false-positive-shared-contract.md",
"legacy_path": "raw/errors/ca-tmpl-import-gate-false-positive-shared-contract.md",
"sha256": "3b5678c7bd81e610c47c793f1ae83073677970a2c093699cdcb31e8e1f9dd08d"
},
{
"canonical_path": "vault/10-projects/errors/ca-tmpl-preexisting-check-baseline-failures-2026-07-20.md",
"legacy_path": "raw/errors/ca-tmpl-preexisting-check-baseline-failures-2026-07-20.md",
"sha256": "d4e4d1f93b6f61d9e787ed55459217ee5de00a910a5616ef347870bcd1a086e7"
},
{
"canonical_path": "vault/10-projects/errors/ci-fan-in-skipped-not-failed-and-gitignored-config-2026-06-20.md",
"legacy_path": "raw/errors/ci-fan-in-skipped-not-failed-and-gitignored-config-2026-06-20.md",
"sha256": "6a027b710a3310ffadce6403986c31ab126a1f892e4284e3b52509aa3f0af917"
},
{
"canonical_path": "vault/10-projects/errors/contract-registry-reference-row-universal-column-false-fail-2026-06-20.md",
"legacy_path": "raw/errors/contract-registry-reference-row-universal-column-false-fail-2026-06-20.md",
"sha256": "5bc9303f392dfb6b4feb1efcd20a89d127632eddca51088345e41ea0de57f001"
},
{
"canonical_path": "vault/10-projects/errors/developer-experience-contract-agents-bridge-2026-07-15.md",
"legacy_path": "raw/errors/developer-experience-contract-agents-bridge-2026-07-15.md",
"sha256": "c51054ba25beec7ec2eb0ab013bd2bfe36a66e9d3fbd752644383e831f03d8a7"
},
{
"canonical_path": "vault/10-projects/errors/flyway-launcher-divergent-migration-set-shared-dev-db-2026-06-12.md",
"legacy_path": "raw/errors/flyway-launcher-divergent-migration-set-shared-dev-db-2026-06-12.md",
"sha256": "03aac72f15d24e213905e1087743e9d3321d07fc441604f012a73327dda9bd35"
},
{
"canonical_path": "vault/10-projects/errors/gitea-act-action-tag-and-dependency-graph-2026-06-20.md",
"legacy_path": "raw/errors/gitea-act-action-tag-and-dependency-graph-2026-06-20.md",
"sha256": "0d7a45283df5f8b27dd3a174747a58a835351893ac8d98324b43721405a42172"
},
{
"canonical_path": "vault/10-projects/errors/gitea-act-missing-jq-job-bootstrap-2026-06-23.md",
"legacy_path": "raw/errors/gitea-act-missing-jq-job-bootstrap-2026-06-23.md",
"sha256": "aaba87c8c1d8a6c177aa3422696db84c4182ff9813bdb1efcd73bd7af9a358b1"
},
{
"canonical_path": "vault/10-projects/errors/global-sed-env-rename-pitfalls-2026-06-06.md",
"legacy_path": "raw/errors/global-sed-env-rename-pitfalls-2026-06-06.md",
"sha256": "8e612ac7eb2703aa61355d415cf2f51ac61ac15466f4cc1e7224d6e7ff31b267"
},
{
"canonical_path": "vault/10-projects/errors/gradle-custom-source-set-isolation-failures-2026-06-25.md",
"legacy_path": "raw/errors/gradle-custom-source-set-isolation-failures-2026-06-25.md",
"sha256": "5a5ece3692901bca6d58940a015b706ef832a8bb9af6337a4aca4ba2addf81df"
},
{
"canonical_path": "vault/10-projects/errors/gradle-strict-lock-stale-entry-non-resolvable-config-2026-07-08.md",
"legacy_path": "raw/errors/gradle-strict-lock-stale-entry-non-resolvable-config-2026-07-08.md",
"sha256": "f9709aa65899aabae1d433848048ca1be8d03c6a8f8cc1a4c5cc317a07ec2cd2"
},
{
"canonical_path": "vault/10-projects/errors/gradle-wrapper-lock-read-only-sandbox-2026-06-10.md",
"legacy_path": "raw/errors/gradle-wrapper-lock-read-only-sandbox-2026-06-10.md",
"sha256": "1e146da27e4059617e9a67edcf621d204de72b3698bed9393fb0d2c8bb2d4d73"
},
{
"canonical_path": "vault/10-projects/errors/gradle-wrapper-readonly-cache-2026-05-28.md",
"legacy_path": "raw/errors/gradle-wrapper-readonly-cache-2026-05-28.md",
"sha256": "82d60d85bc81e856d08a2233ebfec61993d4e125684360a93f5ff167642ac4fb"
},
{
"canonical_path": "vault/10-projects/errors/gradle-wrapper-sandbox-lock-2026-06-25.md",
"legacy_path": "raw/errors/gradle-wrapper-sandbox-lock-2026-06-25.md",
"sha256": "1eecbfdf93044d8e07cf4924b39e455b73643f11accc48c8ed39fa963239e3ad"
},
{
"canonical_path": "vault/10-projects/errors/gradle-wrapper-sandbox-lock-readiness-scorecard-2026-06-26.md",
"legacy_path": "raw/errors/gradle-wrapper-sandbox-lock-readiness-scorecard-2026-06-26.md",
"sha256": "6625a2d73a72768570e9beeaadef6f3bd9a0fd7f593572ab8551c8113854c85d"
},
{
"canonical_path": "vault/10-projects/errors/hibernate-dto-projection-explain-width-not-narrower-2026-07-13.md",
"legacy_path": "raw/errors/hibernate-dto-projection-explain-width-not-narrower-2026-07-13.md",
"sha256": "87386e098647102004afbfdf4450579d29c376b7bd94db7456f081b259364016"
},
{
"canonical_path": "vault/10-projects/errors/hibernate-getcollectionfetchcount-batch-semantics-2026-07-13.md",
"legacy_path": "raw/errors/hibernate-getcollectionfetchcount-batch-semantics-2026-07-13.md",
"sha256": "69cc1855ff1e2c7de6244a9ff1733afd413dc1a76c789080123bbb4a828f90bf"
},
{
"canonical_path": "vault/10-projects/errors/hibernate7-hhh90003004-collection-fetch-paging-2026-07-13.md",
"legacy_path": "raw/errors/hibernate7-hhh90003004-collection-fetch-paging-2026-07-13.md",
"sha256": "86c5b4fb6f4e1f0e3647ac823e2aaa943dfd7624573a7f017ec51a08956864ff"
},
{
"canonical_path": "vault/10-projects/errors/idempotency-column-definition-base-check-failure-2026-07-15.md",
"legacy_path": "raw/errors/idempotency-column-definition-base-check-failure-2026-07-15.md",
"sha256": "6dbc2a47e307d3431f8d7f6b35f9bb2f90ccc877f473d238007cfff8e41258c0"
},
{
"canonical_path": "vault/10-projects/errors/idempotency-expired-row-reclaim-409-loop-2026-06-09.md",
"legacy_path": "raw/errors/idempotency-expired-row-reclaim-409-loop-2026-06-09.md",
"sha256": "2abc7f001c5799ca17860784406ebaa1b5f6c4fd9aaf08d6f971791efad42b9a"
},
{
"canonical_path": "vault/10-projects/errors/internal-auth-misconfiguration-retryable-invariant-conflict-2026-06-08.md",
"legacy_path": "raw/errors/internal-auth-misconfiguration-retryable-invariant-conflict-2026-06-08.md",
"sha256": "84419cf91ba17edb083a70561983265c7460071ad1ab0ab3314a21d24490b2f3"
},
{
"canonical_path": "vault/10-projects/errors/jdk-httpclient-dns-unresolvedaddress-connectexception-2026-06-11.md",
"legacy_path": "raw/errors/jdk-httpclient-dns-unresolvedaddress-connectexception-2026-06-11.md",
"sha256": "b0f1a122374cf227aa87e51a77b09385714dab215f928db1f38d21a02756566e"
},
{
"canonical_path": "vault/10-projects/errors/jpa-repository-scan-miss-multimodule-2026-06-10.md",
"legacy_path": "raw/errors/jpa-repository-scan-miss-multimodule-2026-06-10.md",
"sha256": "08d32a434e7f785ac1449af4995094f55b2ce3a9dfe9bb5067a8b0bad505609a"
},
{
"canonical_path": "vault/10-projects/errors/logback-shared-jvm-test-leak-pii-contract-2026-06-23.md",
"legacy_path": "raw/errors/logback-shared-jvm-test-leak-pii-contract-2026-06-23.md",
"sha256": "dc35cd718057bc790e832cb39d65e8019dca26d23425cb8e6883f978635adf8a"
},
{
"canonical_path": "vault/10-projects/errors/mapping-exception-location-archunit-catch-2026-05-29.md",
"legacy_path": "raw/errors/mapping-exception-location-archunit-catch-2026-05-29.md",
"sha256": "cade42277ba939cd707043833de726bd058cc17b74cfa24a0f27333b6634b686"
},
{
"canonical_path": "vault/10-projects/errors/method-security-cglib-vs-jdk-proxy-usecase-injection-2026-06-08.md",
"legacy_path": "raw/errors/method-security-cglib-vs-jdk-proxy-usecase-injection-2026-06-08.md",
"sha256": "dc4e11b4b0514478ffe78a0309551dd7c42034588727b595c43e0a75b61ed6fd"
},
{
"canonical_path": "vault/10-projects/errors/method-security-class-pointcut-final-usecase-bean-2026-06-12.md",
"legacy_path": "raw/errors/method-security-class-pointcut-final-usecase-bean-2026-06-12.md",
"sha256": "253a49753a72cf019d411028249ad198d7febb2dcdfeda870b82b1dc55813379"
},
{
"canonical_path": "vault/10-projects/errors/micrometer-meterfilter-replacetagvalues-functioncounter-2026-06-11.md",
"legacy_path": "raw/errors/micrometer-meterfilter-replacetagvalues-functioncounter-2026-06-11.md",
"sha256": "d58ce8290b4d103371279eaed3ae7967f499701b40dcb77d4fa6ad6fcdb96ce8"
},
{
"canonical_path": "vault/10-projects/errors/mockmvc-406-produces-accept-double-fault-2026-06-02.md",
"legacy_path": "raw/errors/mockmvc-406-produces-accept-double-fault-2026-06-02.md",
"sha256": "8d8acf3dbbf742f5ad49bc05396d008d0e8bd16aae40674e3d3d6ce4d59fd099"
},
{
"canonical_path": "vault/10-projects/errors/onboarding-fixture-package-path-mismatch-2026-06-25.md",
"legacy_path": "raw/errors/onboarding-fixture-package-path-mismatch-2026-06-25.md",
"sha256": "c852a39f65cd27d995ea90c8cf0af673524c96b83c7ad05e48e1e20b38d2d4d0"
},
{
"canonical_path": "vault/10-projects/errors/responseentityexceptionhandler-ambiguous-exception-handler-2026-06-02.md",
"legacy_path": "raw/errors/responseentityexceptionhandler-ambiguous-exception-handler-2026-06-02.md",
"sha256": "6ae40e2ff54c81db9f05eac411e4614decaba6efa00886d6048e7cc8de81b744"
},
{
"canonical_path": "vault/10-projects/errors/sample-portfolio-flyway-out-of-order-2026-06-23.md",
"legacy_path": "raw/errors/sample-portfolio-flyway-out-of-order-2026-06-23.md",
"sha256": "7cc5d3688bacf53bab4e5b6dbdda2c922b997b3a599703f35c0b40f14af42ebe"
},
{
"canonical_path": "vault/10-projects/errors/sample-portfolio-oauth2-resource-server-dependency-2026-05-27.md",
"legacy_path": "raw/errors/sample-portfolio-oauth2-resource-server-dependency-2026-05-27.md",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"canonical_path": "vault/10-projects/errors/sample-portfolio-tomcat-port-in-use-check-2026-07-03.md",
"legacy_path": "raw/errors/sample-portfolio-tomcat-port-in-use-check-2026-07-03.md",
"sha256": "baf16d87b0ba84765b759c4f727a761f12c884b47e8c87b411abd25ed03f9b07"
},
{
"canonical_path": "vault/10-projects/errors/sample-ticket-oauth2-resource-server-dependency-2026-05-27.md",
"legacy_path": "raw/errors/sample-ticket-oauth2-resource-server-dependency-2026-05-27.md",
"sha256": "baa53a81b0d92d8f222802dfc23b8ed662f792d1961443b6f0a89ec393fd2768"
},
{
"canonical_path": "vault/10-projects/errors/sandbox-build-verification-boundaries-2026-06-21.md",
"legacy_path": "raw/errors/sandbox-build-verification-boundaries-2026-06-21.md",
"sha256": "3797c76d4b15b6b4fb74e0024f30d1e8b24622345c69fa17907ab1bc2e74a52d"
},
{
"canonical_path": "vault/10-projects/errors/scheduled-reaper-wrong-config-prefix-2026-06-09.md",
"legacy_path": "raw/errors/scheduled-reaper-wrong-config-prefix-2026-06-09.md",
"sha256": "be9d65dc495cc6f5e0a0d5a40e87b9523f9515805f39b312f4ccf7e749e2e57f"
},
{
"canonical_path": "vault/10-projects/errors/slim-jre-random-generator-missing-2026-06-24.md",
"legacy_path": "raw/errors/slim-jre-random-generator-missing-2026-06-24.md",
"sha256": "e8c1e8892a527b608618dafa03ca1f8e6e40dd4be0be8389e1e4ea16911359c0"
},
{
"canonical_path": "vault/10-projects/errors/spanerrorrecorder-constructor-breaks-webmvctest-slice-2026-06-14.md",
"legacy_path": "raw/errors/spanerrorrecorder-constructor-breaks-webmvctest-slice-2026-06-14.md",
"sha256": "a2c1083d15b5aabdc64dd9aa7778397c688ae64473e7e203661bcd2456c4a21f"
},
{
"canonical_path": "vault/10-projects/errors/spotbugs-commons-lang3-bom-downgrade-noclassdef-2026-06-20.md",
"legacy_path": "raw/errors/spotbugs-commons-lang3-bom-downgrade-noclassdef-2026-06-20.md",
"sha256": "373341587daa29344712b24c0d8c1fc2a50b8ad9304b3f1a94960a62e50c58d0"
},
{
"canonical_path": "vault/10-projects/errors/spring-boot-four-jackson-three-migration-2026-06-30.md",
"legacy_path": "raw/errors/spring-boot-four-jackson-three-migration-2026-06-30.md",
"sha256": "9a4257affbb51343308d390331a33303427cd64c75752dc0f99705250b7fbad2"
},
{
"canonical_path": "vault/10-projects/errors/spring-boot-record-multi-constructor-no-default-constructor-2026-06-12.md",
"legacy_path": "raw/errors/spring-boot-record-multi-constructor-no-default-constructor-2026-06-12.md",
"sha256": "ba4374d53fade3c54c920e673045ab2974c4bdf44c502c89610f0700eac2ce93"
},
{
"canonical_path": "vault/10-projects/errors/spring-componentcan-broad-scan-test-inner-config-collision-2026-06-17.md",
"legacy_path": "raw/errors/spring-componentcan-broad-scan-test-inner-config-collision-2026-06-17.md",
"sha256": "6cfd247f78d4b317cb0d735c98be11d5a75ef0c9ec1492eca7a9d277072df00e"
},
{
"canonical_path": "vault/10-projects/errors/spring-componentcan-multimodule-overlap-collision-2026-06-23.md",
"legacy_path": "raw/errors/spring-componentcan-multimodule-overlap-collision-2026-06-23.md",
"sha256": "ed8c595df1de4fce6abcec4936d3863e370810fe7e0218d1467dffa7d5c8ebc2"
},
{
"canonical_path": "vault/10-projects/errors/spring-conditionalonbean-ordering-user-config-vs-autoconfiguration-2026-06-17.md",
"legacy_path": "raw/errors/spring-conditionalonbean-ordering-user-config-vs-autoconfiguration-2026-06-17.md",
"sha256": "052065d584cbab398aea56f5e5e509e3ad8a7d904a33a5238130c5af281638fd"
},
{
"canonical_path": "vault/10-projects/errors/spring-configuration-bean-factory-method-not-processed-2026-06-11.md",
"legacy_path": "raw/errors/spring-configuration-bean-factory-method-not-processed-2026-06-11.md",
"sha256": "4cbeeaf0a5bf3cb83bc2d510b1e148507a7b3278c8d2ca0273a0f28c347bd752"
},
{
"canonical_path": "vault/10-projects/errors/spring-integration-defaultlockrepository-aftersingletons-null-template-2026-06-13.md",
"legacy_path": "raw/errors/spring-integration-defaultlockrepository-aftersingletons-null-template-2026-06-13.md",
"sha256": "6f9194c430b5a5329aec32ff412e329ee0343de317293fe2b4106e415d66006d"
},
{
"canonical_path": "vault/10-projects/errors/spring-jpa-flyway-circular-dependency-2026-06-23.md",
"legacy_path": "raw/errors/spring-jpa-flyway-circular-dependency-2026-06-23.md",
"sha256": "6b48ce635f2336ce3e5382bf1b90b43dd4998d77c9c2119d6cabbdce873857f7"
},
{
"canonical_path": "vault/10-projects/errors/spring-jpa-postgres-lob-oid-cast-2026-06-23.md",
"legacy_path": "raw/errors/spring-jpa-postgres-lob-oid-cast-2026-06-23.md",
"sha256": "92cc28a0d316c777d8bdb44f0f9d85aad15258294a7c13d4ac2325fb0545a43b"
},
{
"canonical_path": "vault/10-projects/errors/startup-log-suppression-spotless-format-2026-07-03.md",
"legacy_path": "raw/errors/startup-log-suppression-spotless-format-2026-07-03.md",
"sha256": "610d1d45b65b07524b21e6c84c5022dd31c17848fced99bc88c241eb504ba2bb"
},
{
"canonical_path": "vault/10-projects/errors/testcontainers-two-context-shared-datasource-close-2026-06-11.md",
"legacy_path": "raw/errors/testcontainers-two-context-shared-datasource-close-2026-06-11.md",
"sha256": "d4ce0488b05d2078eb0be275ac38bc80a05132c663bc9e4edf94b2b5df96a2ec"
},
{
"canonical_path": "vault/10-projects/errors/ulid-fixture-crockford-u-self-inconsistency-2026-06-01.md",
"legacy_path": "raw/errors/ulid-fixture-crockford-u-self-inconsistency-2026-06-01.md",
"sha256": "6ad5db87539b188370261f92bf33a316a5e661f88a062b581feb5e4ee627a1e7"
},
{
"canonical_path": "vault/10-projects/errors/webmvctest-component-filter-constructor-dep-breaks-slice-2026-06-14.md",
"legacy_path": "raw/errors/webmvctest-component-filter-constructor-dep-breaks-slice-2026-06-14.md",
"sha256": "cebc8d31c97698cb51b7f3768d78fb282cf0c91fc66666e70c68403daad92c0f"
},
{
"canonical_path": "vault/10-projects/errors/webmvctest-nested-springbootconfiguration-context-pollution-2026-06-01.md",
"legacy_path": "raw/errors/webmvctest-nested-springbootconfiguration-context-pollution-2026-06-01.md",
"sha256": "d39a8edc28e06a76f2f7feaa75de7fe93cac8dcec85fdb9e81ae4db22c5fe10f"
},
{
"canonical_path": "vault/10-projects/errors/webmvctest-slice-configprops-enum-placeholder-no-default-2026-06-20.md",
"legacy_path": "raw/errors/webmvctest-slice-configprops-enum-placeholder-no-default-2026-06-20.md",
"sha256": "41594fde93db2904d062495d92d71e1caa067aeb400bb95eec615bd6fed00236"
},
{
"canonical_path": "vault/10-projects/invest-money-flow-system/project-notes/invest-money-flow-system.md",
"legacy_path": "raw/project-notes/invest-money-flow-system.md",
"sha256": "9ab121a04e8d3d97bc883ad51191c2da24ee78730a57b0e563957f6937ad7f5e"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-account-linking-spa-ux.md",
"legacy_path": "raw/branch-notes/feature-keycloak-account-linking-spa-ux.md",
"sha256": "38fc76a1d3c2cc7f7dce96c6a67456189ab3840ba944e8bde76bb2d36b4666e1"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-account-linking-sub-vs-email.md",
"legacy_path": "raw/branch-notes/feature-keycloak-account-linking-sub-vs-email.md",
"sha256": "54b55c0931f2f50443354915d1e7d8d986e68b9d29c983ae0e3fb5d5eb7380ad"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-bff-csrf-samesite-defense.md",
"legacy_path": "raw/branch-notes/feature-keycloak-bff-csrf-samesite-defense.md",
"sha256": "0ce109f3d5a9cb0b34c00aee261da2bd0aa789d62d54319fbb32dbbdb65bd704"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-bff-oauth2login-session.md",
"legacy_path": "raw/branch-notes/feature-keycloak-bff-oauth2login-session.md",
"sha256": "158e421c794cd4c7610e48f4ebd48281f08707e5f78f745e65fa4eb7df67ce63"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-bff-vs-spa-direct.md",
"legacy_path": "raw/branch-notes/feature-keycloak-bff-vs-spa-direct.md",
"sha256": "757e30e7316f74d6b5856275634cce643ef26510552b8d28b5fee66e8144e92e"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-docker-compose-stack.md",
"legacy_path": "raw/branch-notes/feature-keycloak-docker-compose-stack.md",
"sha256": "7de16ce6a1133905cd60a575073e7fea0ac1e61dcb111648d180639ba9e30284"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-edge-forwardauth-google-federation.md",
"legacy_path": "raw/branch-notes/feature-keycloak-edge-forwardauth-google-federation.md",
"sha256": "b466478b5b5fc5bee9a80190745b4666b11628b2e9daeda41fb2d5ae14a6c345"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-edge-forwardauth-no-google.md",
"legacy_path": "raw/branch-notes/feature-keycloak-edge-forwardauth-no-google.md",
"sha256": "73ae70fc2e7d61200e4c67e3b0047afa62040f5fd8ca9b1ee3404404ced6b6f6"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-federation-spa-zero-change.md",
"legacy_path": "raw/branch-notes/feature-keycloak-federation-spa-zero-change.md",
"sha256": "af437080655633e1c1cc968a55286e5ed86d249b7db843dd67f08caf95d32599"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-first-broker-login-flow.md",
"legacy_path": "raw/branch-notes/feature-keycloak-first-broker-login-flow.md",
"sha256": "7d3fa28887155352b4f3534ecffa04dc3f5bfb8a0f2b96b3da835d587d1259a3"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-four-pattern-tradeoff-matrix.md",
"legacy_path": "raw/branch-notes/feature-keycloak-four-pattern-tradeoff-matrix.md",
"sha256": "21be114c22ac4e567e0ed3b1c7b3864d7609ed9c2a4802f5e9f148f49e2be132"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-google-claim-attribute-mapping.md",
"legacy_path": "raw/branch-notes/feature-keycloak-google-claim-attribute-mapping.md",
"sha256": "ed5dca5dc2178d69fe22418f40ae6f1c7dc53e8d02a1295ac9fa38e636753ea7"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-google-redirect-uri-policy.md",
"legacy_path": "raw/branch-notes/feature-keycloak-google-redirect-uri-policy.md",
"sha256": "8eed4d006cc6ad7a2a65e8f15fabb6c4d6aef96fa9402a42c8e6280988a58e89"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-header-spoofing-defense.md",
"legacy_path": "raw/branch-notes/feature-keycloak-header-spoofing-defense.md",
"sha256": "af30acaf12f895bf26963c566d2c04ff3943b41d90c0d41e22d1f1dd832157ca"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-https-termination-caddy-nginx.md",
"legacy_path": "raw/branch-notes/feature-keycloak-https-termination-caddy-nginx.md",
"sha256": "6e856a6b44fbaf94bc6a9772c67d6c0b36d3567999c28f39cc504150575f2f9f"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-idp-brokering-google-client.md",
"legacy_path": "raw/branch-notes/feature-keycloak-idp-brokering-google-client.md",
"sha256": "770dd0225f2151bfab6237ae0e2370f201a26308a610845f344911aed6e9c4ae"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-idp-mappers-claim-to-role.md",
"legacy_path": "raw/branch-notes/feature-keycloak-idp-mappers-claim-to-role.md",
"sha256": "fc5a82b6824c3291bce80d3939c9bb5e63f9a7b3e5d2daf38caf49fd7eb4a691"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-internal-spa-direct-google-federation.md",
"legacy_path": "raw/branch-notes/feature-keycloak-internal-spa-direct-google-federation.md",
"sha256": "5d7994ecc7370e3c8ebfb0c02397c26a1b9ad58c2208ae37fceb15bc4b66b366"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-internal-spa-direct-no-google.md",
"legacy_path": "raw/branch-notes/feature-keycloak-internal-spa-direct-no-google.md",
"sha256": "fdeb0d2b67aa32fe6a50ebbcb276a706c34f2c6fd223b56f6b0b0e9669c9d533"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-iss-claim-hostname-mismatch.md",
"legacy_path": "raw/branch-notes/feature-keycloak-iss-claim-hostname-mismatch.md",
"sha256": "91670a186e53a275cc803ec21d0074564f94769c48d094d43d22a8c5030015dd"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-nginx-auth-request-integration.md",
"legacy_path": "raw/branch-notes/feature-keycloak-nginx-auth-request-integration.md",
"sha256": "48d493eb4a0aafcf7033cbc14a56bd3d56922ce780517d9e4bbd88b75bb7c48c"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-oauth2-proxy-oidc-flow.md",
"legacy_path": "raw/branch-notes/feature-keycloak-oauth2-proxy-oidc-flow.md",
"sha256": "0ff70ba5a18ea2e99960b2ae5ad4dbf8f07dc7a4978636bb32c2ae47ab9d2b34"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-patterns.md",
"legacy_path": "raw/branch-notes/feature-keycloak-patterns.md",
"sha256": "39f8de2ddf90a7c18cc3bf935d0c02098c84acea7b8540bb20716b61d1b1eaa0"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-pkce-flow-stages.md",
"legacy_path": "raw/branch-notes/feature-keycloak-pkce-flow-stages.md",
"sha256": "088c16b5bafd73680db241e82522dd45c8b47b1720929ad3225ba574b9e8e1da"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-public-domain-tunneling.md",
"legacy_path": "raw/branch-notes/feature-keycloak-public-domain-tunneling.md",
"sha256": "83dbecbd9a84796e3b7c51752854bf4d2cc77ab3cc13553ccc9d3759a2c04e2a"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-realm-client-export.md",
"legacy_path": "raw/branch-notes/feature-keycloak-realm-client-export.md",
"sha256": "362583f687b4a2d37b5d4258df53f6cdac95429887bccee5bfc663c51c6fc7f5"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-refresh-rotation-and-logout.md",
"legacy_path": "raw/branch-notes/feature-keycloak-refresh-rotation-and-logout.md",
"sha256": "2dcc07d4a504490e1e3d2d6080e019a97cef179144dab0da56faaca33f5e3fa1"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-refresh-token-rotation.md",
"legacy_path": "raw/branch-notes/feature-keycloak-refresh-token-rotation.md",
"sha256": "711161300f0570f1a50cd7bd7c5b48059e3f0db18e328e4f774c4203f7b007ac"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-reverse-proxy-headers.md",
"legacy_path": "raw/branch-notes/feature-keycloak-reverse-proxy-headers.md",
"sha256": "e4c7691dd9afb127235aa475abc86b863f38956e620d50541967adaed2199dfc"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-single-ec2-google-federation.md",
"legacy_path": "raw/branch-notes/feature-keycloak-single-ec2-google-federation.md",
"sha256": "4f6afbf1f072a94cb738ad371f427ba94ea08cdb638c5dd34806f80bb23ad436"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-single-ec2-no-google.md",
"legacy_path": "raw/branch-notes/feature-keycloak-single-ec2-no-google.md",
"sha256": "81f8e4baabc25f1f42b78f22fb57eacb39113eae5f009f70f67836ecaf36e589"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-spa-token-storage-tradeoff.md",
"legacy_path": "raw/branch-notes/feature-keycloak-spa-token-storage-tradeoff.md",
"sha256": "cc3ea9181bada0a01b0262f8eaad25096098f37055e2620f8dea5adfba59a0c3"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-spring-rs-audience-validator.md",
"legacy_path": "raw/branch-notes/feature-keycloak-spring-rs-audience-validator.md",
"sha256": "332a63c6e2300de0817c76fa1b8e0181ea2fe8af51181eb3d1809d41d551a6b1"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-spring-rs-role-mapping.md",
"legacy_path": "raw/branch-notes/feature-keycloak-spring-rs-role-mapping.md",
"sha256": "81bfc4401bcfad2af69ab3dfe1ebbe469c4ac33e5584dcfd0b6132a5d6ca1a2a"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-three-leg-trust-chain.md",
"legacy_path": "raw/branch-notes/feature-keycloak-three-leg-trust-chain.md",
"sha256": "7e5265d0415a2bb6ff7b16897983f9bedf97fbbbe80ec06e95bac97625835c0d"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-traefik-forwardauth-alternative.md",
"legacy_path": "raw/branch-notes/feature-keycloak-traefik-forwardauth-alternative.md",
"sha256": "76edbc0a7cba020ef038f43b875f599203215aba135f777cf8a5bb1747554962"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-vanilla-js-spa-pkce.md",
"legacy_path": "raw/branch-notes/feature-keycloak-vanilla-js-spa-pkce.md",
"sha256": "d0e208434d1f42b9b1806d662ffe482c956bf2c6c40872180744bdca1dcfb1e0"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/project-notes/keycloak-patterns-overview.md",
"legacy_path": "raw/project-notes/keycloak-patterns-overview.md",
"sha256": "88866f8ad01be77a8b6f7a649912d547835e436a314454e6fbcb5a1d04d187a9"
},
{
"canonical_path": "vault/10-projects/llm-wiki-server-migration/project-notes/llm-wiki-server-migration.md",
"legacy_path": "raw/project-notes/llm-wiki-server-migration.md",
"sha256": "2892f17c8be9d8a2f4ac25f85256e70b4ec3718f9d692a56a75fe0f8d88cc977"
},
{
"canonical_path": "vault/10-projects/nplus1-presentation-prep/branch-notes/experiment-nplus1-feed-api-replay.md",
"legacy_path": "raw/branch-notes/experiment-nplus1-feed-api-replay.md",
"sha256": "5b62ec348e98b7e18055fe9b6b790a11fc90cc2332333d6d00d6ce15c988fa46"
},
{
"canonical_path": "vault/10-projects/nplus1-presentation-prep/branch-notes/experiment-nplus1-highlight-feed.md",
"legacy_path": "raw/branch-notes/experiment-nplus1-highlight-feed.md",
"sha256": "0fd1ca8b0e74daa7e8954652207be0a27efc9c637c8bf44bffa5a8afba52b565"
},
{
"canonical_path": "vault/10-projects/nplus1-presentation-prep/project-notes/nplus1-presentation-prep.md",
"legacy_path": "raw/project-notes/nplus1-presentation-prep.md",
"sha256": "727980b7c79b207853b4f637a813a049c441b8ff6e50c30e97bb1d32a023a7d0"
},
{
"canonical_path": "vault/10-projects/project-infra-overview/project-notes/project-infra-overview.md",
"legacy_path": "raw/project-notes/project-infra-overview.md",
"sha256": "89712954c6026c7438630e9fb852e205c4c2a23c0e08dd1bdb5409b751ac32a4"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/adapter-togglz-ff4j-feature-toggle-library.md",
"legacy_path": "raw/company-tech-blogs/adapter-togglz-ff4j-feature-toggle-library.md",
"sha256": "5676239e428dbe3ee2b58144a5ac2c0cfce94e1badbffe206abf339bbe55efe9"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/api-versioning-github-rest-date-header.md",
"legacy_path": "raw/company-tech-blogs/api-versioning-github-rest-date-header.md",
"sha256": "db50dba7c7ac4560099bce4ef1bb64deaeb8ac705243ccc3d83debf04ef2023d"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/api-versioning-stripe-date-based.md",
"legacy_path": "raw/company-tech-blogs/api-versioning-stripe-date-based.md",
"sha256": "6e3ce7a2ca89727eb5857b872ab50023cbe21aea4d275c1a79abec60a492739f"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/arhohuttunen-hexagonal-architecture-spring-boot.md",
"legacy_path": "raw/company-tech-blogs/arhohuttunen-hexagonal-architecture-spring-boot.md",
"sha256": "ce737d074f178905e7de48da15012db40f381fbd42a14559daa8538cc5a4bc99"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/aws-iam-arn-format.md",
"legacy_path": "raw/company-tech-blogs/aws-iam-arn-format.md",
"sha256": "a47f249ce2a7999088d71ff0f593ba34c855a19a9f863ca019df76fd87cd83c2"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/axonframework-transactionmanager-spring-adapter.md",
"legacy_path": "raw/company-tech-blogs/axonframework-transactionmanager-spring-adapter.md",
"sha256": "83086b56fc266ed009d6cbf54b41e4f406c5168b2699cbf67e32ffab0cb45e44"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/brandur-stripe-idempotency-keys.md",
"legacy_path": "raw/company-tech-blogs/brandur-stripe-idempotency-keys.md",
"sha256": "73f27e94f140a8405b167d3e43bf2a31cc8b01a9733bf5946491da59e90608de"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/buckpal-archunit-lombok-allowlist-direct-transactional.md",
"legacy_path": "raw/company-tech-blogs/buckpal-archunit-lombok-allowlist-direct-transactional.md",
"sha256": "3197c28679817347a931ccb2617a90accb29f728bd4f7b3ba7067150278f25b4"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/cache-woowahan-after-commit-invalidation.md",
"legacy_path": "raw/company-tech-blogs/cache-woowahan-after-commit-invalidation.md",
"sha256": "f3309da3a2720957e0fae129237463b109061f71795f2e174be88a45d4066105"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/ci-flaky-test-quarantine-spotify-google.md",
"legacy_path": "raw/company-tech-blogs/ci-flaky-test-quarantine-spotify-google.md",
"sha256": "8056f17a60427cf1e85b6ac4e4a15f654e7cfc6fdd012f5a983f1cccdc7c5a46"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/config-launchdarkly-feature-flag-best-practice.md",
"legacy_path": "raw/company-tech-blogs/config-launchdarkly-feature-flag-best-practice.md",
"sha256": "cf2559a4e229974faa8d9dab5a673df1ae2053103de4619a90e6b05e2fcf3698"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/container-woowahan-spring-native-tradeoffs.md",
"legacy_path": "raw/company-tech-blogs/container-woowahan-spring-native-tradeoffs.md",
"sha256": "35d076f6420b97a720b3661a1deba68541c5cecf4abb1f813f80fab92a9b70ce"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/cqrs-lite-clean-architecture-read-path-bypass-wakita.md",
"legacy_path": "raw/company-tech-blogs/cqrs-lite-clean-architecture-read-path-bypass-wakita.md",
"sha256": "32d45922b11a91cea74d06f921843f0075d5514e9775baa63dcfc740eea9b873"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/curity-bff-pattern-spa.md",
"legacy_path": "raw/company-tech-blogs/curity-bff-pattern-spa.md",
"sha256": "16edb809fa79c7784fe1c8c12d3ba944a77836ca2cf93b9bac65a92d5369a44a"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/curity-oauth2-scope-vs-permission-naming.md",
"legacy_path": "raw/company-tech-blogs/curity-oauth2-scope-vs-permission-naming.md",
"sha256": "b70aa1a9dd81cefd80c73ecb1bc87f649c2918d0f9764fec1fbb68c91f806512"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/custom-transaction-interceptor-catnipcoder.md",
"legacy_path": "raw/company-tech-blogs/custom-transaction-interceptor-catnipcoder.md",
"sha256": "2263775a51a5a104ab9107a99e92110dfe479b330d1e5f1bd65ec3f4beab1c0c"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/deliberate-practice-software-developers-redgreencode.md",
"legacy_path": "raw/company-tech-blogs/deliberate-practice-software-developers-redgreencode.md",
"sha256": "b38092984d34c4df1d18c581202de1c796b9a29ad1759890766b6c4bbc0848bc"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/domain-event-sourcing-vs-cqrs-greg-young.md",
"legacy_path": "raw/company-tech-blogs/domain-event-sourcing-vs-cqrs-greg-young.md",
"sha256": "3a9e59155e29ec2d6fed4f8e6b37d1987ddc51a1be0b7a96b0325ce584a02d73"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/domain-woowahan-ddd-aggregate-techblog.md",
"legacy_path": "raw/company-tech-blogs/domain-woowahan-ddd-aggregate-techblog.md",
"sha256": "55e8d6b47426e6d897952c7a8ef7b93908a0db0e4bdb7b3ce44e9256b87d714c"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/explicit-architecture-ddd-hexagonal-cqrs-hgraca.md",
"legacy_path": "raw/company-tech-blogs/explicit-architecture-ddd-hexagonal-cqrs-hgraca.md",
"sha256": "ea3fd4b1e1bdc3d75d8d544bd46ae0a6604185e21425bcc542fa19dc88bb42f7"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/feature-first-sahibinden-package-by-layer-vs-feature.md",
"legacy_path": "raw/company-tech-blogs/feature-first-sahibinden-package-by-layer-vs-feature.md",
"sha256": "ff1fa769353d2ae8a12506c5936f7532ecfbfd7ed67507304239a4ff4a2b143c"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/file-clamav-icap-gateway-scan.md",
"legacy_path": "raw/company-tech-blogs/file-clamav-icap-gateway-scan.md",
"sha256": "707c94f5da4516affee0a8ef5cfd2fcaacf97376c6e8d4e36c17d720e2bfc169"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/github-api-error-format.md",
"legacy_path": "raw/company-tech-blogs/github-api-error-format.md",
"sha256": "e99ea1344f1a7c9bb3f80370fc537f6bcaa15aa9fb77e94f43805f944e5d795d"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/github-graphql-global-node-id.md",
"legacy_path": "raw/company-tech-blogs/github-graphql-global-node-id.md",
"sha256": "fbeb7084773302ef38797fa769bea1212eb94599f7d2d5fbcf752ba8683005a1"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/hexagonal-reflectoring-transactional-placement.md",
"legacy_path": "raw/company-tech-blogs/hexagonal-reflectoring-transactional-placement.md",
"sha256": "310c43bde44a56830dd23e843dfa78144a3567e4b06ebd9600363ede9f4e9c03"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/hexagonal-woowahan-techblog-2023.md",
"legacy_path": "raw/company-tech-blogs/hexagonal-woowahan-techblog-2023.md",
"sha256": "41111b4c3e605810d6672576399cdef650d1480036874e2647995a392992a644"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/idempotency-brandur-stripe-postgres.md",
"legacy_path": "raw/company-tech-blogs/idempotency-brandur-stripe-postgres.md",
"sha256": "8eb8e639917be67ac1c09cca690667f3a5a2976d84587cd5644cc200ea7dd5ba"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/idempotency-redis-vs-db-storage.md",
"legacy_path": "raw/company-tech-blogs/idempotency-redis-vs-db-storage.md",
"sha256": "378e6d304669c195858225aaff6be0c9f61c43e75fcada0ab407335aa262b238"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/idempotency-toss-payments-techblog.md",
"legacy_path": "raw/company-tech-blogs/idempotency-toss-payments-techblog.md",
"sha256": "6fe4d6ee997eaf73c636fbc5036b722077c9f5ae3cae767b9a89cc1d54605249"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/jwks-workos-unknown-kid-refresh-rate-limit-pattern.md",
"legacy_path": "raw/company-tech-blogs/jwks-workos-unknown-kid-refresh-rate-limit-pattern.md",
"sha256": "85cfc91a248986d3b980cfea44d28fb1d581406848991e6f96508cc6750e9bb2"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/keycloak-google-login-codemancers.md",
"legacy_path": "raw/company-tech-blogs/keycloak-google-login-codemancers.md",
"sha256": "91428bd7a6358bc6e3747fccf13f7ae1570064b1266b0bc6452263c7571f9f39"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/keycloak-jwt-role-extraction-betweendata.md",
"legacy_path": "raw/company-tech-blogs/keycloak-jwt-role-extraction-betweendata.md",
"sha256": "2f91607f4faaa36654b9ad35df11ad9ea23b2eca1c1983da715e84355c8de064"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/layer-first-kamilmazurek-github-template.md",
"legacy_path": "raw/company-tech-blogs/layer-first-kamilmazurek-github-template.md",
"sha256": "81e3c5078ad92966df3df594e8e2fcda5e94ac508a9c1dcce9ef8d9af176ed29"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/lock-subskribe-advisory-lock-distributed-consensus.md",
"legacy_path": "raw/company-tech-blogs/lock-subskribe-advisory-lock-distributed-consensus.md",
"sha256": "73fee44ba4fbf9a464a0e53bb75e7ecf18d6071d88a443f67170b3c46b75d390"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/metric-toss-payments-alert-severity-techblog.md",
"legacy_path": "raw/company-tech-blogs/metric-toss-payments-alert-severity-techblog.md",
"sha256": "31cfa688664962538b5dbc24ab341c75fd155e3f7288dd7d8a382bfebf7df85f"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/micrometer-context-propagation-line-be-hase.md",
"legacy_path": "raw/company-tech-blogs/micrometer-context-propagation-line-be-hase.md",
"sha256": "7063d5e992f281013ee0796d0953bb7a078650995e3e4191590096947fff641f"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/modulith-arawn-github-modular-monoliths-spring.md",
"legacy_path": "raw/company-tech-blogs/modulith-arawn-github-modular-monoliths-spring.md",
"sha256": "3e1ea67818ddd4420ae181b71ccb088ad1ec9cc75187836236bbbb4061386b48"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/modulith-kakaobank-techblog-2025.md",
"legacy_path": "raw/company-tech-blogs/modulith-kakaobank-techblog-2025.md",
"sha256": "555a4fd24b9890f66bafd863a94024542bec4deba61e1b2fb609438c4bf4c871"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-atlassian-tenant-context.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-atlassian-tenant-context.md",
"sha256": "dc012170e05f3b836ed85d0b08ce533a1bef62a80052facac7ab2efa543ac97f"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-auth0-tenant-resolution.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-auth0-tenant-resolution.md",
"sha256": "675d9046b493a1ff625e8eef2d01892d80348cedc89672491d36d45aca628126"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-hybrid-pooled-siloed-mix.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-hybrid-pooled-siloed-mix.md",
"sha256": "99f00fc92a40f5b73dfa46ed88560b4637667b0b24ecab709a071d7185074638"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-stripe-citus-schema-per-tenant.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-stripe-citus-schema-per-tenant.md",
"sha256": "d2a811cf261be35d5b67080c5c4fec9b7d16a04e402ae525079e4d7afd115366"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-subdomain-resolution-patterns.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-subdomain-resolution-patterns.md",
"sha256": "2d031745ff36fa31ea1d3e1f4530ddd373b5e837b62255a9da275ed01ed7e647"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/netflix-tudum-cqrs-separate-read-store-evolution.md",
"legacy_path": "raw/company-tech-blogs/netflix-tudum-cqrs-separate-read-store-evolution.md",
"sha256": "05b5aaabaad3c364f9eaa4964364ce8274d8246ebd1006a999fc1482c5ba29ec"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/onion-allegro-tech-blog-2023.md",
"legacy_path": "raw/company-tech-blogs/onion-allegro-tech-blog-2023.md",
"sha256": "f69dd811c619f6ad1d9ea2637be91ef6c3678ace15c5d49b6aff640b8e3667fd"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbound-stripe-rate-limit-retry-engineering.md",
"legacy_path": "raw/company-tech-blogs/outbound-stripe-rate-limit-retry-engineering.md",
"sha256": "c013a42d05c7698fb89e6daa9eab64e3f3c4f14c1f07eb1b3c62fffaa84db8e1"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbox-confluent-kafka-connect-smt.md",
"legacy_path": "raw/company-tech-blogs/outbox-confluent-kafka-connect-smt.md",
"sha256": "cc4a86074e0a373b07a342106c963d519f0603f8b3e04fde7ad83b794b4f32b3"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbox-netflix-domain-events-cdc.md",
"legacy_path": "raw/company-tech-blogs/outbox-netflix-domain-events-cdc.md",
"sha256": "fa0fa8e3ff9b62f34cd97609359af381f8043905636691afba228dea1b3ccfb2"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbox-wix-engineering-debezium.md",
"legacy_path": "raw/company-tech-blogs/outbox-wix-engineering-debezium.md",
"sha256": "0c9bdad0e9a7c04d192bc5dd457ec8e9c91342f7ac491891a1b10f31eb535912"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbox-woowahan-techblog-pattern.md",
"legacy_path": "raw/company-tech-blogs/outbox-woowahan-techblog-pattern.md",
"sha256": "b233ee058d1d975d7317660ea111e26f305bdeef238ceea5442bdba458d3b1ab"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/percona-uuid-storage-mysql.md",
"legacy_path": "raw/company-tech-blogs/percona-uuid-storage-mysql.md",
"sha256": "9921f3b756b18c304de893c5efacb7a52265f3b3c800e91130da3762ba808c51"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/planetscale-nanoid-api.md",
"legacy_path": "raw/company-tech-blogs/planetscale-nanoid-api.md",
"sha256": "6b48a8908df6f086a2a55425e611ff181add4c608bd61e56ee5c68da05143fc3"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/postgresql-slow-query-logging-crunchydata.md",
"legacy_path": "raw/company-tech-blogs/postgresql-slow-query-logging-crunchydata.md",
"sha256": "099156df69b227a749f00ee057ef41b6a8d8ef80f372ca72428d01a10e246f9e"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/privacy-pseudonymization-hmac-vs-tokenization-iapp.md",
"legacy_path": "raw/company-tech-blogs/privacy-pseudonymization-hmac-vs-tokenization-iapp.md",
"sha256": "aa884b399989909fbf0e5a795fc3198be917040a5bb45dcabdf953ce878520c9"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/read-only-tx-hibernate-optimization-vladmihalcea.md",
"legacy_path": "raw/company-tech-blogs/read-only-tx-hibernate-optimization-vladmihalcea.md",
"sha256": "92ed4bac35a3107ebc3904362064f681782ced495ffe9139d87e72186c916421"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/realtime-service-experience-woowahan-websocket.md",
"legacy_path": "raw/company-tech-blogs/realtime-service-experience-woowahan-websocket.md",
"sha256": "a66aa3313de1acc768b7255c551886349044c7eeb50b191c2083946e3e0eaa66"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/retry-aws-exponential-backoff-and-jitter.md",
"legacy_path": "raw/company-tech-blogs/retry-aws-exponential-backoff-and-jitter.md",
"sha256": "1ee3c69b2b797e1e5acfc307ac8497fb7b7bdd872e4e1b7125bbd29eb5000e84"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/runbook-atlassian-gitops-runbook-as-code.md",
"legacy_path": "raw/company-tech-blogs/runbook-atlassian-gitops-runbook-as-code.md",
"sha256": "16467011efc7b04dfc5cbc23f6321f8983f518e3d24bd3673bf96c8b8fc05de9"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/runbook-woowahan-incident-techblog.md",
"legacy_path": "raw/company-tech-blogs/runbook-woowahan-incident-techblog.md",
"sha256": "8e1f41b65e82f07f6d66041905cc92ca06cb8a119749117f4415b460324c778c"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/runtime-health-datadog-engineering-graceful-shutdown.md",
"legacy_path": "raw/company-tech-blogs/runtime-health-datadog-engineering-graceful-shutdown.md",
"sha256": "b8a540ae5f0945cd41cecf7e71e445faf85cf7957630b80da290b9db292bc0b7"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/scaffolding-backstage-golden-path-spotify.md",
"legacy_path": "raw/company-tech-blogs/scaffolding-backstage-golden-path-spotify.md",
"sha256": "4a12624e3bc79f88adfe34c46df05d9519845b721a606aad6229b5e1d17ec2dc"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/scoped-value-structured-concurrency-softwaremill.md",
"legacy_path": "raw/company-tech-blogs/scoped-value-structured-concurrency-softwaremill.md",
"sha256": "cb8efd57ef01506e99be489587f43d7477a6839b06084e65234029a4573ec891"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/secrets-1password-developer-secret-references.md",
"legacy_path": "raw/company-tech-blogs/secrets-1password-developer-secret-references.md",
"sha256": "c54e4d60baf7f2bab96f5ee1c9a3da3469328505dca2b82b7f66a2e6307657bd"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/security-toss-actuator-healthcheck.md",
"legacy_path": "raw/company-tech-blogs/security-toss-actuator-healthcheck.md",
"sha256": "1519a2afdf7c878729a45c4e94ade5d5708b7a167adeb5cadaba1ded6f49b745"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/security-woowahan-actuator-safe-usage.md",
"legacy_path": "raw/company-tech-blogs/security-woowahan-actuator-safe-usage.md",
"sha256": "74f98eaa47d259e269c6f3a2337d220a7b5ab92d0b2b711ad3cd780625fa529b"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/segment-ksuid.md",
"legacy_path": "raw/company-tech-blogs/segment-ksuid.md",
"sha256": "c5c8ae314a7f9be064c66d35756c0b1304ded1a5e865f40fb1a11404316f7b5e"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/senior-engineer-competency-mubin-shaikh.md",
"legacy_path": "raw/company-tech-blogs/senior-engineer-competency-mubin-shaikh.md",
"sha256": "a59051de2dc1d01ea79939e739465f2f0ab51869512359c5ef29576d99deca42"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/skillable-hands-on-lab-structure.md",
"legacy_path": "raw/company-tech-blogs/skillable-hands-on-lab-structure.md",
"sha256": "f54d891e0fe8a40f1e0e4e7757ea9db8a6cd3a3dd7a84907833abc6f42b4dc83"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/slow-query-datasource-proxy-spring-boot-galovics.md",
"legacy_path": "raw/company-tech-blogs/slow-query-datasource-proxy-spring-boot-galovics.md",
"sha256": "a900590a6da8e8bbe47305fbf62d25ff6887558138f82a5e435c2988e07c14fa"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/snowflake-twitter-id.md",
"legacy_path": "raw/company-tech-blogs/snowflake-twitter-id.md",
"sha256": "365d47f30894495340a83c85a59b52b0d182beccd251a38dca2446dc702d4dea"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/spring-modulith-archunit-generated-exemption-and-violations-as-data.md",
"legacy_path": "raw/company-tech-blogs/spring-modulith-archunit-generated-exemption-and-violations-as-data.md",
"sha256": "b0115ee2d1a16d5ffb0ef4aeacd7d64c922ac0f4e6995ff2561bf0579263a6fc"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/sse-realtime-notification-woowahan.md",
"legacy_path": "raw/company-tech-blogs/sse-realtime-notification-woowahan.md",
"sha256": "a155a97b8747027e8bea61f08838ed5c357f2a226630d68fb0ff0f8645aa7b39"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/stripe-error-format.md",
"legacy_path": "raw/company-tech-blogs/stripe-error-format.md",
"sha256": "5ed47ee89f9abb8e67f6b31b6071781db4ec706d45051ac6e529c12d7f4637e8"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/test-pyramid-vs-trophy-kent-dodds.md",
"legacy_path": "raw/company-tech-blogs/test-pyramid-vs-trophy-kent-dodds.md",
"sha256": "b70f233f540da54dd035c2633f1fdc1682706ad0fbbb1163934edd3e563f6ac1"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/thorben-janssen-hibernate-timestamp-clock-limitation.md",
"legacy_path": "raw/company-tech-blogs/thorben-janssen-hibernate-timestamp-clock-limitation.md",
"sha256": "d0c08abdd90d9b0699f501275f0869c02edfdead35fc4327a95561de62b01307"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/threadlocal-capture-restore-att-israel.md",
"legacy_path": "raw/company-tech-blogs/threadlocal-capture-restore-att-israel.md",
"sha256": "cad87b0296da2bbc57ebc58d57eba94c547e8e833f2c46ffdbc5f5ae4a8dfcbb"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/toss-payments-error-format.md",
"legacy_path": "raw/company-tech-blogs/toss-payments-error-format.md",
"sha256": "bda8e2676de583eb991612392956437bdc3fab515f67159f39a85660fd1ff34e"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/tracing-datadog-apm-vs-opentelemetry.md",
"legacy_path": "raw/company-tech-blogs/tracing-datadog-apm-vs-opentelemetry.md",
"sha256": "aaa82e6e6933cf994f499757beb531fcb6ac9c8a7cf0b8370f023acc2662d014"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/transaction-port-clean-ddd-spring-medium.md",
"legacy_path": "raw/company-tech-blogs/transaction-port-clean-ddd-spring-medium.md",
"sha256": "0207d744f14070755e055c06274457506b839affc453d90e518413966b64790b"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/transaction-port-vassilis-soum-github-readme.md",
"legacy_path": "raw/company-tech-blogs/transaction-port-vassilis-soum-github-readme.md",
"sha256": "a12f822f40c97a19994b1dcc59b156c51affc05c5d71d10484bae9ab91d80411"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/vlad-mihalcea-postgresql-audit-logging-triggers.md",
"legacy_path": "raw/company-tech-blogs/vlad-mihalcea-postgresql-audit-logging-triggers.md",
"sha256": "fb47ab218323a40d4834f5243022517c484f3cd8c7fee176846a643c69c5af0f"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/woowahan-hexagonal-multimodule.md",
"legacy_path": "raw/company-tech-blogs/woowahan-hexagonal-multimodule.md",
"sha256": "42f5702bba5d5e413533acdb68191a95708038b0ee81614b6e8db2c9751ff1d6"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-05-passive-diversification-behavior.md",
"legacy_path": "raw/invest-research/2026-06-05-passive-diversification-behavior.md",
"sha256": "078c91e577b1aa7693bb583309b9e2aa836284591260af5bc00189720d425a9f"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-05-stoploss-takeprofit-tax-accounts.md",
"legacy_path": "raw/invest-research/2026-06-05-stoploss-takeprofit-tax-accounts.md",
"sha256": "d918ee66ce763eaf1af4c27e806f57f3d37e8b0785c920a611855fe192fab350"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-08-broad-equity-etf-100man-candidates.md",
"legacy_path": "raw/invest-research/2026-06-08-broad-equity-etf-100man-candidates.md",
"sha256": "3110ae010b1f88c6b5bb867950f74f1fd27254de845d8d1c5d2213781859f5b6"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-08-isa-vs-general-account-no-income.md",
"legacy_path": "raw/invest-research/2026-06-08-isa-vs-general-account-no-income.md",
"sha256": "e2d65ff287a7bb36fbe0f196901b4da45b4ad70f61c5f3786d981c12a18ecc25"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-08-korean-broad-etf-ticker-comparison.md",
"legacy_path": "raw/invest-research/2026-06-08-korean-broad-etf-ticker-comparison.md",
"sha256": "d2d38d01b1ba8db01ca87a84e0bc6779f22db7e247c4241365bb1fd235c13572"
},
{
"canonical_path": "vault/20-evidence/official-docs/actuator-endpoint-exposure-spring-official.md",
"legacy_path": "raw/official-docs/actuator-endpoint-exposure-spring-official.md",
"sha256": "52307144be2b64274b4dd73be7c664a4ca6a8e7659f2f119d54a8534b08dd25e"
},
{
"canonical_path": "vault/20-evidence/official-docs/actuator-istio-sidecar-management-alt.md",
"legacy_path": "raw/official-docs/actuator-istio-sidecar-management-alt.md",
"sha256": "16930843e0f7d66dc0b6ddc8d7d8458bf6d6008dd267ef22fc1e9d3d65b83281"
},
{
"canonical_path": "vault/20-evidence/official-docs/actuator-management-port-spring-official.md",
"legacy_path": "raw/official-docs/actuator-management-port-spring-official.md",
"sha256": "3a82997c215f5a936345cd833429e6587b9bbb3daec18636db499e4b9575eded"
},
{
"canonical_path": "vault/20-evidence/official-docs/adapter-java-spi-serviceloader.md",
"legacy_path": "raw/official-docs/adapter-java-spi-serviceloader.md",
"sha256": "61f318a3f5745351af7318655d96a83051159cc6ec4416edcde48d1984663601"
},
{
"canonical_path": "vault/20-evidence/official-docs/adapter-spring-boot-autoconfig-custom-starter.md",
"legacy_path": "raw/official-docs/adapter-spring-boot-autoconfig-custom-starter.md",
"sha256": "3c141d0d8de4fc940fda13d5d40630f0365c969c2b0bdbcc0500ef928b898832"
},
{
"canonical_path": "vault/20-evidence/official-docs/api-versioning-google-aip-180.md",
"legacy_path": "raw/official-docs/api-versioning-google-aip-180.md",
"sha256": "ac405e2f5a247ab4b1f7330362e22e40508285408da7278fc0c0557762de752f"
},
{
"canonical_path": "vault/20-evidence/official-docs/arch-acl-microsoft-pattern.md",
"legacy_path": "raw/official-docs/arch-acl-microsoft-pattern.md",
"sha256": "f483ab29c07f7164c34fa9d4212e290e67f160012055bb96a0ece6157e12b738"
},
{
"canonical_path": "vault/20-evidence/official-docs/arch-clean-architecture-uncle-bob.md",
"legacy_path": "raw/official-docs/arch-clean-architecture-uncle-bob.md",
"sha256": "4099624afc3bcfd61be7665dd01686bde495c642b2e37dcba6594bcdb838035b"
},
{
"canonical_path": "vault/20-evidence/official-docs/arch-hexagonal-cockburn.md",
"legacy_path": "raw/official-docs/arch-hexagonal-cockburn.md",
"sha256": "ca6a5c11e4477adb8af07ea29b99666bbd9b15ae7d4be477146bf5d01bbb1c47"
},
{
"canonical_path": "vault/20-evidence/official-docs/archunit-annotation-as-registry-evaluation.md",
"legacy_path": "raw/official-docs/archunit-annotation-as-registry-evaluation.md",
"sha256": "d32aed053a2563c36750b3ebbd30bddda6eddb1fa9352996d2e193d926eea0c0"
},
{
"canonical_path": "vault/20-evidence/official-docs/archunit-conditional-on-property-3-layer-pattern.md",
"legacy_path": "raw/official-docs/archunit-conditional-on-property-3-layer-pattern.md",
"sha256": "f765309f0b2c9d832b7f6210245f401cf2b782769b80541f3396d25339ea4f42"
},
{
"canonical_path": "vault/20-evidence/official-docs/archunit-user-guide.md",
"legacy_path": "raw/official-docs/archunit-user-guide.md",
"sha256": "dda9d11c1dcaaa0e15496d45b7cf119bc89b748af3b6829c1d5cb74677a5f1e8"
},
{
"canonical_path": "vault/20-evidence/official-docs/at-transactional-spring-official.md",
"legacy_path": "raw/official-docs/at-transactional-spring-official.md",
"sha256": "293610b61aa7221c13a33be6fcc6f7e08e9045d62ea73b2bc780c656d96c279d"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-acm-managed-renewal.md",
"legacy_path": "raw/official-docs/aws-acm-managed-renewal.md",
"sha256": "d6e05ce7a5e12c1972758fdfb716a515a50a5bc6e5d9510d2c432c28b1c847fa"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-alb-target-security-group-restriction-official.md",
"legacy_path": "raw/official-docs/aws-alb-target-security-group-restriction-official.md",
"sha256": "03eb0482d3f8663dfab7a84fda5fd3ab5a36e4aab568d831a0a1ce8988e21512"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-builders-retry-jitter.md",
"legacy_path": "raw/official-docs/aws-builders-retry-jitter.md",
"sha256": "9ad250a24a65772762ab2e341d3d7fd4acdd466bf6704e660d44a442e52443cc"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-cloudfront-origin-shared-secret-header-official.md",
"legacy_path": "raw/official-docs/aws-cloudfront-origin-shared-secret-header-official.md",
"sha256": "7823d520ea110da6326e6a8ca578bee30aa62a48f4fa51c9aefc570e155b29bf"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-iam-google-iam-permission-naming-convention.md",
"legacy_path": "raw/official-docs/aws-iam-google-iam-permission-naming-convention.md",
"sha256": "635e303f6ed6ed2f993979deb3e982741d5f0ab1cae96c7c211eb3a2b669ff4e"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-security-group-referencing-official.md",
"legacy_path": "raw/official-docs/aws-security-group-referencing-official.md",
"sha256": "90157da37641ada1b6c9aa8158e218a3b6360edcf9d55bc9764ccbd67c3e198f"
},
{
"canonical_path": "vault/20-evidence/official-docs/baggage-otel-baggage-api-spec.md",
"legacy_path": "raw/official-docs/baggage-otel-baggage-api-spec.md",
"sha256": "462c9fbfaba5d6a18144e3ff1c0152372a0f8f7d792edf212769377665290490"
},
{
"canonical_path": "vault/20-evidence/official-docs/baggage-w3c-baggage-spec.md",
"legacy_path": "raw/official-docs/baggage-w3c-baggage-spec.md",
"sha256": "44d53785b3f3c6d5dee3ec2da80ddc6c45ca6063810ab064dd585cece83a8664"
},
{
"canonical_path": "vault/20-evidence/official-docs/cache-aside-vs-write-through-aws.md",
"legacy_path": "raw/official-docs/cache-aside-vs-write-through-aws.md",
"sha256": "3944b37bb4e9de596e319bb0c1c96caa716308a5b020ab83c6c0e64cd63abce3"
},
{
"canonical_path": "vault/20-evidence/official-docs/cache-caffeine-asyncloadingcache-readme.md",
"legacy_path": "raw/official-docs/cache-caffeine-asyncloadingcache-readme.md",
"sha256": "bb5074b11c27e80eefe1aacb2363ff463646c2d73d3daa29d7a35ef35345d63b"
},
{
"canonical_path": "vault/20-evidence/official-docs/cache-redisson-rlock-vs-setnx.md",
"legacy_path": "raw/official-docs/cache-redisson-rlock-vs-setnx.md",
"sha256": "7b50072f1e9245d1b063640891054bb6a7cf4d6e6a72a9823394b6b17f52da8f"
},
{
"canonical_path": "vault/20-evidence/official-docs/caddy-automatic-https-docs.md",
"legacy_path": "raw/official-docs/caddy-automatic-https-docs.md",
"sha256": "f9f6933f56e19ea0b4d9241f4cb3c53bd2bf24504dc939a00ae6717d76f14122"
},
{
"canonical_path": "vault/20-evidence/official-docs/calver-spec-calver-official.md",
"legacy_path": "raw/official-docs/calver-spec-calver-official.md",
"sha256": "2fbc310aff18e583c08fd1a941e7a38b7c0db2629d5de5d80e3c3da3009e85c6"
},
{
"canonical_path": "vault/20-evidence/official-docs/certbot-user-guide.md",
"legacy_path": "raw/official-docs/certbot-user-guide.md",
"sha256": "a615359ad5c8486094589a34bc59082b238ce1bca20df862df76b0832f0b3798"
},
{
"canonical_path": "vault/20-evidence/official-docs/checkstyle-google-style-reference.md",
"legacy_path": "raw/official-docs/checkstyle-google-style-reference.md",
"sha256": "62a79fea88851b92dc5e25e5993209f0247b350e9f706ba0139ba0095a4c6d51"
},
{
"canonical_path": "vault/20-evidence/official-docs/chrome-third-party-cookie-policy-google-official.md",
"legacy_path": "raw/official-docs/chrome-third-party-cookie-policy-google-official.md",
"sha256": "6614cf77aee7400d799714d174c110f028ad0dcd2e6819fff696ac074513c0c5"
},
{
"canonical_path": "vault/20-evidence/official-docs/ci-github-actions-vs-gitlab-comparison.md",
"legacy_path": "raw/official-docs/ci-github-actions-vs-gitlab-comparison.md",
"sha256": "88e9b66664f9028569c86791f398526cb495a371fce013effd6c83fa3f750294"
},
{
"canonical_path": "vault/20-evidence/official-docs/ci-openapi-snapshot-diff-tooling.md",
"legacy_path": "raw/official-docs/ci-openapi-snapshot-diff-tooling.md",
"sha256": "8681b90375eac4680d0b9c335f73a685190d26a452ab6bc57605300f8b87cd16"
},
{
"canonical_path": "vault/20-evidence/official-docs/cloudevents-spec-required-attributes.md",
"legacy_path": "raw/official-docs/cloudevents-spec-required-attributes.md",
"sha256": "191be90d0cf311a4b60b2a11a05fda28b467f17a864166b9ba6c50f68ab0b13b"
},
{
"canonical_path": "vault/20-evidence/official-docs/cloudflare-tunnel-routing-official.md",
"legacy_path": "raw/official-docs/cloudflare-tunnel-routing-official.md",
"sha256": "e8249e1175fee5f0b65dc98b80ab5e83d4b75139126c91f543f7fb9bafc0fc76"
},
{
"canonical_path": "vault/20-evidence/official-docs/compat-rfc-8594-sunset-header.md",
"legacy_path": "raw/official-docs/compat-rfc-8594-sunset-header.md",
"sha256": "a58fa9f4db407cf3f748ff5aa94bcac16333c592749e17700f1cc75591fa0ec8"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-12-factor-app-config.md",
"legacy_path": "raw/official-docs/config-12-factor-app-config.md",
"sha256": "1047a6a837c4c685eaf93409d63521eba4663c0ecd9f29147e46bf2578e6ab4c"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-aws-appconfig-feature-flag-deployment.md",
"legacy_path": "raw/official-docs/config-aws-appconfig-feature-flag-deployment.md",
"sha256": "03944163f1b9863fc42dbe39cf5ac2a875eb5ee072dc2fd6fde88a449cd7487c"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-spring-boot-externalized-configuration.md",
"legacy_path": "raw/official-docs/config-spring-boot-externalized-configuration.md",
"sha256": "e77e1ee00ac93f8353e36fed61abe6b5ffac310b7e31d8ea42d4a7b11e8d22ba"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-spring-cloud-config-server-official.md",
"legacy_path": "raw/official-docs/config-spring-cloud-config-server-official.md",
"sha256": "a90ada933c664b6776d593f8993b22aef5704277c9160e7095dcc6a486c52c87"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-spring-cloud-kubernetes-configmap-reload.md",
"legacy_path": "raw/official-docs/config-spring-cloud-kubernetes-configmap-reload.md",
"sha256": "fa5e435188104ce85ebf8c6a2a3f0fc5055a73cce37f83280d9cfea6ca89dbc3"
},
{
"canonical_path": "vault/20-evidence/official-docs/container-alpine-java-musl-tradeoffs.md",
"legacy_path": "raw/official-docs/container-alpine-java-musl-tradeoffs.md",
"sha256": "eb824fa1cb2b2830a82e2d36fd15b871bde4a9d5f97872b2156088a23cd092db"
},
{
"canonical_path": "vault/20-evidence/official-docs/container-distroless-google-github.md",
"legacy_path": "raw/official-docs/container-distroless-google-github.md",
"sha256": "5d01c7e259332bf6103c29d61d1b5fe54f1772b56eb58be3467d46c660407c1a"
},
{
"canonical_path": "vault/20-evidence/official-docs/container-graalvm-native-image-spring-boot.md",
"legacy_path": "raw/official-docs/container-graalvm-native-image-spring-boot.md",
"sha256": "549f0f36d7a9a9f6d2d4eec89e2e75b0f362f8684401d7c0bc4fc2dc529bbf09"
},
{
"canonical_path": "vault/20-evidence/official-docs/container-stdout-logging-12factor-official.md",
"legacy_path": "raw/official-docs/container-stdout-logging-12factor-official.md",
"sha256": "7cb8f81b9767834ac2ee93a830aa20ccbbd918151a9e66c865a0f47d63b253d4"
},
{
"canonical_path": "vault/20-evidence/official-docs/cosign-keyless-identity-verification-policy.md",
"legacy_path": "raw/official-docs/cosign-keyless-identity-verification-policy.md",
"sha256": "0464f24b59f725c8fab9718ee13e71d5fc2aabc68bbbce66e637f27a674250dd"
},
{
"canonical_path": "vault/20-evidence/official-docs/cqrs-fowler-bliki.md",
"legacy_path": "raw/official-docs/cqrs-fowler-bliki.md",
"sha256": "8a0a5ed0973dd51b9707487e9f700b175efe77097f09984f53409de10c92e419"
},
{
"canonical_path": "vault/20-evidence/official-docs/cqrs-pattern-azure-architecture-center.md",
"legacy_path": "raw/official-docs/cqrs-pattern-azure-architecture-center.md",
"sha256": "f61d34ed22d64aebc3f12767c2f928746a77af449831416c35588da0d108840c"
},
{
"canonical_path": "vault/20-evidence/official-docs/crockford-base32-spec.md",
"legacy_path": "raw/official-docs/crockford-base32-spec.md",
"sha256": "7447f64f0c37c71e823897910b02b280fbd9f7992dc759ccc17670164a8b9670"
},
{
"canonical_path": "vault/20-evidence/official-docs/cuid2-spec.md",
"legacy_path": "raw/official-docs/cuid2-spec.md",
"sha256": "ab37c650785ac9ad0db729249daeb3dfb1de904bb7fc29c8bca532f6163c669f"
},
{
"canonical_path": "vault/20-evidence/official-docs/datasource-micrometer-observation-official.md",
"legacy_path": "raw/official-docs/datasource-micrometer-observation-official.md",
"sha256": "0b21babeb7b035c60f664bb81b22945bf4b2154efd4d999ce157e73c1966d6b8"
},
{
"canonical_path": "vault/20-evidence/official-docs/datasource-proxy-slow-query-official.md",
"legacy_path": "raw/official-docs/datasource-proxy-slow-query-official.md",
"sha256": "5e837d7f70988f077c9a06fbec41d246bdbb592954d6c1e167b848db915120ed"
},
{
"canonical_path": "vault/20-evidence/official-docs/dependabot-security-updates-gradle-official.md",
"legacy_path": "raw/official-docs/dependabot-security-updates-gradle-official.md",
"sha256": "1eebc931ca9c81ed8b9a256b8c33c78c0f73b47d766f5b9d6b5948ae005dfc94"
},
{
"canonical_path": "vault/20-evidence/official-docs/dependabot-supported-ecosystems-official.md",
"legacy_path": "raw/official-docs/dependabot-supported-ecosystems-official.md",
"sha256": "cf124c0a1ba6c9a35a3ccb3c777c363f7faab2cff607eaba749f5147a604049d"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-compose-depends-on-healthcheck.md",
"legacy_path": "raw/official-docs/docker-compose-depends-on-healthcheck.md",
"sha256": "e3e3a5d7bc810b1d60df2bcda5439e84329e10b352973720a9ea20cd6f2888c8"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-compose-networking-extra-hosts-official.md",
"legacy_path": "raw/official-docs/docker-compose-networking-extra-hosts-official.md",
"sha256": "2a0a963223e1b4aeda804985d454e4be2de36c3457b6f920559832322668b09b"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-engine-20-10-release-notes-official.md",
"legacy_path": "raw/official-docs/docker-engine-20-10-release-notes-official.md",
"sha256": "c18e395b23ce38b2a0f60442c4024f3403437c178eea557b6523d0df6658d1a3"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-host-network-driver-official.md",
"legacy_path": "raw/official-docs/docker-host-network-driver-official.md",
"sha256": "9bf4ac38cffef2dee2d612cadb7fc3711d9a91dce6478bf59fcfca9d76608e82"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-port-publishing-loopback-bind-official.md",
"legacy_path": "raw/official-docs/docker-port-publishing-loopback-bind-official.md",
"sha256": "34d72d83000f01436f7296226bf497e5af2fbf5965d70b2f84bb42627d938600"
},
{
"canonical_path": "vault/20-evidence/official-docs/domain-event-fowler-eaa.md",
"legacy_path": "raw/official-docs/domain-event-fowler-eaa.md",
"sha256": "7343b4d2298d98d88f05a6db7c3ce8de140057362096a0a947bcd7f8babf7127"
},
{
"canonical_path": "vault/20-evidence/official-docs/domain-fowler-anemic-vs-rich-model.md",
"legacy_path": "raw/official-docs/domain-fowler-anemic-vs-rich-model.md",
"sha256": "7d87d1d36a391f25ad83afb7694e8829c37ceebd1d2aba2b48855b166a1b4725"
},
{
"canonical_path": "vault/20-evidence/official-docs/domain-vaughn-vernon-aggregate-root.md",
"legacy_path": "raw/official-docs/domain-vaughn-vernon-aggregate-root.md",
"sha256": "0eec505c341a7b3bc3b6856b3e5d178f82248eb1338c9a718b4cf7a0f84ae347"
},
{
"canonical_path": "vault/20-evidence/official-docs/dual-write-antipattern-microservices-io.md",
"legacy_path": "raw/official-docs/dual-write-antipattern-microservices-io.md",
"sha256": "9ec7337c988832edf34cb68bfc8f9dc221b01daa407e0c10706e50048ac61955"
},
{
"canonical_path": "vault/20-evidence/official-docs/dx-devcontainer-spring-boot.md",
"legacy_path": "raw/official-docs/dx-devcontainer-spring-boot.md",
"sha256": "73bc05b275f79e17c7ff0bc9f1bd057b8c62d5b4f2f75c5bedc7efbb964b6a9b"
},
{
"canonical_path": "vault/20-evidence/official-docs/dx-mise-asdf-tool-versioning.md",
"legacy_path": "raw/official-docs/dx-mise-asdf-tool-versioning.md",
"sha256": "6da368d40102f005b167c59bd035dc502329b68f33a4570e4df4f9bf5c5630dc"
},
{
"canonical_path": "vault/20-evidence/official-docs/dx-testcontainers-java-best-practices.md",
"legacy_path": "raw/official-docs/dx-testcontainers-java-best-practices.md",
"sha256": "b35412170b4d565d7b3bae063fba03483d3201f51148be6fef24826c388becdc"
},
{
"canonical_path": "vault/20-evidence/official-docs/ecs-awslogs-stdout-cloudwatch-aws-official.md",
"legacy_path": "raw/official-docs/ecs-awslogs-stdout-cloudwatch-aws-official.md",
"sha256": "47ab93c634cb954194ff2705ee4beca3323a27031dbe3395b38d76ecf9952ed0"
},
{
"canonical_path": "vault/20-evidence/official-docs/errorprone-gradle-plugin-readme.md",
"legacy_path": "raw/official-docs/errorprone-gradle-plugin-readme.md",
"sha256": "fa7f4e9768143d658530e54066b04986ac4c9dc957043e88dd9acd69508f2abd"
},
{
"canonical_path": "vault/20-evidence/official-docs/event-sourcing-vs-outbox-microservices-io.md",
"legacy_path": "raw/official-docs/event-sourcing-vs-outbox-microservices-io.md",
"sha256": "980c7b76bdd8e5f1e9f24dd50e292c9e870972b2730381aec02ab6aa93afb1b5"
},
{
"canonical_path": "vault/20-evidence/official-docs/feature-first-uncle-bob-screaming-architecture-2011.md",
"legacy_path": "raw/official-docs/feature-first-uncle-bob-screaming-architecture-2011.md",
"sha256": "74252516e55101cc419e676abf85d331797003d08faa67af6ad607e7788ddec1"
},
{
"canonical_path": "vault/20-evidence/official-docs/fetch-spec-cors.md",
"legacy_path": "raw/official-docs/fetch-spec-cors.md",
"sha256": "690cc83aed632dd660f87da0665befeea55fa68ea78e1393499a7577fbaecc19"
},
{
"canonical_path": "vault/20-evidence/official-docs/file-s3-presigned-url-upload.md",
"legacy_path": "raw/official-docs/file-s3-presigned-url-upload.md",
"sha256": "fc4dd16b694d5c079d68962a16b631d66992afd3a800e01eef77aef156148cf1"
},
{
"canonical_path": "vault/20-evidence/official-docs/file-tus-resumable-upload-protocol.md",
"legacy_path": "raw/official-docs/file-tus-resumable-upload-protocol.md",
"sha256": "3fba9df1618fd7f70b900e5475ae62b4281879b1511639a593a788c2917d5729"
},
{
"canonical_path": "vault/20-evidence/official-docs/find-sec-bugs-official.md",
"legacy_path": "raw/official-docs/find-sec-bugs-official.md",
"sha256": "303def97ada187e5126d43ed19fb27d073d1d0b765daf5322e0eb6b2e2266ffe"
},
{
"canonical_path": "vault/20-evidence/official-docs/functional-tx-arrow-kt-resource-docs.md",
"legacy_path": "raw/official-docs/functional-tx-arrow-kt-resource-docs.md",
"sha256": "676dcf1578614582c3aa6f0eed8f8067585d5a65ebda98fe9a6ab07bf7f0c526"
},
{
"canonical_path": "vault/20-evidence/official-docs/gdpr-cryptographic-erasure-envelope-key-pattern.md",
"legacy_path": "raw/official-docs/gdpr-cryptographic-erasure-envelope-key-pattern.md",
"sha256": "774a09d7de7af300f7ff175eb26f3b96a0ea274322d0a21cab52c61e55a02c56"
},
{
"canonical_path": "vault/20-evidence/official-docs/github-dependency-review-action.md",
"legacy_path": "raw/official-docs/github-dependency-review-action.md",
"sha256": "d94e9757cbb41e440808beea960e8248f65d468ad8fe8447f1edf4c79671eaae"
},
{
"canonical_path": "vault/20-evidence/official-docs/github-webhook-signature.md",
"legacy_path": "raw/official-docs/github-webhook-signature.md",
"sha256": "e8492c9cfd1766ec8da73bff5b78a9b994cb87c6b1d9b9178bb75b64fd54e8c8"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-122-resource-names.md",
"legacy_path": "raw/official-docs/google-aip-122-resource-names.md",
"sha256": "5961385f5ad8d14233e2f23c2af20f334b7949f9a3733a5c74a0ee546c827a39"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-127-http-transcoding.md",
"legacy_path": "raw/official-docs/google-aip-127-http-transcoding.md",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-132-list-method.md",
"legacy_path": "raw/official-docs/google-aip-132-list-method.md",
"sha256": "69b0a52aa29c0a0e1df6ea7d82dd7e88290a6e1550a1e0b0ed211a11aa6e1e5a"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-136-custom-methods.md",
"legacy_path": "raw/official-docs/google-aip-136-custom-methods.md",
"sha256": "8e3e36bf6d2efa49b2e19abe1cb9ba6b3401505938e15f000c821a728d5ac6a7"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-148-standard-fields.md",
"legacy_path": "raw/official-docs/google-aip-148-standard-fields.md",
"sha256": "ef17e907a5b19459651e091baa5d6ec55b982c7ee37d1eb3d80386fede7338f7"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-151-long-running-operations.md",
"legacy_path": "raw/official-docs/google-aip-151-long-running-operations.md",
"sha256": "2fb75f4970d73d6e88d783830b131b23342768134a784408dc823945a3a9a129"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-158-pagination.md",
"legacy_path": "raw/official-docs/google-aip-158-pagination.md",
"sha256": "3851449eb2e3ce5942f6847dfb064ab0a4ce2915a11ae6d871f2b51619f6f32b"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-160-filtering.md",
"legacy_path": "raw/official-docs/google-aip-160-filtering.md",
"sha256": "7de03cc4af22017454b5f2cea996b91eb73d0bc8b70f579b331f651126c64fbc"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-185-resource-versioning.md",
"legacy_path": "raw/official-docs/google-aip-185-resource-versioning.md",
"sha256": "55351af6887811ecdc8111402a31a1f8f14f85c2ecb6639d6fea167f7d68dcb4"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-233-batch-create.md",
"legacy_path": "raw/official-docs/google-aip-233-batch-create.md",
"sha256": "57b356726be346abbbfffe7a30d2ff7241e952d542e2f94e21eeb3e4d3fadde2"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-antigravity-hooks.md",
"legacy_path": "raw/official-docs/google-antigravity-hooks.md",
"sha256": "195818784f71d546881b41acf12d80af8e0728da0a9d1d58558cf97ccbe5af5f"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-api-error-format.md",
"legacy_path": "raw/official-docs/google-api-error-format.md",
"sha256": "ceeb93ddcf71891a2d5c659fe22bc1bd0b8785999abba9877f6b4a6bc194b80e"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-java-format-readme.md",
"legacy_path": "raw/official-docs/google-java-format-readme.md",
"sha256": "667b22463bb880ec076e9c503d5ce62f72fb83ff5b382adece1c64c0466c20e1"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth-app-verification-state-overview-official.md",
"legacy_path": "raw/official-docs/google-oauth-app-verification-state-overview-official.md",
"sha256": "6ed1c9e85ca659fd87200c236c1feb17b5111140001f9b3f261a8b92268ff73d"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth-manage-app-audience-official.md",
"legacy_path": "raw/official-docs/google-oauth-manage-app-audience-official.md",
"sha256": "6fc0e3e05a3d2360ccd15144cc521f098c98499e6c1063a8dac053a49f5522d1"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth2-client-application-types-official.md",
"legacy_path": "raw/official-docs/google-oauth2-client-application-types-official.md",
"sha256": "526a9745b27db37cd3b5d983301fbebc11bdb6d24e538dbd074b32ed110609d5"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth2-policies-environment-separation-official.md",
"legacy_path": "raw/official-docs/google-oauth2-policies-environment-separation-official.md",
"sha256": "daf06aae67526a254f25ce95acb7f4da090ff9f14c2414eb085c19e7a74c6ed7"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth2-redirect-uri-validation-official.md",
"legacy_path": "raw/official-docs/google-oauth2-redirect-uri-validation-official.md",
"sha256": "0f9d73bfd3301421882ffa7c329e33825390a9a3b67fd45a3efbebedafbb197e"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth2-web-server-flow-official.md",
"legacy_path": "raw/official-docs/google-oauth2-web-server-flow-official.md",
"sha256": "b810cdead8a4cd8cddab536e3888de0955b15069feeec450bcd1c9d3340f207f"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oidc-discovery-spec.md",
"legacy_path": "raw/official-docs/google-oidc-discovery-spec.md",
"sha256": "ec5807ee2d0c370958bf26c7272a71ebba0a871ef3a75ce78ff2d1cf39f0e5f3"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-openid-connect-oidc.md",
"legacy_path": "raw/official-docs/google-openid-connect-oidc.md",
"sha256": "771077d175fe2792b81b6624fdcee4cc9f97e1fcf2bfa965b1dabf4fd5a5d9b2"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-sre-workbook-on-call-monitoring.md",
"legacy_path": "raw/official-docs/google-sre-workbook-on-call-monitoring.md",
"sha256": "5facbde329d09bfe0f56b37721bf29c532d72ef0d7ba67a70fd133e12e03d0e6"
},
{
"canonical_path": "vault/20-evidence/official-docs/governance-archunit-official.md",
"legacy_path": "raw/official-docs/governance-archunit-official.md",
"sha256": "3a58a0a4144b3ddd5f6fcc31bfc1511c5fb629f4e82b980ce2c0c84258e165aa"
},
{
"canonical_path": "vault/20-evidence/official-docs/gradle-java-library-api-vs-implementation.md",
"legacy_path": "raw/official-docs/gradle-java-library-api-vs-implementation.md",
"sha256": "15929fccfdba2ff69d8aa661c623531a6523db71507b13a6e927d3ba450552e2"
},
{
"canonical_path": "vault/20-evidence/official-docs/gradle-reproducible-archives-working-with-files.md",
"legacy_path": "raw/official-docs/gradle-reproducible-archives-working-with-files.md",
"sha256": "2ca4541b5ab1315936f19c8529a41f364b1e00361331f8d29bb739d72237d654"
},
{
"canonical_path": "vault/20-evidence/official-docs/graphql-errors-spec.md",
"legacy_path": "raw/official-docs/graphql-errors-spec.md",
"sha256": "574fedd83bccdfa1eb1b145e18080c1316998f175c70928b4f639716c6ed56a5"
},
{
"canonical_path": "vault/20-evidence/official-docs/hexagonal-cockburn-wikipedia-summary.md",
"legacy_path": "raw/official-docs/hexagonal-cockburn-wikipedia-summary.md",
"sha256": "057c6b946f768861af80909adbb6b46361710f29c8265d47f97c5f1730bbbb15"
},
{
"canonical_path": "vault/20-evidence/official-docs/hexagonal-thombergs-buckpal-github.md",
"legacy_path": "raw/official-docs/hexagonal-thombergs-buckpal-github.md",
"sha256": "e93c362b4a26504c2d80f21cf543ff7ff45f99ccd6e26403d45350813e03212b"
},
{
"canonical_path": "vault/20-evidence/official-docs/hibernate-slow-query-log-official.md",
"legacy_path": "raw/official-docs/hibernate-slow-query-log-official.md",
"sha256": "51ba0996fc95d789f4a225ae2b08d9b9ae751fd5c24342dec46a21a7b5af0109"
},
{
"canonical_path": "vault/20-evidence/official-docs/iana-media-types-registry.md",
"legacy_path": "raw/official-docs/iana-media-types-registry.md",
"sha256": "e12877d02048eb7ca0d5a6a1f6f6ac31c0d66a0f32f45eacf4a369243409cab2"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-aws-lambda-powertools.md",
"legacy_path": "raw/official-docs/idempotency-aws-lambda-powertools.md",
"sha256": "085efded25d705d9bf715af4d8a6bbd6205808c0863b2a0ebb120a9a81fe31d9"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-ietf-draft.md",
"legacy_path": "raw/official-docs/idempotency-ietf-draft.md",
"sha256": "1e7e98ce77d808ca87a0317cfe40c5dd35345fcb1ead8ec1d9f1d0a6d9cc0d0e"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-no-api-level-github-rest.md",
"legacy_path": "raw/official-docs/idempotency-no-api-level-github-rest.md",
"sha256": "d178b2cf2565ef69f69be93121edd145613e04c2e4c80b2d9a12580bfc1fd5f7"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-paypal-docs.md",
"legacy_path": "raw/official-docs/idempotency-paypal-docs.md",
"sha256": "22566684688a999a3d651f7a01bb3cc9b1485d82c8b159408a3b6a6c7562a7e0"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-square-api.md",
"legacy_path": "raw/official-docs/idempotency-square-api.md",
"sha256": "aab3a53c94b9709138a922e3c0e3db2e51b52f5056aa339a67adef22dfd4c8ae"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-stripe-api-ref.md",
"legacy_path": "raw/official-docs/idempotency-stripe-api-ref.md",
"sha256": "739b20a185c4e07ff4ae0219df201a3d4efc8c38660d16b09048bd5250460e4e"
},
{
"canonical_path": "vault/20-evidence/official-docs/istio-mtls-cert-rotation-official.md",
"legacy_path": "raw/official-docs/istio-mtls-cert-rotation-official.md",
"sha256": "ae7f5609ecc38e556a82092c5b875507e0015bcd23224b9274a9d62b6b05bada"
},
{
"canonical_path": "vault/20-evidence/official-docs/jdk-files-createtempfile.md",
"legacy_path": "raw/official-docs/jdk-files-createtempfile.md",
"sha256": "50bc44b909418ae38212b1e54110d6191cd3803402f877856e88561776ba8980"
},
{
"canonical_path": "vault/20-evidence/official-docs/jdk21-threadpoolexecutor-javadoc.md",
"legacy_path": "raw/official-docs/jdk21-threadpoolexecutor-javadoc.md",
"sha256": "d841593bfdf7fa1e9043d299de02039cb4750e506e25e89494b9222553f16727"
},
{
"canonical_path": "vault/20-evidence/official-docs/json-api-errors-spec.md",
"legacy_path": "raw/official-docs/json-api-errors-spec.md",
"sha256": "c3d318c43f219c876b4aaddff1647a2fd758520b0a2dcf049083b6761d1244e7"
},
{
"canonical_path": "vault/20-evidence/official-docs/jsonapi-pagination-format.md",
"legacy_path": "raw/official-docs/jsonapi-pagination-format.md",
"sha256": "bd21d6799e26596645a6ddb3d8f7f56a2dc9a4b0939c24afa5a80031f97ce1ed"
},
{
"canonical_path": "vault/20-evidence/official-docs/junit5-conditional-env-variable-user-guide.md",
"legacy_path": "raw/official-docs/junit5-conditional-env-variable-user-guide.md",
"sha256": "49537bc056cd80aaca8bff492df709decc92ea42190bbe3cf3ed3807e730784d"
},
{
"canonical_path": "vault/20-evidence/official-docs/jwks-keycloak-key-rotation-active-passive.md",
"legacy_path": "raw/official-docs/jwks-keycloak-key-rotation-active-passive.md",
"sha256": "4a96be022a435cd8390eaa2794705ea77405cf75b07d64fd8a46b0be9a2215f2"
},
{
"canonical_path": "vault/20-evidence/official-docs/jwks-nimbus-jose-jwksourcebuilder-spring-integration.md",
"legacy_path": "raw/official-docs/jwks-nimbus-jose-jwksourcebuilder-spring-integration.md",
"sha256": "0c96616a887830c231f9918b788611b65e17d80e26fc7d430eb99515951ba5fb"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-application-security-checklist-readonly-fs.md",
"legacy_path": "raw/official-docs/k8s-application-security-checklist-readonly-fs.md",
"sha256": "27c2b1ebdee9e175fc4946992702f53ca5b8c2080333325de6f3fd88d3c50d69"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-configure-probes-task-page.md",
"legacy_path": "raw/official-docs/k8s-configure-probes-task-page.md",
"sha256": "42761b09b2dfcc9340bb05053568f146cc4c79c7a089691c187632027cee30c5"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-logging-architecture-kubernetes-official.md",
"legacy_path": "raw/official-docs/k8s-logging-architecture-kubernetes-official.md",
"sha256": "624fc768f9336e172953dbbb031254e28d7626efcfb693a741f0cb6b4a6b343b"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-network-policy-official.md",
"legacy_path": "raw/official-docs/k8s-network-policy-official.md",
"sha256": "35ad5be2044d1315375ed30553a8f37dab34c0fb1adb96a3f959f794fd59f522"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-pod-lifecycle-probes-concept.md",
"legacy_path": "raw/official-docs/k8s-pod-lifecycle-probes-concept.md",
"sha256": "151f57bf9c6d3fb4c7263bafae260babe4cbc293dd93ae4f60e0d0840a24b384"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-pod-security-standards-restricted.md",
"legacy_path": "raw/official-docs/k8s-pod-security-standards-restricted.md",
"sha256": "d2bfe8c5199436bfc51d189daa8d9cfd8a0c297ad2e6e3d67361068671958e19"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-2500-hostname-v2-release-official.md",
"legacy_path": "raw/official-docs/keycloak-2500-hostname-v2-release-official.md",
"sha256": "152c4aae5fd51c1c3ef9a439d41f188983c0acfcc29cb06a35d80a66a03c5578"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-2600-hostname-v1-removed-official.md",
"legacy_path": "raw/official-docs/keycloak-2600-hostname-v1-removed-official.md",
"sha256": "f9c287f824bcc414982445036c8af534488cb42512e5136889505bfd9596ef8e"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-account-console-unlink-lockout-guard-official.md",
"legacy_path": "raw/official-docs/keycloak-account-console-unlink-lockout-guard-official.md",
"sha256": "9c9cd3142af9bc404615fc93d6d1bc5bede9267b3782a34d0501c09d037d8140"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-authorization-services-realm-client-roles.md",
"legacy_path": "raw/official-docs/keycloak-authorization-services-realm-client-roles.md",
"sha256": "2e036227a3063c9d9943cf0b565216d2ff72e05b437bf94078c936b7ea43afd8"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-client-initiated-account-linking.md",
"legacy_path": "raw/official-docs/keycloak-client-initiated-account-linking.md",
"sha256": "51d46ae463e7b84cbd09daf1d557fbfd83f0b0c4f82f759beb1277f56079e7ff"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-client-pkce-method-enforcement-official.md",
"legacy_path": "raw/official-docs/keycloak-client-pkce-method-enforcement-official.md",
"sha256": "39d6ae6b1a8315f760dab0992f9f3ec7676b84e78789dbcc49244ac023443ca3"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-configuring-database.md",
"legacy_path": "raw/official-docs/keycloak-configuring-database.md",
"sha256": "9fb786c412509004d252004453fa5029ad20ff9f92786098c35859206e7e71f2"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-first-broker-login-flow.md",
"legacy_path": "raw/official-docs/keycloak-first-broker-login-flow.md",
"sha256": "a24feb8d39f0ec85bcc7a60f49c72d235b0ad1c7464c9745fe922571df687726"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-first-broker-login-verify-authenticators-official.md",
"legacy_path": "raw/official-docs/keycloak-first-broker-login-verify-authenticators-official.md",
"sha256": "414fab4e28fb2faffb07a094a3c69eeec6b2067e83bfc5ad8eb51d12f91f1268"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-first-login-flow.md",
"legacy_path": "raw/official-docs/keycloak-first-login-flow.md",
"sha256": "eab40f7eaa3a975472e13885f528fccd67f515e76ab0a3c661b068d28e393702"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-getting-started-docker.md",
"legacy_path": "raw/official-docs/keycloak-getting-started-docker.md",
"sha256": "d1c353e69507cd70adf4c90155c51ae8b109d8abe9263e0fbbb1e56d5e950180"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-google-idp-setup.md",
"legacy_path": "raw/official-docs/keycloak-google-idp-setup.md",
"sha256": "b7a1829b81c4b2282c107128e48404d8449ba457acd27ac1901d148d4b563b9f"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-health-checks.md",
"legacy_path": "raw/official-docs/keycloak-health-checks.md",
"sha256": "1ab06655636846c41a0935752c9016ef05fa7a41717f9e22e202e481db07f852"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-hostname-configuration.md",
"legacy_path": "raw/official-docs/keycloak-hostname-configuration.md",
"sha256": "761a5e0c979f98ffa4bb64b31e802fd8595e10e3ced61aa2e7d754d51bf51c4d"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-broker-spi.md",
"legacy_path": "raw/official-docs/keycloak-identity-broker-spi.md",
"sha256": "cbca1243e5d282841368e1ef5b3604950b0bb6f950e2b52617290969f66bca70"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-brokering-overview-official.md",
"legacy_path": "raw/official-docs/keycloak-identity-brokering-overview-official.md",
"sha256": "6252cadab6892e3b03e75628f8045d18da9799c5b66ecf00af3e1c7483b137d5"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-provider-mappers.md",
"legacy_path": "raw/official-docs/keycloak-identity-provider-mappers.md",
"sha256": "81f8882872b46ecb76fb6fa8b70a2d6b19b060f6435f31b4bf87d837fb0dd4b1"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-provider-redirector-default-idp-official.md",
"legacy_path": "raw/official-docs/keycloak-identity-provider-redirector-default-idp-official.md",
"sha256": "7d96efe0ad7928d052e569154845d92b91ad84f1c16c20bf16b19198678d6609"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-provider-sync-mode-official.md",
"legacy_path": "raw/official-docs/keycloak-identity-provider-sync-mode-official.md",
"sha256": "c28b8b52638de1e8dd413cca6fbc8f8529ce24a898bc57fc85214d89a4eff594"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-provider-trust-email-official.md",
"legacy_path": "raw/official-docs/keycloak-identity-provider-trust-email-official.md",
"sha256": "d676e8acf52ef6df847e9964e918f183a2dd7e8ce0f34c1312ac1a9a612fed9b"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-idp-hide-on-login-page-toggle-official.md",
"legacy_path": "raw/official-docs/keycloak-idp-hide-on-login-page-toggle-official.md",
"sha256": "db69e45fca3e64be140c6640bf39361a0ad487b9efee8787d1ccce23c01c442a"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-idp-hint-client-suggested-official.md",
"legacy_path": "raw/official-docs/keycloak-idp-hint-client-suggested-official.md",
"sha256": "25cea22d6ada8f6ea8a61763780d4af21bcc0ffad0a0c8cc43b1f37da688901f"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-import-export-realms.md",
"legacy_path": "raw/official-docs/keycloak-import-export-realms.md",
"sha256": "870878947bf4c88a740f7b5bd74dfeeb215545a59130121cb6e1ce1dd2562f06"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-oidc-logout-endpoint-official.md",
"legacy_path": "raw/official-docs/keycloak-oidc-logout-endpoint-official.md",
"sha256": "bd7c8e8a9149dd0e6c67e64ad717da51ac8eddabe9906dff4df277e57cc0522c"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-refresh-token-rotation-reuse-admin-official.md",
"legacy_path": "raw/official-docs/keycloak-refresh-token-rotation-reuse-admin-official.md",
"sha256": "c6feb9fd992fa4a9d48e2bd2dd11838db92f29c23f13349e85a23dd56e3d251c"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-refresh-token-rotation-sessions-official.md",
"legacy_path": "raw/official-docs/keycloak-refresh-token-rotation-sessions-official.md",
"sha256": "b3dad9d3418a25f71955150887f75bd3a53a9e3185834f5a1601b033376c2869"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-reverseproxy-official.md",
"legacy_path": "raw/official-docs/keycloak-reverseproxy-official.md",
"sha256": "384b6f21c6df9ae66302088c4617fd45f1303d4a7d4b9e32e87df51e6d6ba259"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-securing-apps-overview-official.md",
"legacy_path": "raw/official-docs/keycloak-securing-apps-overview-official.md",
"sha256": "8122a52a63a634bd68e4a1fe9230177b1a80e798929e6f60e78f0a290847520f"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-server-containers-docker.md",
"legacy_path": "raw/official-docs/keycloak-server-containers-docker.md",
"sha256": "7fa1bd88226d2646fcf776dcf374ee040e76c14633262080e39c89bc4ad1792f"
},
{
"canonical_path": "vault/20-evidence/official-docs/kubernetes-exit-code-observability-termination.md",
"legacy_path": "raw/official-docs/kubernetes-exit-code-observability-termination.md",
"sha256": "5653e6d9b6d8670fbd4dd920cea97b77d9e43167c6cc06a7e68796e2e85cbe4a"
},
{
"canonical_path": "vault/20-evidence/official-docs/kubernetes-pod-lifecycle-termination.md",
"legacy_path": "raw/official-docs/kubernetes-pod-lifecycle-termination.md",
"sha256": "545fb056a18ffa72bef29c1aaea67ce41b1450c2dad63bde0798189c318698c7"
},
{
"canonical_path": "vault/20-evidence/official-docs/layer-first-baeldung-clean-architecture-spring-boot.md",
"legacy_path": "raw/official-docs/layer-first-baeldung-clean-architecture-spring-boot.md",
"sha256": "2edba99208751e300bea9ca6978d174ba17acd1380339a17ab9a18bf7e73f482"
},
{
"canonical_path": "vault/20-evidence/official-docs/lock-postgres-advisory-locks.md",
"legacy_path": "raw/official-docs/lock-postgres-advisory-locks.md",
"sha256": "d26a74be4087f99fa13eb57726c8c01061db5b42ff1a8b24be7f069d2f963ca8"
},
{
"canonical_path": "vault/20-evidence/official-docs/lock-shedlock-issue-899-non-scheduler-use.md",
"legacy_path": "raw/official-docs/lock-shedlock-issue-899-non-scheduler-use.md",
"sha256": "63195beb374b5b896d753c69b3934f750f10f308dc64b5b91643c2812d64165b"
},
{
"canonical_path": "vault/20-evidence/official-docs/lock-shedlock-readme.md",
"legacy_path": "raw/official-docs/lock-shedlock-readme.md",
"sha256": "f8936cc2090f79ca96e9c83505f34a9a3b9e56dcf11b9e477d166778e041ccbe"
},
{
"canonical_path": "vault/20-evidence/official-docs/lock-spring-integration-lock-registry.md",
"legacy_path": "raw/official-docs/lock-spring-integration-lock-registry.md",
"sha256": "c729c86315bc7d08e1e8b7365bbc05bb9612e5c9906f6792c677dca2c8c9049a"
},
{
"canonical_path": "vault/20-evidence/official-docs/log-ecs-schema-elastic-official.md",
"legacy_path": "raw/official-docs/log-ecs-schema-elastic-official.md",
"sha256": "1cbe7f87ab03f6a6325e99631887a95dd536904462d4131e8324706a06becb31"
},
{
"canonical_path": "vault/20-evidence/official-docs/log-logback-mask-pattern-converter-official.md",
"legacy_path": "raw/official-docs/log-logback-mask-pattern-converter-official.md",
"sha256": "3a57ffabb165a9f8c034cb60d9f41c9f2c698dd703c23dd6a2986341c3559157"
},
{
"canonical_path": "vault/20-evidence/official-docs/log-otel-log-data-model-spec.md",
"legacy_path": "raw/official-docs/log-otel-log-data-model-spec.md",
"sha256": "0a9b78757e0e68c349be4e2ab30bdfe6c8fefaf174b0d70c6ff29149d0368a14"
},
{
"canonical_path": "vault/20-evidence/official-docs/lombok-builder-data-features-official.md",
"legacy_path": "raw/official-docs/lombok-builder-data-features-official.md",
"sha256": "e10f5d9ca5370e6896d5b09df72d793f223f464ad9aab7dbb87db80359b44dfb"
},
{
"canonical_path": "vault/20-evidence/official-docs/lychee-link-checker.md",
"legacy_path": "raw/official-docs/lychee-link-checker.md",
"sha256": "091ff0c9f8a77d61cd9edd0658be45c88431e8715f346831b3aa973100bb1870"
},
{
"canonical_path": "vault/20-evidence/official-docs/mapstruct-generated-annotation-official.md",
"legacy_path": "raw/official-docs/mapstruct-generated-annotation-official.md",
"sha256": "c0fc0e444cc5d8c403401bbcb8b84b8120e40471703f1a3e8ae7e6731a7d1690"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-google-ewaschuk-philosophy-on-alerting.md",
"legacy_path": "raw/official-docs/metric-google-ewaschuk-philosophy-on-alerting.md",
"sha256": "699f718c33bd33e40ddff0aa508dc42a825f2126d97f5e9ed380d653d4dbc152"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-google-sre-slo-burn-rate.md",
"legacy_path": "raw/official-docs/metric-google-sre-slo-burn-rate.md",
"sha256": "e2e3f4db497030d1395cba6026b9e9dfb4ce0015ecb1006eae0ca3b79e70fcb1"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-google-sre-workbook-on-call.md",
"legacy_path": "raw/official-docs/metric-google-sre-workbook-on-call.md",
"sha256": "60632cf319b250616d94af5738860a3c8ce65a728f66b1355eaa0a0ab0e936da"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-micrometer-high-cardinality-tags-detector.md",
"legacy_path": "raw/official-docs/metric-micrometer-high-cardinality-tags-detector.md",
"sha256": "abab0de729022f6d93cafda19391aaab2783909b3b55fa8a1432d35a34d7e2ec"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-micrometer-histogram-percentile-concepts.md",
"legacy_path": "raw/official-docs/metric-micrometer-histogram-percentile-concepts.md",
"sha256": "86c4b28b40527f733354deac4cde9ab174f9540ebb7bb3eef09c3ab09534321c"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-micrometer-naming-convention-official.md",
"legacy_path": "raw/official-docs/metric-micrometer-naming-convention-official.md",
"sha256": "5c9d0fd2f40b5a188f376f9be96ba54f1058b6918e35773e1a0251a09fb3de07"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-otel-metrics-data-model-spec.md",
"legacy_path": "raw/official-docs/metric-otel-metrics-data-model-spec.md",
"sha256": "6d950e5b5199fbe2833a6851a7ddcc2fa2bd418642d3b343d114555187a0163e"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-prometheus-histograms-vs-summaries-practices.md",
"legacy_path": "raw/official-docs/metric-prometheus-histograms-vs-summaries-practices.md",
"sha256": "dab558cad0e1377d0b549160d3addbe1c5e26fe4c08789bfa4d67afcba367d4d"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-prometheus-label-cardinality-best-practices.md",
"legacy_path": "raw/official-docs/metric-prometheus-label-cardinality-best-practices.md",
"sha256": "b3196ca58af2a8fa6bfc39e95a1092f5b0ec0231193dad1c810d18e47d67dcc8"
},
{
"canonical_path": "vault/20-evidence/official-docs/micrometer-context-propagation-official.md",
"legacy_path": "raw/official-docs/micrometer-context-propagation-official.md",
"sha256": "d5be88499a81ea6352c3f8818f521f91e665c4d9ae93521a284e9348bf86365d"
},
{
"canonical_path": "vault/20-evidence/official-docs/micrometer-context-propagation-purpose-thread-local-accessor.md",
"legacy_path": "raw/official-docs/micrometer-context-propagation-purpose-thread-local-accessor.md",
"sha256": "4dbc3779bde9702e8aa4e2e2f0b695efeebd8c607bdcd30315a67a752cdaca85"
},
{
"canonical_path": "vault/20-evidence/official-docs/microservices-io-transactional-outbox.md",
"legacy_path": "raw/official-docs/microservices-io-transactional-outbox.md",
"sha256": "d3112bb0be3fa544f116d356d5cffc07dc92b484b8a55988659c415a2d1f773b"
},
{
"canonical_path": "vault/20-evidence/official-docs/migration-atlas-schema-as-code.md",
"legacy_path": "raw/official-docs/migration-atlas-schema-as-code.md",
"sha256": "04fce16e8199f964f59fbc882aa6f6da128afea93182e07ce0eb14a2b32fe847"
},
{
"canonical_path": "vault/20-evidence/official-docs/migration-flyway-official-concepts-and-repair.md",
"legacy_path": "raw/official-docs/migration-flyway-official-concepts-and-repair.md",
"sha256": "c67961a16c2221086eecbb4d0ee7be153fe52dd0537e47a8b756efb04a261c21"
},
{
"canonical_path": "vault/20-evidence/official-docs/migration-k8s-init-container-job-pattern.md",
"legacy_path": "raw/official-docs/migration-k8s-init-container-job-pattern.md",
"sha256": "d7472ea22afe194d60a47c442b41d26c9156491ef59c8467fb44a0e94e962e6c"
},
{
"canonical_path": "vault/20-evidence/official-docs/migration-liquibase-official-changelog-xml-yaml.md",
"legacy_path": "raw/official-docs/migration-liquibase-official-changelog-xml-yaml.md",
"sha256": "7a9d361d00cbab86c6574537579f06ba959048379f3e80689df6eb7c0cb5ce13"
},
{
"canonical_path": "vault/20-evidence/official-docs/modulith-spring-official-doc.md",
"legacy_path": "raw/official-docs/modulith-spring-official-doc.md",
"sha256": "549f2b45a0a8871110d938a50298007361ec2bf2c3d31df21eba0ebc7a103c9e"
},
{
"canonical_path": "vault/20-evidence/official-docs/multitenancy-aws-saas-tenant-isolation-whitepaper.md",
"legacy_path": "raw/official-docs/multitenancy-aws-saas-tenant-isolation-whitepaper.md",
"sha256": "0d4efeef18e9fa5b3fa29985f29af35db7b00d623649ed4551624428ebf44a21"
},
{
"canonical_path": "vault/20-evidence/official-docs/multitenancy-azure-architecture-patterns.md",
"legacy_path": "raw/official-docs/multitenancy-azure-architecture-patterns.md",
"sha256": "6df2d924bc0106f71a5c9fdae1d715978de2a198035d7b60940d92bc0633bfbf"
},
{
"canonical_path": "vault/20-evidence/official-docs/multitenancy-hibernate-user-guide.md",
"legacy_path": "raw/official-docs/multitenancy-hibernate-user-guide.md",
"sha256": "38017d1028d4926e33c0fd2ea741983f2498f1742c5985cbe365cea6ea784d92"
},
{
"canonical_path": "vault/20-evidence/official-docs/multitenancy-microservices-io-pattern.md",
"legacy_path": "raw/official-docs/multitenancy-microservices-io-pattern.md",
"sha256": "09ee572c503ea6a978c7ef75f96b7055874cc1261f1c7c003c9352f3c49a44cc"
},
{
"canonical_path": "vault/20-evidence/official-docs/mysql-innodb-transaction-isolation-official.md",
"legacy_path": "raw/official-docs/mysql-innodb-transaction-isolation-official.md",
"sha256": "edaf5c81ccae2eb8d7d42aa604e697c8ac036b51b53ab6fe6a7ef9ecbb4c4a68"
},
{
"canonical_path": "vault/20-evidence/official-docs/nanoid-spec.md",
"legacy_path": "raw/official-docs/nanoid-spec.md",
"sha256": "76a1c7d106b65ca4d7cba9b18a85625781aec7775d3aa1343a230919e198b36c"
},
{
"canonical_path": "vault/20-evidence/official-docs/nginx-auth-request-module-official.md",
"legacy_path": "raw/official-docs/nginx-auth-request-module-official.md",
"sha256": "b3830011fe407403230f88b5e90001412b13009f28905f8bddf5bc6a0f79dddf"
},
{
"canonical_path": "vault/20-evidence/official-docs/nginx-client-max-body-size.md",
"legacy_path": "raw/official-docs/nginx-client-max-body-size.md",
"sha256": "0b5b8cbf7f4fd7b64a3f837223182c88ccff5c1e9132208ff83e3250cc6a1c34"
},
{
"canonical_path": "vault/20-evidence/official-docs/nginx-core-module-location-internal-official.md",
"legacy_path": "raw/official-docs/nginx-core-module-location-internal-official.md",
"sha256": "0b1434d16e70b4d925e839bdb4a1e0e2397e1c467625bbc59bb997c7b348ab03"
},
{
"canonical_path": "vault/20-evidence/official-docs/ngrok-http-tunnel-official.md",
"legacy_path": "raw/official-docs/ngrok-http-tunnel-official.md",
"sha256": "7bfaad0b62e03d399c998b93bfdb9193bed520501383b52e8dfe72bed973e593"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth-v2-1-draft-ietf.md",
"legacy_path": "raw/official-docs/oauth-v2-1-draft-ietf.md",
"sha256": "37f325f9abfc1068d544a0d1d6e4d4f3bf028c5c31f494fcab076fec3ae7d407"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-browser-based-apps-ietf-draft.md",
"legacy_path": "raw/official-docs/oauth2-browser-based-apps-ietf-draft.md",
"sha256": "1fd490ea62c30e8abeea4173a7006a68bc6d1f04a601e6e9a10a31618b83c720"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-pkce-rfc-7636.md",
"legacy_path": "raw/official-docs/oauth2-pkce-rfc-7636.md",
"sha256": "3b012a26a5bda5ddf80293f1bae4a40eaf0a659577c4e61f785127af4c549379"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-behaviour-cookie-vs-bearer-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-behaviour-cookie-vs-bearer-official.md",
"sha256": "3d6bdc77412491feb280f767ac3b94125eca7d75d3fed4d678d05ac719c26318"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-cookie-redirect-flags-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-cookie-redirect-flags-official.md",
"sha256": "d81fd633dad9422f3b877bd206fb367981a108672b007243e5c7c1b02315e256"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-endpoints-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-endpoints-official.md",
"sha256": "baabe9a14c9685d4474ef430288c5ed00bb05811c4ed6aa72fadbb743e9eec99"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-endpoints-signout-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-endpoints-signout-official.md",
"sha256": "0528ee47c1ff287c2ea7baa24bd6e04ddceef25aba54f395080b5ffb113f53f0"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-keycloak-oidc-provider-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-keycloak-oidc-provider-official.md",
"sha256": "0897a73d1adc208ac50b9f3ac701b004cefdd57357af295746eff90f6f4db54a"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-nginx-integration-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-nginx-integration-official.md",
"sha256": "e0f083b9aa889cc8376f0ca26f2eeb04c000ac1b8106627f38f59fbbc23ec713"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-overview-config-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-overview-config-official.md",
"sha256": "e17a9c332bd0c0c073bd193e6617c6d2ce94f766438fd022bcecf67adf1fe708"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-session-storage-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-session-storage-official.md",
"sha256": "f6b22b1ae4a60f4d1682921a86b772f6c45b13d65729ac289112abbf0dc47c40"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-token-revocation-rfc-7009.md",
"legacy_path": "raw/official-docs/oauth2-token-revocation-rfc-7009.md",
"sha256": "af6e633d3bb2da670a281d4344d982fbcb933279700464d28c91118df95ba26d"
},
{
"canonical_path": "vault/20-evidence/official-docs/oidc-client-ts-library.md",
"legacy_path": "raw/official-docs/oidc-client-ts-library.md",
"sha256": "331acddca1ec0d394822440e088cc2207fe05b11de12c83d3dc653b5878062f6"
},
{
"canonical_path": "vault/20-evidence/official-docs/onion-palermo-original-2008.md",
"legacy_path": "raw/official-docs/onion-palermo-original-2008.md",
"sha256": "087f9cda0d64d697395bd485ff6001b21871c961e6622b566e830681a3b2d36f"
},
{
"canonical_path": "vault/20-evidence/official-docs/openapi-spec-3-1-0.md",
"legacy_path": "raw/official-docs/openapi-spec-3-1-0.md",
"sha256": "e13ac1165fe3c789afd67fce4207844f2c384c4921401982e9a5a25bd740bd43"
},
{
"canonical_path": "vault/20-evidence/official-docs/openid-connect-core-id-token-validation.md",
"legacy_path": "raw/official-docs/openid-connect-core-id-token-validation.md",
"sha256": "8a41b2f034b51163e8f4fc3f060b031b6251d88ef1d3517789222f901ee9709f"
},
{
"canonical_path": "vault/20-evidence/official-docs/openjdk-jdk-8196595-container-support.md",
"legacy_path": "raw/official-docs/openjdk-jdk-8196595-container-support.md",
"sha256": "77c472057cfffcbae300e4ad99be573e26969e9c8f117c9ac79a026070e13704"
},
{
"canonical_path": "vault/20-evidence/official-docs/opentelemetry-http-semconv-migration-guide.md",
"legacy_path": "raw/official-docs/opentelemetry-http-semconv-migration-guide.md",
"sha256": "351a128937c648b0c6b12386b83bdf0271289b0c8392af0099201dd7d916c68a"
},
{
"canonical_path": "vault/20-evidence/official-docs/opentelemetry-versioning-stability-spec.md",
"legacy_path": "raw/official-docs/opentelemetry-versioning-stability-spec.md",
"sha256": "f18e998f6892105fe4ee716c85bf1a16905d77a1463062fcff0e6c3167181a14"
},
{
"canonical_path": "vault/20-evidence/official-docs/otel-exceptions-semantic-conventions.md",
"legacy_path": "raw/official-docs/otel-exceptions-semantic-conventions.md",
"sha256": "6ce9fa02aa4a34ab3cb89702138ecb06eee72ef322da457384e37a0d1b7c0493"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbound-openfeign-declarative-client.md",
"legacy_path": "raw/official-docs/outbound-openfeign-declarative-client.md",
"sha256": "50074c56083065f46be4e0829c82850822deded4086c1cfdfb3f0bdee72b968c"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbound-resilience4j-vs-spring-retry.md",
"legacy_path": "raw/official-docs/outbound-resilience4j-vs-spring-retry.md",
"sha256": "8ca89eba030d17cc52ffb31eb472a4a20970b23055c924b33ef5e780f4be3804"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbound-spring-restclient-baseline.md",
"legacy_path": "raw/official-docs/outbound-spring-restclient-baseline.md",
"sha256": "281bcd06e09c6b870e0970dbc53210379cdb7c41b5b8eb77dabcd35f9ac865cd"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbound-webclient-vs-restclient-spring.md",
"legacy_path": "raw/official-docs/outbound-webclient-vs-restclient-spring.md",
"sha256": "6e432cf4183987b169ed8e843a6a4fbce27b17f187c47238ae8953455499add4"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbox-debezium-official-docs.md",
"legacy_path": "raw/official-docs/outbox-debezium-official-docs.md",
"sha256": "460a4dd21b9108eabec70504a17f4f1abecc3362e69e68faef2c53c53d07c260"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbox-skip-locked-microservices-io.md",
"legacy_path": "raw/official-docs/outbox-skip-locked-microservices-io.md",
"sha256": "b24e5b0e95ba479fa9a36d69412d2af9110aa6f91017a931b78d89e4725e563a"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-authz-permission-model-abac-rbac.md",
"legacy_path": "raw/official-docs/owasp-authz-permission-model-abac-rbac.md",
"sha256": "76b16cc7331fe584e4124b8a8c1651550997636e4e178b3545780b7aa4dcf8b3"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-content-security-policy-cheat-sheet.md",
"legacy_path": "raw/official-docs/owasp-content-security-policy-cheat-sheet.md",
"sha256": "8b1e992027af6a71b2e85a8ceda8e4447707bb712699aa9638e6db243e2212f8"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-file-upload-cheat-sheet.md",
"legacy_path": "raw/official-docs/owasp-file-upload-cheat-sheet.md",
"sha256": "0355bcb6175e87544b550a38e37c5eb03d34142b09d23c14cf6840070af75c39"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-hsts-cheat-sheet.md",
"legacy_path": "raw/official-docs/owasp-hsts-cheat-sheet.md",
"sha256": "9d18ca73a4f89a2d1affec49844bf3a96613cfef6a7012520c69dc82ac132a08"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-html5-storage-xss-spa.md",
"legacy_path": "raw/official-docs/owasp-html5-storage-xss-spa.md",
"sha256": "87ae6970f2ce1042d94efbd8b43a12b85979cd1fe12c79dbe914aefdd830c986"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-logging-cheat-sheet.md",
"legacy_path": "raw/official-docs/owasp-logging-cheat-sheet.md",
"sha256": "afc2b14268dd5e774ab8e1d52bedf163571aeac84d298c315e35b1c1d7e1b72e"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-path-traversal.md",
"legacy_path": "raw/official-docs/owasp-path-traversal.md",
"sha256": "6b90aecba100f13f6e66e2ba7cf0df26d04ba03399d70e380cbf270a2c4895d5"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-ssrf-prevention.md",
"legacy_path": "raw/official-docs/owasp-ssrf-prevention.md",
"sha256": "d40fbf01fe7eb1c55ea72ef5344a9af60e52ee66219d9e23abf6f22dce75a909"
},
{
"canonical_path": "vault/20-evidence/official-docs/p6spy-configuration-official.md",
"legacy_path": "raw/official-docs/p6spy-configuration-official.md",
"sha256": "31d87edc13a93520b298b3aa590ba3255fbc39acf457ab66aed3a70ed15f106e"
},
{
"canonical_path": "vault/20-evidence/official-docs/patch-json-merge-rfc7396.md",
"legacy_path": "raw/official-docs/patch-json-merge-rfc7396.md",
"sha256": "b436c3c781b645abe4ef1fa40b859e7715cb31949e5518113c1231564dfafef7"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-hikaricp-configuration-knobs.md",
"legacy_path": "raw/official-docs/persistence-hikaricp-configuration-knobs.md",
"sha256": "e7ee4f1b2f5b654e6b3e7a4cf5abc048b044406d2522d32649b551ad4e2e2497"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-hikaricp-pool-sizing-wiki.md",
"legacy_path": "raw/official-docs/persistence-hikaricp-pool-sizing-wiki.md",
"sha256": "7acc0aadd43c711c093661ae4b5139bd62f04e941cf2db53dad4cf8611023af7"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-osiv-antipattern-hibernate-vladmihalcea.md",
"legacy_path": "raw/official-docs/persistence-osiv-antipattern-hibernate-vladmihalcea.md",
"sha256": "7b1226fc66e3ed341d220858a7b3ca60a1ab5ae6a9a585c9d2fbd221e6d7c599"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-r2dbc-reactive-spring.md",
"legacy_path": "raw/official-docs/persistence-r2dbc-reactive-spring.md",
"sha256": "9d0720693dbe1747ec6d1bffcf486aae6bdbb73f23da5248d395c4fcfcd85210"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-spring-dataaccessexception-hierarchy.md",
"legacy_path": "raw/official-docs/persistence-spring-dataaccessexception-hierarchy.md",
"sha256": "e4b9c874c997d1ee7f763f9b551a43ebbd0f6dc169aeb94986eea18f4a2c8727"
},
{
"canonical_path": "vault/20-evidence/official-docs/postgres-transaction-isolation-official.md",
"legacy_path": "raw/official-docs/postgres-transaction-isolation-official.md",
"sha256": "0272d7bc8b35c3d983627416e5bbd76a12ab369baa5e3fe69545b547afceea2b"
},
{
"canonical_path": "vault/20-evidence/official-docs/postgresql-slow-query-log-official.md",
"legacy_path": "raw/official-docs/postgresql-slow-query-log-official.md",
"sha256": "7c0f30cc5e94c56e4612eeef0e3193757325ad63fecee8b9a7bd551e7935f847"
},
{
"canonical_path": "vault/20-evidence/official-docs/privacy-cryptographic-erasure-nist-sp800-88.md",
"legacy_path": "raw/official-docs/privacy-cryptographic-erasure-nist-sp800-88.md",
"sha256": "bb9f861ad4c0497e564cd189b611ce3dad0a5df13daf787253521c80b1a8b4d1"
},
{
"canonical_path": "vault/20-evidence/official-docs/privacy-gdpr-article-25-design.md",
"legacy_path": "raw/official-docs/privacy-gdpr-article-25-design.md",
"sha256": "665190e2d31f21db6abf2e0b254b1e38ac07d73dda1f01b808571d47d9d15185"
},
{
"canonical_path": "vault/20-evidence/official-docs/problem-detail-rfc-7807.md",
"legacy_path": "raw/official-docs/problem-detail-rfc-7807.md",
"sha256": "8300ddf05123764414b77049ea0b12865e373000b16381cd1f25977cc78217c6"
},
{
"canonical_path": "vault/20-evidence/official-docs/prometheus-alertmanager-silences.md",
"legacy_path": "raw/official-docs/prometheus-alertmanager-silences.md",
"sha256": "cf60a78ab08c8be2cbcdf9aba15b59add73c493e8c6c07d8d56e67d23741e55c"
},
{
"canonical_path": "vault/20-evidence/official-docs/protobuf-reserved-vs-json-openapi-extension.md",
"legacy_path": "raw/official-docs/protobuf-reserved-vs-json-openapi-extension.md",
"sha256": "b890523956cb5073ffc865c6c563f8dd9fe1ee255681c6f1617e8e1edc75beb9"
},
{
"canonical_path": "vault/20-evidence/official-docs/proxy-pass-request-body-nginx-official.md",
"legacy_path": "raw/official-docs/proxy-pass-request-body-nginx-official.md",
"sha256": "d2d0f3ed9b378bf69a0aae5836352fb073ae368ea766e0f430e6ca02e321d050"
},
{
"canonical_path": "vault/20-evidence/official-docs/react-router-official.md",
"legacy_path": "raw/official-docs/react-router-official.md",
"sha256": "322786770a22b9e403aa1fa25e7496ab67859f37b591f172cc7358dfb58b6213"
},
{
"canonical_path": "vault/20-evidence/official-docs/react-ui-library-official.md",
"legacy_path": "raw/official-docs/react-ui-library-official.md",
"sha256": "535624e822739859820c9ab722500be6679e5d21dd559d99f9777619be33b3c1"
},
{
"canonical_path": "vault/20-evidence/official-docs/redhat-openjdk-container-awareness-java17.md",
"legacy_path": "raw/official-docs/redhat-openjdk-container-awareness-java17.md",
"sha256": "4141196dcdbe28e878c7ea6f00622e351c01fe129564ece33a18e3aea8d78ab4"
},
{
"canonical_path": "vault/20-evidence/official-docs/registry-adr-official.md",
"legacy_path": "raw/official-docs/registry-adr-official.md",
"sha256": "3cea824873df6e33bb3fea042c1d430212342d9853b76b1c0189ccaf54a1d8d5"
},
{
"canonical_path": "vault/20-evidence/official-docs/renovate-gradle-manager-official.md",
"legacy_path": "raw/official-docs/renovate-gradle-manager-official.md",
"sha256": "f4da89492c75516b25939da032bc0735863e3fa33bbd008d2519c5681efc9518"
},
{
"canonical_path": "vault/20-evidence/official-docs/renovate-vulnerability-alerts-gradle-official.md",
"legacy_path": "raw/official-docs/renovate-vulnerability-alerts-gradle-official.md",
"sha256": "ac766707a792f2ae4c376b8584c9f63f85dc3466d9dd025f0125d9f59272f1c1"
},
{
"canonical_path": "vault/20-evidence/official-docs/reproducible-builds-org-jvm-guide.md",
"legacy_path": "raw/official-docs/reproducible-builds-org-jvm-guide.md",
"sha256": "4fd7acdac61bee5db871efe814fb526dec9b49d8406b3249e19dcee5510b549d"
},
{
"canonical_path": "vault/20-evidence/official-docs/resilience4j-micrometer-module.md",
"legacy_path": "raw/official-docs/resilience4j-micrometer-module.md",
"sha256": "50c5c991c826055ab1be6f61c0ac61e582b773c67301ef76277697bc23cf1a52"
},
{
"canonical_path": "vault/20-evidence/official-docs/retry-aws-well-architected-rel05-bp03.md",
"legacy_path": "raw/official-docs/retry-aws-well-architected-rel05-bp03.md",
"sha256": "901f7318e40d2d7a613dc5e582fa5e7ba96f50471fbaebb9936bd4f0a364db05"
},
{
"canonical_path": "vault/20-evidence/official-docs/retry-spring-retry-readme-backoff-defaults.md",
"legacy_path": "raw/official-docs/retry-spring-retry-readme-backoff-defaults.md",
"sha256": "f82f14710cd39d7d6d3b0b89aa78c8aae3f17afcfd5c7e849b8cd41346869ff2"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc3339-datetime-utc.md",
"legacy_path": "raw/official-docs/rfc3339-datetime-utc.md",
"sha256": "c78e8af6205697a67e0516b7acf8184eae54d52a74b8e879b4598e7ead005e05"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc3986-uri-generic-syntax.md",
"legacy_path": "raw/official-docs/rfc3986-uri-generic-syntax.md",
"sha256": "21f5157b7cbdc02fc8fd8b97b4c8901d48ad06ec1e73e0fbb1112d874c570734"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc6455-websocket.md",
"legacy_path": "raw/official-docs/rfc6455-websocket.md",
"sha256": "b829467c07141c9d199e3ac0aa18b77e58845255e2a632d7ec28edc641701c4f"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc8996-tls10-tls11-deprecation.md",
"legacy_path": "raw/official-docs/rfc8996-tls10-tls11-deprecation.md",
"sha256": "7a75ac58cdd4728e769e9dd17a2675dd64531606bf0e3d6529f9b7f06223c1d8"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9110-http-semantics.md",
"legacy_path": "raw/official-docs/rfc9110-http-semantics.md",
"sha256": "dbae861dc834a02f1e756de21ab42211c80f147e78edf263e753e293b1e1b6cf"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9111-http-caching.md",
"legacy_path": "raw/official-docs/rfc9111-http-caching.md",
"sha256": "82f41821cec6e3c22d3ad8181bd1087be1c623e27a61359931f5b44a353e4f65"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9112-http-1-1-chunked-transfer.md",
"legacy_path": "raw/official-docs/rfc9112-http-1-1-chunked-transfer.md",
"sha256": "977976b70d72a301fe03b2015088dbd4f8a1ac2953b8807771f2ee64c1765b3c"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9421-http-message-signatures.md",
"legacy_path": "raw/official-docs/rfc9421-http-message-signatures.md",
"sha256": "3115607d8b57be73d83df885806e7d710103bcc2a59145de65936886482661c8"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9457-problem-details-http-apis.md",
"legacy_path": "raw/official-docs/rfc9457-problem-details-http-apis.md",
"sha256": "4907338ea0109994e53bf1c6f610b37dbf6d62ce818cee447a93e88aaee9b3ae"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9562-uuid.md",
"legacy_path": "raw/official-docs/rfc9562-uuid.md",
"sha256": "0d27cdf307120e6752bbbc9cbde40036df52161e5587c3b426a27221b9a51e6a"
},
{
"canonical_path": "vault/20-evidence/official-docs/runbook-pagerduty-incident-response-doc.md",
"legacy_path": "raw/official-docs/runbook-pagerduty-incident-response-doc.md",
"sha256": "35bf2db60dc891ac4273bf1b268c5f6a61f73f1d554d37478cd2f49282365b81"
},
{
"canonical_path": "vault/20-evidence/official-docs/runtime-health-istio-mesh-health-check.md",
"legacy_path": "raw/official-docs/runtime-health-istio-mesh-health-check.md",
"sha256": "6c229a5a39c0662d68279b1f2cde7da6be63fb237fd6fee0300a20335f06d7b1"
},
{
"canonical_path": "vault/20-evidence/official-docs/runtime-health-k8s-probes-official.md",
"legacy_path": "raw/official-docs/runtime-health-k8s-probes-official.md",
"sha256": "1f104d7043acc68323967a4161d5f5c62aa114b502dfcfde6805c314f713d75b"
},
{
"canonical_path": "vault/20-evidence/official-docs/runtime-health-spring-actuator-groups.md",
"legacy_path": "raw/official-docs/runtime-health-spring-actuator-groups.md",
"sha256": "a156a8a4b5d8c9c6870dd343b287cb5c6b00a50c7f36cc0b20fbca244f8609f1"
},
{
"canonical_path": "vault/20-evidence/official-docs/runtime-spring-boot-virtual-threads.md",
"legacy_path": "raw/official-docs/runtime-spring-boot-virtual-threads.md",
"sha256": "1fd029b1b83134499a46261ce041c831db0e9685ac1534dfb1552d5d0480c55a"
},
{
"canonical_path": "vault/20-evidence/official-docs/sample-microservices-spring-cloud-github.md",
"legacy_path": "raw/official-docs/sample-microservices-spring-cloud-github.md",
"sha256": "9014cc9b6e69c4f9da416720ce7d18c856221c9273e61c298f55dc4683530fc9"
},
{
"canonical_path": "vault/20-evidence/official-docs/sample-realworld-gothinkster-github.md",
"legacy_path": "raw/official-docs/sample-realworld-gothinkster-github.md",
"sha256": "0e17a85cc853a8af28b99b43066e69555baffa54604a7a7e8d3b26ea1086c17a"
},
{
"canonical_path": "vault/20-evidence/official-docs/sample-spring-petclinic-github.md",
"legacy_path": "raw/official-docs/sample-spring-petclinic-github.md",
"sha256": "cf54527224bbb2ff0673b8e2b8934749079cd77e3a09df1a60beec9de353c6cf"
},
{
"canonical_path": "vault/20-evidence/official-docs/scaffolding-cookiecutter-official.md",
"legacy_path": "raw/official-docs/scaffolding-cookiecutter-official.md",
"sha256": "c92b0a63f5b7bddb2fede4332c14af3fe45feb3298063463fd76956e3f45c550"
},
{
"canonical_path": "vault/20-evidence/official-docs/scaffolding-degit-svelte-github.md",
"legacy_path": "raw/official-docs/scaffolding-degit-svelte-github.md",
"sha256": "4a070df1b35691dd1f193ca4e6bb689ea84d268505ab6d9b61eac2299a27d89b"
},
{
"canonical_path": "vault/20-evidence/official-docs/scaffolding-github-template-repository.md",
"legacy_path": "raw/official-docs/scaffolding-github-template-repository.md",
"sha256": "95ab8a435c2b82242cce5e235c1c0ab7e9590428b2d9910f961b422a7b65eb95"
},
{
"canonical_path": "vault/20-evidence/official-docs/scaffolding-spring-initializr.md",
"legacy_path": "raw/official-docs/scaffolding-spring-initializr.md",
"sha256": "2743284ab10aeb35a016250239e5a00f02739c893128bcd8dc1c439338634072"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-avro-evolution-rules.md",
"legacy_path": "raw/official-docs/schema-avro-evolution-rules.md",
"sha256": "fa4e43b6d532f492d1bdaacbb93aaefe536de5dd4bebb049cffbd3f9e65da48c"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-bigdecimal-money-serialization-java.md",
"legacy_path": "raw/official-docs/schema-bigdecimal-money-serialization-java.md",
"sha256": "90133de78bcce2aca0128a3c18443de7f96bcce51d396a1e9540dea2e785a702"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-jackson-polymorphic-deserialization.md",
"legacy_path": "raw/official-docs/schema-jackson-polymorphic-deserialization.md",
"sha256": "922896707ae792c5c3ce29c8baae0b3255e8b3cbc01cfd994ae5a0afb5d453ef"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-jackson-unknown-field-handling.md",
"legacy_path": "raw/official-docs/schema-jackson-unknown-field-handling.md",
"sha256": "33405d19ca62b751652ab2f5a64de99763d85687c4ff9de1d190fe6c3ac6aa28"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-protobuf-vs-json-evolution.md",
"legacy_path": "raw/official-docs/schema-protobuf-vs-json-evolution.md",
"sha256": "1cc6f0270a2a67cece7969fd6ffc8dbb52f364bb53f06097487c18ac6ce44101"
},
{
"canonical_path": "vault/20-evidence/official-docs/scoped-value-jep-446-506-openjdk.md",
"legacy_path": "raw/official-docs/scoped-value-jep-446-506-openjdk.md",
"sha256": "5ee7a9ec40f11b089ecac1637b40438802a50506b86a19db2333a1a48aa7b46e"
},
{
"canonical_path": "vault/20-evidence/official-docs/scorecard-aws-well-architected.md",
"legacy_path": "raw/official-docs/scorecard-aws-well-architected.md",
"sha256": "af4b976d730193c067c8fd00f29ea3fcea7ba026e3e028439cc33554f87c9e65"
},
{
"canonical_path": "vault/20-evidence/official-docs/scorecard-cis-benchmarks-slsa.md",
"legacy_path": "raw/official-docs/scorecard-cis-benchmarks-slsa.md",
"sha256": "ce83b2ed15fe4f116d186a3f4f358050bcf9b9f620fd968550028bbd3e4ed46b"
},
{
"canonical_path": "vault/20-evidence/official-docs/scorecard-opentelemetry-maturity.md",
"legacy_path": "raw/official-docs/scorecard-opentelemetry-maturity.md",
"sha256": "3d8ae9816d4d10ba90dbc51950bffd574069770e2148b07ba7df44c7eefc40c8"
},
{
"canonical_path": "vault/20-evidence/official-docs/secrets-aws-secrets-manager-rotation.md",
"legacy_path": "raw/official-docs/secrets-aws-secrets-manager-rotation.md",
"sha256": "ba70913b36c4cb2f560d4eb2c2e24ed90b427e2e504e62f60bcec2f9ba0a291b"
},
{
"canonical_path": "vault/20-evidence/official-docs/secrets-k8s-secret-external-secrets-operator.md",
"legacy_path": "raw/official-docs/secrets-k8s-secret-external-secrets-operator.md",
"sha256": "35f326c1c5b765a88508afa0b50c3d60789cc5bddd9936e36bb033f227e7e37a"
},
{
"canonical_path": "vault/20-evidence/official-docs/secrets-vault-dynamic-secrets-hashicorp.md",
"legacy_path": "raw/official-docs/secrets-vault-dynamic-secrets-hashicorp.md",
"sha256": "dc023835410ab9094f14fe2f9bc79f82a81b1c5f2c4231d0acd39e2487de2bd8"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-authorization-cheatsheet-owasp.md",
"legacy_path": "raw/official-docs/security-authorization-cheatsheet-owasp.md",
"sha256": "3c3694f7c010e30794402bfb92aa07d4297882ef95c05c5be7c4283eb925859d"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-aws-sigv4-hmac-signing.md",
"legacy_path": "raw/official-docs/security-aws-sigv4-hmac-signing.md",
"sha256": "f445a88f254c61859fcb0354739f8302d834bddbb81685611a37e28d4ee9d9aa"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-jwt-rfc-7519-validation.md",
"legacy_path": "raw/official-docs/security-jwt-rfc-7519-validation.md",
"sha256": "32a43c5995acc6e285c145b3f6f7857e7f620314af2ec3a9ce1193496189090a"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-mtls-rfc-8705.md",
"legacy_path": "raw/official-docs/security-mtls-rfc-8705.md",
"sha256": "e51a8cd4ac7d1e696e282862d0d404eddb13a13d28a5febe71e8f206e15e6cc4"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-oauth2-pkce-rfc-8252.md",
"legacy_path": "raw/official-docs/security-oauth2-pkce-rfc-8252.md",
"sha256": "59dd396a9638a8623bff931e7d9e5283ab1aa3a3356f43a9ded5d56a9f15ab59"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-opa-policy-engine-official.md",
"legacy_path": "raw/official-docs/security-opa-policy-engine-official.md",
"sha256": "d1b023292e9e103bc87bfa93ceab15682f9725808c177892d59e3d959e3c0d99"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-spring-jwt-timestamp-validator-clock-skew.md",
"legacy_path": "raw/official-docs/security-spring-jwt-timestamp-validator-clock-skew.md",
"sha256": "08c631ac186ab5c4f416d96d39ba594e3eccf38e7d3428046f9096cf7660a524"
},
{
"canonical_path": "vault/20-evidence/official-docs/semver-2-0-0-spec-semver-official.md",
"legacy_path": "raw/official-docs/semver-2-0-0-spec-semver-official.md",
"sha256": "c85cdf829948e104d633a513a38de47ffa295896ce20cdc8dddb9f6eada44935"
},
{
"canonical_path": "vault/20-evidence/official-docs/silent-check-sso-third-party-cookies-keycloak-official.md",
"legacy_path": "raw/official-docs/silent-check-sso-third-party-cookies-keycloak-official.md",
"sha256": "e2fca0ef20fa8a1a7429efc6a6b105b52fbeceeebe90545e98f2a99bfd1d6b6c"
},
{
"canonical_path": "vault/20-evidence/official-docs/skip-locked-mysql-docs.md",
"legacy_path": "raw/official-docs/skip-locked-mysql-docs.md",
"sha256": "7fae761274012bbfc896892b289e46bfbbb3983a2951e4924258a59d94380fc8"
},
{
"canonical_path": "vault/20-evidence/official-docs/skip-locked-postgres-docs.md",
"legacy_path": "raw/official-docs/skip-locked-postgres-docs.md",
"sha256": "26a861523699e640af7532c055577216c2bcb2ddb4e75fb82155be5dc18b3fe4"
},
{
"canonical_path": "vault/20-evidence/official-docs/slsa-v1-provenance-schema.md",
"legacy_path": "raw/official-docs/slsa-v1-provenance-schema.md",
"sha256": "36c86e2d026eda364fdf4f81235cd7c29176ac828c77321d45f32f13460403c5"
},
{
"canonical_path": "vault/20-evidence/official-docs/sonarqube-server-versus-cloud.md",
"legacy_path": "raw/official-docs/sonarqube-server-versus-cloud.md",
"sha256": "94e881ca8609ac70c82a0abb405d784f71960d326bbf362b63081fb9bff1e2d9"
},
{
"canonical_path": "vault/20-evidence/official-docs/spotbugs-gradle-plugin-docs.md",
"legacy_path": "raw/official-docs/spotbugs-gradle-plugin-docs.md",
"sha256": "5a822bd095919ab3cb205a8af23bc94785debccad62fcca64c83561631d28267"
},
{
"canonical_path": "vault/20-evidence/official-docs/spotless-gradle-plugin-readme.md",
"legacy_path": "raw/official-docs/spotless-gradle-plugin-readme.md",
"sha256": "f49c7084fa4844d4be9ebc4e7061c6ac823b3ae8465241f7d0095c451c55a2c9"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-exit-code-generator-startup-failure.md",
"legacy_path": "raw/official-docs/spring-boot-exit-code-generator-startup-failure.md",
"sha256": "42b8a068c4821728a3a6402667e848acb9a51483b07d514072b0d1a83a59a688"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-graceful-shutdown-reference.md",
"legacy_path": "raw/official-docs/spring-boot-graceful-shutdown-reference.md",
"sha256": "1f9acfc08f08265bc981a89fb981e52f910317abcb1f88dbe5fb050cbb543d5d"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-multipart-reference.md",
"legacy_path": "raw/official-docs/spring-boot-multipart-reference.md",
"sha256": "ce12e8555731050bf3813867b8d7ad9366ce8e6d672ae614f03bd2f5dbc7c524"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-structuring-your-code.md",
"legacy_path": "raw/official-docs/spring-boot-structuring-your-code.md",
"sha256": "8a37a21b8de00804569817a2627f54dc6ad0c37d533144b6758a0623dba1b1ad"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-task-execution-scheduling-reference.md",
"legacy_path": "raw/official-docs/spring-boot-task-execution-scheduling-reference.md",
"sha256": "ec4db3f79ff4c27d453c7d7c31c9dcd31c8f55fb292096b39dfbc44a79dc355a"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-test-slices-webmvctest-datajpatest-official.md",
"legacy_path": "raw/official-docs/spring-boot-test-slices-webmvctest-datajpatest-official.md",
"sha256": "1b9ffbe47d7bc1268b3ed539106746720fda67b0554d86ceb896e4d1f6c9b33e"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-jpa-auditing-official.md",
"legacy_path": "raw/official-docs/spring-data-jpa-auditing-official.md",
"sha256": "a152377b88bee6947299511f03c79890d7c3d1d69746f528a65cbe85af6082ea"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-jpa-enable-jpa-auditing-api.md",
"legacy_path": "raw/official-docs/spring-data-jpa-enable-jpa-auditing-api.md",
"sha256": "c316cec1d149620db249f5a747546a0a5976130fb77b87d1bb71c83f0e76f3f0"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-jpa-projections-spring-official.md",
"legacy_path": "raw/official-docs/spring-data-jpa-projections-spring-official.md",
"sha256": "bdf6845b4662236e8c3f79f4c40e70ae4351967941289cde347490b24fa5be53"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-jpa-transactionality-spring-official.md",
"legacy_path": "raw/official-docs/spring-data-jpa-transactionality-spring-official.md",
"sha256": "de998e4531de20aca70b4c11a94d61955009810d50983322530fc31307e49172"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-pageable-defaults.md",
"legacy_path": "raw/official-docs/spring-data-pageable-defaults.md",
"sha256": "ed0c7926ce98be5eee81b47eeb07b1cd393df458b8d8b0138e7c19dcabfd6b69"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-executor-configuration-support-javadoc.md",
"legacy_path": "raw/official-docs/spring-executor-configuration-support-javadoc.md",
"sha256": "1ecb0f74bcd45ec5d3f944132d4be6c701f77c6a1b07c346fe655e04019cc7cd"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-framework-observability-context-propagating-task-decorator.md",
"legacy_path": "raw/official-docs/spring-framework-observability-context-propagating-task-decorator.md",
"sha256": "b6abd129ed43c3414aebc1f57347c5a0095741b737d6af9edad60eb739ff006f"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-framework-test-enabledif-jupiter-annotation.md",
"legacy_path": "raw/official-docs/spring-framework-test-enabledif-jupiter-annotation.md",
"sha256": "13cd06e3e7099ef894be3ccac1e93beab48397e8c28c51196bb1135dfc5098a9"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-framework-threadpooltaskexecutor-javadoc.md",
"legacy_path": "raw/official-docs/spring-framework-threadpooltaskexecutor-javadoc.md",
"sha256": "d129ed76a968df063b34743487b2209dfdcd5eb45ab2102a0ba95ec5c4609bfd"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-mvc-async-streaming.md",
"legacy_path": "raw/official-docs/spring-mvc-async-streaming.md",
"sha256": "4a3bb17d95f613ff5154c55dafe92ee001fedf7c262b91f8a910593208e09119"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-mvc-rest-exception-handling.md",
"legacy_path": "raw/official-docs/spring-mvc-rest-exception-handling.md",
"sha256": "8126133faf5e5486d1642aaa1e88f28a1c4f8b7ddfe8ab295dcd88a9ee58f058"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-problem-detail.md",
"legacy_path": "raw/official-docs/spring-problem-detail.md",
"sha256": "6800b32d0c0497761115809b5a60cfd74ad71841c2728de7fdacb70960b74f93"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-restclient-builder-reference.md",
"legacy_path": "raw/official-docs/spring-restclient-builder-reference.md",
"sha256": "5cb945af512eb89928945b39f541870dfd97ec801d60c9cb3fc41dac6b08cc9f"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-authorization-architecture.md",
"legacy_path": "raw/official-docs/spring-security-authorization-architecture.md",
"sha256": "711886ece5f3512af2e6f85f09c70b27abce967077abc935be08f5dbb3a9b74c"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-authorization-defense-in-depth.md",
"legacy_path": "raw/official-docs/spring-security-authorization-defense-in-depth.md",
"sha256": "387ddf7a5fedaf7d48536cd71b6338148923ff4b28a9cdbddcdc1fab4bbce554"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-authorize-http-requests.md",
"legacy_path": "raw/official-docs/spring-security-authorize-http-requests.md",
"sha256": "aba0d6276d82c8c2e557b731c5b0147ef149fc4f00d2c09392eb416fa8143ec1"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-concurrency-delegating-security-context-executor.md",
"legacy_path": "raw/official-docs/spring-security-concurrency-delegating-security-context-executor.md",
"sha256": "e1940e0b1e4d4d26302b28044ba2d80f0cc292e67cd30e634f688a85e7d89968"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-method-security.md",
"legacy_path": "raw/official-docs/spring-security-method-security.md",
"sha256": "17d01e3ca5287a0eb19f32ca25e5e5f37faf55a61b75a0faa6fff09b9913e83e"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-nested-authorities-claim-issue-15201.md",
"legacy_path": "raw/official-docs/spring-security-nested-authorities-claim-issue-15201.md",
"sha256": "d0c19cbb1dd82670fab21c2a83e6a50cc3d2c81d7b17edc2af2ab84a605edc8c"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-resource-server-jwt.md",
"legacy_path": "raw/official-docs/spring-security-resource-server-jwt.md",
"sha256": "fdcc90bdebeba70719fb728fd8147798346e5326b0ff58ac8a142381b767582a"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-smartlifecycle-reference.md",
"legacy_path": "raw/official-docs/spring-smartlifecycle-reference.md",
"sha256": "46378fe67ac346a4897b30e58b727e7203bd61ca99060d3f25df7b5143aa351a"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-streaming-response-body.md",
"legacy_path": "raw/official-docs/spring-streaming-response-body.md",
"sha256": "64f310217a5f004313a181a71647f4b93b54b45e7850f024f2d9e5529b7e9472"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-transaction-synchronization-manager-javadoc.md",
"legacy_path": "raw/official-docs/spring-transaction-synchronization-manager-javadoc.md",
"sha256": "485f5b13fd2a4c4b7b33efe80e49b9da5eeb201f3033f83712da19f05935a6ec"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-transactional-event-listener.md",
"legacy_path": "raw/official-docs/spring-transactional-event-listener.md",
"sha256": "5181e020e47a4a60dfef54570a3adc0fa7a4966bb28823e1572b7450d50ef283"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-tx-management-reference.md",
"legacy_path": "raw/official-docs/spring-tx-management-reference.md",
"sha256": "f39a774186f46cca6fcee6605835068a23211432c4af90f0ba5ed2b0b6dd06d9"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-tx-propagation-required-new-nested-official.md",
"legacy_path": "raw/official-docs/spring-tx-propagation-required-new-nested-official.md",
"sha256": "69b715e8f34171aa1d6677ff541e53fd7690c4c1fe07b4603320f6dc783cb7e6"
},
{
"canonical_path": "vault/20-evidence/official-docs/stripe-resource-id-convention.md",
"legacy_path": "raw/official-docs/stripe-resource-id-convention.md",
"sha256": "89b65ecb495a415f8729ea0e9b2c2def7d25a7ee50113621eecee23fab9f643e"
},
{
"canonical_path": "vault/20-evidence/official-docs/stripe-webhook-signature.md",
"legacy_path": "raw/official-docs/stripe-webhook-signature.md",
"sha256": "136489d9ef9fe4da88e13d47c9b8a7685eb33b910feeb74ae5efb1e460f6f2bc"
},
{
"canonical_path": "vault/20-evidence/official-docs/sunset-deprecation-headers-paired-usage.md",
"legacy_path": "raw/official-docs/sunset-deprecation-headers-paired-usage.md",
"sha256": "d2ba98d9e81137243d52f2467ae3e7aebd4de2b1a35e87c1d11929e1a611c646"
},
{
"canonical_path": "vault/20-evidence/official-docs/supply-chain-cosign-keyless-sigstore.md",
"legacy_path": "raw/official-docs/supply-chain-cosign-keyless-sigstore.md",
"sha256": "42973c0841dc9902b56e2632354f3bdccb4fc1f3f5823c8b81da5032d915048c"
},
{
"canonical_path": "vault/20-evidence/official-docs/supply-chain-gradle-vs-maven-dependency-locking.md",
"legacy_path": "raw/official-docs/supply-chain-gradle-vs-maven-dependency-locking.md",
"sha256": "14ae27b7b36c5149366bdf6fbe9a7bc7888149628df8d4b43409f7c2815d3150"
},
{
"canonical_path": "vault/20-evidence/official-docs/supply-chain-slsa-provenance-framework.md",
"legacy_path": "raw/official-docs/supply-chain-slsa-provenance-framework.md",
"sha256": "a850463d69eaf6df92ca167cf02ed3643f6fe5ca1ac6feb77973b58c972a0987"
},
{
"canonical_path": "vault/20-evidence/official-docs/svix-webhook-best-practices.md",
"legacy_path": "raw/official-docs/svix-webhook-best-practices.md",
"sha256": "ada01680f031338ab596b8922a33b41e448167e21506162cc9f00f3e3e18f633"
},
{
"canonical_path": "vault/20-evidence/official-docs/sysexits-bsd-exit-code-convention.md",
"legacy_path": "raw/official-docs/sysexits-bsd-exit-code-convention.md",
"sha256": "092c4807a7213cf0bb7433db3630aea4a161b13c0b172991c930fedc3fbcd79b"
},
{
"canonical_path": "vault/20-evidence/official-docs/tailwind-css-utility-first-official.md",
"legacy_path": "raw/official-docs/tailwind-css-utility-first-official.md",
"sha256": "1800dcf51f3f1b68f6f962ac5b008c83853fcbfefc722e5c0c68d5cd665bf606"
},
{
"canonical_path": "vault/20-evidence/official-docs/tanstack-query-server-state-official.md",
"legacy_path": "raw/official-docs/tanstack-query-server-state-official.md",
"sha256": "521338c8ea9e2203dbd94bc73b2bdaeaab6b0812492c4e09cee0dd4e59fa0b60"
},
{
"canonical_path": "vault/20-evidence/official-docs/test-taxonomy-practical-pyramid-fowler.md",
"legacy_path": "raw/official-docs/test-taxonomy-practical-pyramid-fowler.md",
"sha256": "ff6d335a53db14a2b4e517e2d8eacebc5394201c6b5c54cd173c3355a5f5efad"
},
{
"canonical_path": "vault/20-evidence/official-docs/test-taxonomy-testcontainers-official.md",
"legacy_path": "raw/official-docs/test-taxonomy-testcontainers-official.md",
"sha256": "fcd83973968ee8671f85894e82fedfabd1332188cd498af7852dfa6280aab701"
},
{
"canonical_path": "vault/20-evidence/official-docs/third-party-cookie-blocking-safari-webkit-official.md",
"legacy_path": "raw/official-docs/third-party-cookie-blocking-safari-webkit-official.md",
"sha256": "f2c12f8e94b3781ed4286b3483687b4787b1e0c1699c895d71dc1b73c0409267"
},
{
"canonical_path": "vault/20-evidence/official-docs/threadlocal-virtual-threads-java21-oracle.md",
"legacy_path": "raw/official-docs/threadlocal-virtual-threads-java21-oracle.md",
"sha256": "1122b1cb1402d99f714f435b10a86ffa727d3d3f6fdfa12a285aa338699a045f"
},
{
"canonical_path": "vault/20-evidence/official-docs/trace-context-w3c-recommendation.md",
"legacy_path": "raw/official-docs/trace-context-w3c-recommendation.md",
"sha256": "ac017fe5251eff4f0a831f6d4c5b8198d8b22c8c371d5e4cd655aa09b7f72363"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-b3-propagation-zipkin-spec.md",
"legacy_path": "raw/official-docs/tracing-b3-propagation-zipkin-spec.md",
"sha256": "220a21e28eb2d1559018953551cb8da6d993ea1b16ed477424d5ee1919315550"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-micrometer-observation-introduction.md",
"legacy_path": "raw/official-docs/tracing-micrometer-observation-introduction.md",
"sha256": "d201c4107a8ead55a4ee3567ea7b5eb24b561d43e55675f7059e85d26719d2d6"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-otel-sampling-tail-vs-head-spec.md",
"legacy_path": "raw/official-docs/tracing-otel-sampling-tail-vs-head-spec.md",
"sha256": "7ac1f28f269c3c07bf4f697fe74e0e74a39c674617ee35fd8e37565eb14065b6"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-otel-trace-api-spec.md",
"legacy_path": "raw/official-docs/tracing-otel-trace-api-spec.md",
"sha256": "13eb700f5b28a258d0cc6eb9f4abaf2713e594c3dc70cc5587bcbfdc6de196ec"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-spring-boot-3-actuator-tracing-reference.md",
"legacy_path": "raw/official-docs/tracing-spring-boot-3-actuator-tracing-reference.md",
"sha256": "d94e94094236a79ab649d1e419f8ea1c11598da6923c109db0a27dc4257cd960"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-w3c-trace-context-spec.md",
"legacy_path": "raw/official-docs/tracing-w3c-trace-context-spec.md",
"sha256": "ea5dd8cda00af337899bcea4c6cb04e1c1af3c48fb2838a86cc2019cdfb2acc2"
},
{
"canonical_path": "vault/20-evidence/official-docs/traefik-forwardauth-middleware-official.md",
"legacy_path": "raw/official-docs/traefik-forwardauth-middleware-official.md",
"sha256": "3b3473a3d2f86bde123214f249d81d3a6b0db7109abbff4c5b3702e41fe1eb25"
},
{
"canonical_path": "vault/20-evidence/official-docs/traefik-hub-oidc-middleware-official.md",
"legacy_path": "raw/official-docs/traefik-hub-oidc-middleware-official.md",
"sha256": "dc7f1074343370efc6cb8a2127879726f78f63b1ebb7a7066af7d891071eb6c3"
},
{
"canonical_path": "vault/20-evidence/official-docs/traefik-oidc-community-plugin-lukaszraczylo-official.md",
"legacy_path": "raw/official-docs/traefik-oidc-community-plugin-lukaszraczylo-official.md",
"sha256": "3f8a3f02ee8d8420904c0259fd852e3cc165f4aade420af8a3e072140f0183d0"
},
{
"canonical_path": "vault/20-evidence/official-docs/transaction-template-spring-official.md",
"legacy_path": "raw/official-docs/transaction-template-spring-official.md",
"sha256": "5271afa0cd29780751953217b781a516c570ad092daf1434857d9c3baeb1a257"
},
{
"canonical_path": "vault/20-evidence/official-docs/transactional-outbox-aws-prescriptive-guidance.md",
"legacy_path": "raw/official-docs/transactional-outbox-aws-prescriptive-guidance.md",
"sha256": "cf1f45d5efa5dd6c565b2d5047a1229593d94b1f9b460e8b8215d804e5377468"
},
{
"canonical_path": "vault/20-evidence/official-docs/trivy-action-github-actions.md",
"legacy_path": "raw/official-docs/trivy-action-github-actions.md",
"sha256": "452bc309c366a7948e18c0611fc7e121f72b03939a0bee25edbd47eaa534a1cf"
},
{
"canonical_path": "vault/20-evidence/official-docs/trivy-filtering-suppression-policy.md",
"legacy_path": "raw/official-docs/trivy-filtering-suppression-policy.md",
"sha256": "25c388ec25dee3d511eee24557841b590aff75624cf9af4097c8be419e67583f"
},
{
"canonical_path": "vault/20-evidence/official-docs/trivy-java-language-coverage.md",
"legacy_path": "raw/official-docs/trivy-java-language-coverage.md",
"sha256": "f25ec69345c950bd3c9baee9841342a21dde1a26907f1b6a22c783e25fc5f722"
},
{
"canonical_path": "vault/20-evidence/official-docs/trivy-severity-exit-code-gating.md",
"legacy_path": "raw/official-docs/trivy-severity-exit-code-gating.md",
"sha256": "ae7a36b5b093bfd05f7b05e1b1053e868b9d4f3b8c884369d7dc83352b173f45"
},
{
"canonical_path": "vault/20-evidence/official-docs/ulid-spec.md",
"legacy_path": "raw/official-docs/ulid-spec.md",
"sha256": "e459ba654872394250117cfd325dffa269467f0d3bf226c3eb188d9d7e3c54c2"
},
{
"canonical_path": "vault/20-evidence/official-docs/validation-jakarta-bean-validation-3.0-spec.md",
"legacy_path": "raw/official-docs/validation-jakarta-bean-validation-3.0-spec.md",
"sha256": "9db07d1a02284f0930247b88c422391caa6c73f4af71e9becea395f0ce16f43d"
},
{
"canonical_path": "vault/20-evidence/official-docs/verification-approvaltests-snapshot-official.md",
"legacy_path": "raw/official-docs/verification-approvaltests-snapshot-official.md",
"sha256": "8bdabed0593020fcc8b324eeaed531b6ffb8355d59e968cc31725bc6d3bf1e2c"
},
{
"canonical_path": "vault/20-evidence/official-docs/verification-pact-cdc-official.md",
"legacy_path": "raw/official-docs/verification-pact-cdc-official.md",
"sha256": "765f28932e5149b7083deff0a40db27075240bf41f5865a130f021ab9b86993b"
},
{
"canonical_path": "vault/20-evidence/official-docs/verification-spring-cloud-contract-official.md",
"legacy_path": "raw/official-docs/verification-spring-cloud-contract-official.md",
"sha256": "183e4754d2a91d39db6eab44332051a29bade68084ba9b6fe38a4370afbcba6a"
},
{
"canonical_path": "vault/20-evidence/official-docs/verification-spring-restdocs-official.md",
"legacy_path": "raw/official-docs/verification-spring-restdocs-official.md",
"sha256": "e59af615cb96ca2a16720be892175bf377a2521b450dfdef3e06b953f64f1fb9"
},
{
"canonical_path": "vault/20-evidence/official-docs/vite-build-tool-official.md",
"legacy_path": "raw/official-docs/vite-build-tool-official.md",
"sha256": "fa883ae872ac105843e223ca31dc432a16b97b5feb45c8a0274098072ce9d3d9"
},
{
"canonical_path": "vault/20-evidence/official-docs/vuln-severity-cisa-kev-catalog-official.md",
"legacy_path": "raw/official-docs/vuln-severity-cisa-kev-catalog-official.md",
"sha256": "b13fb3a28b93108a029bf48484bd36f787664711a1773457e560a2bab225618f"
},
{
"canonical_path": "vault/20-evidence/official-docs/vuln-severity-cvss-v31-spec-first-official.md",
"legacy_path": "raw/official-docs/vuln-severity-cvss-v31-spec-first-official.md",
"sha256": "5b7793b28e22f1839fc183937445f26f3d3d69d4945020444e4189efa4a7565d"
},
{
"canonical_path": "vault/20-evidence/official-docs/whatwg-html-server-sent-events.md",
"legacy_path": "raw/official-docs/whatwg-html-server-sent-events.md",
"sha256": "f0d18f7ca723798be1f1645eec7629226c45d423e7a77c9f061dd2c277659127"
},
{
"canonical_path": "vault/20-evidence/official-docs/zod-runtime-schema-validation-official.md",
"legacy_path": "raw/official-docs/zod-runtime-schema-validation-official.md",
"sha256": "929213bf5df69c23127df60cddc3461735e934a0f42262f4e84ce68dc91a0cda"
},
{
"canonical_path": "vault/30-knowledge/concepts/api-error-envelope-design.md",
"legacy_path": "wiki/concepts/api-error-envelope-design.md",
"sha256": "9433a066422c1cc31cc629da08427742ee36419fcdefd03039fd75dd638ae1c9"
},
{
"canonical_path": "vault/30-knowledge/concepts/api-evolution-and-schema.md",
"legacy_path": "wiki/concepts/api-evolution-and-schema.md",
"sha256": "61f06a30052c349b5b46844ecad026c8d51deea3f516cfb3c371782b19c5221c"
},
{
"canonical_path": "vault/30-knowledge/concepts/archunit-scope-classpath-vs-package-filter.md",
"legacy_path": "wiki/concepts/archunit-scope-classpath-vs-package-filter.md",
"sha256": "a4274f4ccf25f4278c48ee4de5912811fa39732baf22e0ef6f48ee2bf259436d"
},
{
"canonical_path": "vault/30-knowledge/concepts/boundary-validation-and-dto-mapping.md",
"legacy_path": "wiki/concepts/boundary-validation-and-dto-mapping.md",
"sha256": "2e9e6c92ae07aa74a2413a2e39219154b6247111763fbf02bdff4436d9340348"
},
{
"canonical_path": "vault/30-knowledge/concepts/circuit-breaker.md",
"legacy_path": "wiki/concepts/circuit-breaker.md",
"sha256": "e89cce598990bcdb94077df40f05d37bcde084c003f271dc6e8836630039c1af"
},
{
"canonical_path": "vault/30-knowledge/concepts/clean-architecture-package-layout.md",
"legacy_path": "wiki/concepts/clean-architecture-package-layout.md",
"sha256": "72c91685f7a4fb1e8fd2aca42b243366210f1d4092a25d0d2f21327c26409154"
},
{
"canonical_path": "vault/30-knowledge/concepts/config-and-adapter-templates.md",
"legacy_path": "wiki/concepts/config-and-adapter-templates.md",
"sha256": "7028ad0d8aa51ed3f7e17beffbc661c760ddd99915756ee0ed5d104b6cc74273"
},
{
"canonical_path": "vault/30-knowledge/concepts/data-layer-persistence-cache-outbound.md",
"legacy_path": "wiki/concepts/data-layer-persistence-cache-outbound.md",
"sha256": "67d4b2f713535e94f0f8e7d028c1ba52cccca16e5cb5be456b055842c9bf3745"
},
{
"canonical_path": "vault/30-knowledge/concepts/devops-ci-supply-chain-dx.md",
"legacy_path": "wiki/concepts/devops-ci-supply-chain-dx.md",
"sha256": "8d7e6d9a1555a861e8bd93aebe0dba208f5015506f5ab042af5c1af8489ed0e0"
},
{
"canonical_path": "vault/30-knowledge/concepts/distributed-tracing-baggage.md",
"legacy_path": "wiki/concepts/distributed-tracing-baggage.md",
"sha256": "7fd2cae4a99a7d5e7db2e54389e8d8e94a6ab002befcb3a6872b61185de3402c"
},
{
"canonical_path": "vault/30-knowledge/concepts/fail-open-fail-closed.md",
"legacy_path": "wiki/concepts/fail-open-fail-closed.md",
"sha256": "2660013669c4ba3e71eda815b1b1b63f0bb8bc4c6fb9b2de354fdb418f297bf7"
},
{
"canonical_path": "vault/30-knowledge/concepts/idempotency-key-design.md",
"legacy_path": "wiki/concepts/idempotency-key-design.md",
"sha256": "f3710d9e29efffa58bacc09a3000e54b41f5ec20a34bc8cf1c58b3187df9d151"
},
{
"canonical_path": "vault/30-knowledge/concepts/idempotency.md",
"legacy_path": "wiki/concepts/idempotency.md",
"sha256": "16eb03b86037b320dc50ab339a0b196456f546d69a7fff82fd351960a92299c1"
},
{
"canonical_path": "vault/30-knowledge/concepts/multi-tenancy-isolation-patterns.md",
"legacy_path": "wiki/concepts/multi-tenancy-isolation-patterns.md",
"sha256": "f5fc500f4a17496f50b9b515a66250f850583a3b3f47c4a343e6abeee22a2450"
},
{
"canonical_path": "vault/30-knowledge/concepts/observability-log-metric-trace-runbook.md",
"legacy_path": "wiki/concepts/observability-log-metric-trace-runbook.md",
"sha256": "015d43b770a53d689defb1c68302050980863f2f290ce6c9d267d3930b42bc77"
},
{
"canonical_path": "vault/30-knowledge/concepts/outbox-pattern.md",
"legacy_path": "wiki/concepts/outbox-pattern.md",
"sha256": "063e7dc2d894dfbf824319d76989d84047abfff1971378cfb8ddacfdb0153845"
},
{
"canonical_path": "vault/30-knowledge/concepts/privacy-file-domain-modeling.md",
"legacy_path": "wiki/concepts/privacy-file-domain-modeling.md",
"sha256": "dc8621329db96c74490223cb1bbf60c225c1ff3174c04750158f127148cf2425"
},
{
"canonical_path": "vault/30-knowledge/concepts/resource-identifier-format.md",
"legacy_path": "wiki/concepts/resource-identifier-format.md",
"sha256": "907054dc710573369d55bba11d6cc4480f064c8d8e3a8ea0030ff5c78fe7ae8c"
},
{
"canonical_path": "vault/30-knowledge/concepts/runtime-container-health-migration.md",
"legacy_path": "wiki/concepts/runtime-container-health-migration.md",
"sha256": "711914343bd2e058393820ea9c14d5c5f43c76b893d161d7bf1a748a39f22dd5"
},
{
"canonical_path": "vault/30-knowledge/concepts/sample-fixture-and-adoption.md",
"legacy_path": "wiki/concepts/sample-fixture-and-adoption.md",
"sha256": "e3684cae9dc80e76a2269358381585f01ead04e752d2b82cc769e8031ca1b883"
},
{
"canonical_path": "vault/30-knowledge/concepts/security-baseline-jwt-actuator-secrets.md",
"legacy_path": "wiki/concepts/security-baseline-jwt-actuator-secrets.md",
"sha256": "8f67fdf1dce4bddfb4eec2f9cb937472e4e9bd61fe28ea4f441d5b9891bde7e4"
},
{
"canonical_path": "vault/30-knowledge/concepts/skeleton-governance-registry-verification-test-scorecard.md",
"legacy_path": "wiki/concepts/skeleton-governance-registry-verification-test-scorecard.md",
"sha256": "376944a9aa4fc96a9b8b91ec2e3a678647c44c11d00479e03d132e9a1e7d3391"
},
{
"canonical_path": "vault/30-knowledge/concepts/spring-smart-lifecycle.md",
"legacy_path": "wiki/concepts/spring-smart-lifecycle.md",
"sha256": "7e0859003b6ff3910cdf55051fb34e9a5b4397104ffb11a8c169a04e9fed1c0f"
},
{
"canonical_path": "vault/30-knowledge/concepts/streaming-response-patterns.md",
"legacy_path": "wiki/concepts/streaming-response-patterns.md",
"sha256": "f17186bab1231049c915e6b2c7bc21b0025b2be7e19e40e2683da6e5280fb59d"
},
{
"canonical_path": "vault/30-knowledge/concepts/transaction-boundary-abstraction.md",
"legacy_path": "wiki/concepts/transaction-boundary-abstraction.md",
"sha256": "9b259c792ec79e7fd96c34d3863fc51be4feab6d7daa61923ed8e293a7fcd2b7"
},
{
"canonical_path": "vault/30-knowledge/concepts/transactional-outbox-pattern.md",
"legacy_path": "wiki/concepts/transactional-outbox-pattern.md",
"sha256": "10385bf33c91c5207058cb27612d18f1b8eb4f3779f98c60906c2954542e07b2"
},
{
"canonical_path": "vault/30-knowledge/explainer/adapter-identifier.md",
"legacy_path": "wiki/explainer/adapter-identifier.md",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"canonical_path": "vault/30-knowledge/explainer/adapter-outbound.md",
"legacy_path": "wiki/explainer/adapter-outbound.md",
"sha256": "0f223a671f15ef0adc268de643d81479317f239b12ae621e1b7291b53375afda"
},
{
"canonical_path": "vault/30-knowledge/explainer/adapter-persistence.md",
"legacy_path": "wiki/explainer/adapter-persistence.md",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"canonical_path": "vault/30-knowledge/explainer/adapter-web.md",
"legacy_path": "wiki/explainer/adapter-web.md",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"canonical_path": "vault/30-knowledge/explainer/application-core.md",
"legacy_path": "wiki/explainer/application-core.md",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"canonical_path": "vault/30-knowledge/explainer/domain-core.md",
"legacy_path": "wiki/explainer/domain-core.md",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"canonical_path": "vault/30-knowledge/explainer/images/outbound-adapter-architecture.png",
"legacy_path": "wiki/explainer/images/outbound-adapter-architecture.png",
"sha256": "c2ae983d4f2a89a886d97213b24694e35b28b5ad0d618df6600283e58f96ee34"
},
{
"canonical_path": "vault/30-knowledge/explainer/images/outbound-http-sequence.png",
"legacy_path": "wiki/explainer/images/outbound-http-sequence.png",
"sha256": "c973ed01780011f84aad9385de2037b02105529a38452a355f673055a02c21df"
},
{
"canonical_path": "vault/30-knowledge/explainer/shared-contract.md",
"legacy_path": "wiki/explainer/shared-contract.md",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"canonical_path": "vault/30-knowledge/explainer/transaction-boundary-abstraction.md",
"legacy_path": "wiki/explainer/transaction-boundary-abstraction.md",
"sha256": "3426d172a6ff73b47353baf73c2288c4a688d379e75eff8a3b7b2533539ecf9c"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-auto.md",
"legacy_path": "wiki/invest-concepts/field-auto.md",
"sha256": "786faeab7d1494d8ec3c000df7e0851c87d3c346d66566c3f15274c8d284eb66"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-bigtech-ai.md",
"legacy_path": "wiki/invest-concepts/field-bigtech-ai.md",
"sha256": "86159c96c68c819ff1a9b4cbd1377d7f7216bcbb70e0f36c46e2de042f92b3cd"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-bio-pharma.md",
"legacy_path": "wiki/invest-concepts/field-bio-pharma.md",
"sha256": "d178408dc70393eb545dd0757977c363e669ef518c7bcce891c7b301883c56d8"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-bitcoin.md",
"legacy_path": "wiki/invest-concepts/field-bitcoin.md",
"sha256": "e806c19ba04ca7ec07b68942c7ccb47a273466c05dca559898d482a86317078f"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-chem-refining.md",
"legacy_path": "wiki/invest-concepts/field-chem-refining.md",
"sha256": "d27de20f869fd2e6c5852e622e975c2d2bb927040166447c9f9e169cfa912067"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-cosmetics-consumer.md",
"legacy_path": "wiki/invest-concepts/field-cosmetics-consumer.md",
"sha256": "3fa84d3b1144f380668e424b38f99a5bd08a973b5d670ee740c37f68bc8a228b"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-defense.md",
"legacy_path": "wiki/invest-concepts/field-defense.md",
"sha256": "763dbbb67ba501c4da9d2ac0cdd2bc499b17b7a1cc1bbfe3048855092242e7d0"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-dollar.md",
"legacy_path": "wiki/invest-concepts/field-dollar.md",
"sha256": "953fcf01d7188a431fd7d6f6bc09b507f9229575add7d8c21ff569f6bd3a3e82"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-em-china.md",
"legacy_path": "wiki/invest-concepts/field-em-china.md",
"sha256": "cbe5ed7782ecfe4793bf4b67f97a671b3a5fc851d7bbb121060269bc2c7f3818"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-entertainment.md",
"legacy_path": "wiki/invest-concepts/field-entertainment.md",
"sha256": "68d4ac5245d555f7bf1d79213cb798110467e6ca8577d89361e26718b90fefdf"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-financials.md",
"legacy_path": "wiki/invest-concepts/field-financials.md",
"sha256": "54a6b5f3e3571eda800a82dfcaaee5c36f50e599252c774be9f97518b685b0a8"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-game.md",
"legacy_path": "wiki/invest-concepts/field-game.md",
"sha256": "088f196872d07178bb562faac748b6a603736a669cdfcfd2c319ab22a5b9d096"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-gold.md",
"legacy_path": "wiki/invest-concepts/field-gold.md",
"sha256": "124e983d77db07772221169b32b278e7f82b62d73dd2fd576a9fa94ce9375a09"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-internet-platform.md",
"legacy_path": "wiki/invest-concepts/field-internet-platform.md",
"sha256": "34bc03830a7f0806278222900acc0c7402879bcc3356615c5ff236d0228237c0"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-krw-rates.md",
"legacy_path": "wiki/invest-concepts/field-krw-rates.md",
"sha256": "8460d1fdb95479680afbbc11df18d01c375c4005bad09998d0d586e8a9f67b91"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-map.md",
"legacy_path": "wiki/invest-concepts/field-map.md",
"sha256": "d0b4c4d22fcb7449ec23febfe82cee8eab0345189eef296c2edf16b836def784"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-nuclear-power.md",
"legacy_path": "wiki/invest-concepts/field-nuclear-power.md",
"sha256": "77bb120dfc739e538c47830c1e73c90481c746675b7baf529909dabb4c35d57f"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-oil.md",
"legacy_path": "wiki/invest-concepts/field-oil.md",
"sha256": "b3c569117f8dfd2f9e64cd0d9c31f7c2227a84bc734fba8b1a851aa2129032f3"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-robotics.md",
"legacy_path": "wiki/invest-concepts/field-robotics.md",
"sha256": "b8ceef563783cfcb229515f01ec945b85a204f935ad1f18e7a7608845ef85eb9"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-rotation.md",
"legacy_path": "wiki/invest-concepts/field-rotation.md",
"sha256": "96b5962ae45b978c235be987fa190584a4253f919e6ce618fd66aaa155e68a07"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-secondary-battery.md",
"legacy_path": "wiki/invest-concepts/field-secondary-battery.md",
"sha256": "48ebc3f4d34c5682752debe025ff9a387905fece2378a22523fa4245ea35124e"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-semiconductors.md",
"legacy_path": "wiki/invest-concepts/field-semiconductors.md",
"sha256": "19bfda08d73544433430ec077112de66b5868d0eac527760df88639c240a2d54"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-shipbuilding.md",
"legacy_path": "wiki/invest-concepts/field-shipbuilding.md",
"sha256": "d5e944a40c6d9b26c987b4f296dc0f26e3fa8efad69658c01b3f0a34e8b35626"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-steel-materials.md",
"legacy_path": "wiki/invest-concepts/field-steel-materials.md",
"sha256": "596b97326b319fefe8da3d9406f55b68ca7d56944eca403a0782eeefa2afe7d5"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-telecom-utility.md",
"legacy_path": "wiki/invest-concepts/field-telecom-utility.md",
"sha256": "3a8bbac9418769a5fcc699bfe08c9cd639b1323a3759f6a09ae513c89729b453"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-us-equity.md",
"legacy_path": "wiki/invest-concepts/field-us-equity.md",
"sha256": "7e44561cf83d33ebbb08789d6a19a6b0ecf28b05074651f1a0c458c887c34d33"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-us-rates.md",
"legacy_path": "wiki/invest-concepts/field-us-rates.md",
"sha256": "5a6cfe170ebffe7c09a700ed9153538cb7f17567bcb2c2f135e95f3907695fda"
},
{
"canonical_path": "vault/30-knowledge/invest-plan/active-plan.md",
"legacy_path": "wiki/invest-plan/active-plan.md",
"sha256": "b42bc54e040b2fa5d3dea1724ab230b56933ab97ba9ba697a557f75a141ab371"
},
{
"canonical_path": "vault/30-knowledge/invest-strategy/strategy.md",
"legacy_path": "wiki/invest-strategy/strategy.md",
"sha256": "f85176d3edd73acfa14c099d3935a48f97f70521749fe568236b0f01c8df0cc6"
},
{
"canonical_path": "vault/30-knowledge/invest/invest-hub.md",
"legacy_path": "wiki/invest/invest-hub.md",
"sha256": "e2543c4c36a5f65d2fa52d2f2f5ae7b018c337093ab817a88b1b8e0680050fc8"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl.md",
"legacy_path": "wiki/projects/ca-tmpl.md",
"sha256": "60adaffb6e05245985428787e2ab7e0dd4b1999d2ed141525aab07027bf7117e"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/api-error-envelope-design.md",
"legacy_path": "wiki/projects/ca-tmpl/api-error-envelope-design.md",
"sha256": "5afdae46e1f3216cd5f887a5affa8e0e4fa61ef6c608e50cde8244cb69a7d38d"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/api-evolution-and-schema.md",
"legacy_path": "wiki/projects/ca-tmpl/api-evolution-and-schema.md",
"sha256": "316ca08c400b01a3fc118a06224b849d7a729f32ad53ac3693865e6ca514f1ff"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/boundary-validation-mapping.md",
"legacy_path": "wiki/projects/ca-tmpl/boundary-validation-mapping.md",
"sha256": "7a1df67387b1d882c3416ace6bef85bcb31ddd652ed6faa7e2c8034cffa8cac9"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/clean-architecture-package-layout.md",
"legacy_path": "wiki/projects/ca-tmpl/clean-architecture-package-layout.md",
"sha256": "e7a50778032a3054748559ff78e3eed5ab18a192008d72351fadb06c32aa584e"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/config-and-adapter-templates.md",
"legacy_path": "wiki/projects/ca-tmpl/config-and-adapter-templates.md",
"sha256": "32208eae189023b38d585b19bfa47fa5a3a718ff6665aecfe2b82c3b305fd2fd"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/data-layer-persistence-cache-outbound.md",
"legacy_path": "wiki/projects/ca-tmpl/data-layer-persistence-cache-outbound.md",
"sha256": "86d08d13b64b3699c61ce80d3dd75f33f489f92a4afef567640e954849e0f219"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/devops-ci-supply-chain-dx.md",
"legacy_path": "wiki/projects/ca-tmpl/devops-ci-supply-chain-dx.md",
"sha256": "3ad095ebccec45b586f67b74d4bc42293bccef3f9755acc68ffd98ef03bbdfe5"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/idempotency-key-design.md",
"legacy_path": "wiki/projects/ca-tmpl/idempotency-key-design.md",
"sha256": "c49721193894421a3ff7212e34b799cb3b5e783401ea38cec147c6a1ff4888f6"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/knowledge-capture-workflow.md",
"legacy_path": "wiki/projects/ca-tmpl/knowledge-capture-workflow.md",
"sha256": "b195f91e4c142a5bbad0808e5547d06293787f0cf0cdc885c6b384da743d61b9"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/multi-tenancy-isolation-patterns.md",
"legacy_path": "wiki/projects/ca-tmpl/multi-tenancy-isolation-patterns.md",
"sha256": "fe0d75c8467eedfd7b2fc46e463e7ee3256a505ec339145c21f771e1e256596a"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/observability-log-metric-trace-runbook.md",
"legacy_path": "wiki/projects/ca-tmpl/observability-log-metric-trace-runbook.md",
"sha256": "8e9b2fea5500bdb6e1c72e097d2d5fac4b070bb6c80fd7d928d04e3386335a3a"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/privacy-file-domain-modeling.md",
"legacy_path": "wiki/projects/ca-tmpl/privacy-file-domain-modeling.md",
"sha256": "4d50c1e1a3cb5a87ad11a8f2486e463a226930e32fb0bdd3a62ddd2fb8d86250"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/resource-identifier-format.md",
"legacy_path": "wiki/projects/ca-tmpl/resource-identifier-format.md",
"sha256": "4f623381ba4311afcb7763a285be6d4a00949c0ae45530e0668b9f757c1a8e41"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/runtime-container-health-migration.md",
"legacy_path": "wiki/projects/ca-tmpl/runtime-container-health-migration.md",
"sha256": "982c58dadf4b45fb8e950800ba6ca02d04b25adabe74561f25a797b58d2c503c"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/sample-fixture-and-adoption.md",
"legacy_path": "wiki/projects/ca-tmpl/sample-fixture-and-adoption.md",
"sha256": "4b6c63d56fc0f64bc8d3f67fe8a54c7a26d29bee8989eea21fdc054922681e37"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/security-baseline-jwt-actuator-secrets.md",
"legacy_path": "wiki/projects/ca-tmpl/security-baseline-jwt-actuator-secrets.md",
"sha256": "9a687c9110efb1f9341c6491951855fc094146e07c951a2f565b92828ba47ed1"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/skeleton-governance-registry-verification-test-scorecard.md",
"legacy_path": "wiki/projects/ca-tmpl/skeleton-governance-registry-verification-test-scorecard.md",
"sha256": "fbbc187105166d34036838b3c047e38c2390bccc2194140b419e55d057b9c224"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/streaming-response-support.md",
"legacy_path": "wiki/projects/ca-tmpl/streaming-response-support.md",
"sha256": "c7cd9e65bd8a354e5107eaa7b86cc41ea05f8f3f2cff073104b96f10dd401d97"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/transaction-boundary-abstraction.md",
"legacy_path": "wiki/projects/ca-tmpl/transaction-boundary-abstraction.md",
"sha256": "285db380a2a048490c730399e055f0ce1fed74485e97c8b56266e0bbb67f3e91"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/transactional-outbox-pattern.md",
"legacy_path": "wiki/projects/ca-tmpl/transactional-outbox-pattern.md",
"sha256": "333c82182ad2ab13e32df4f1f14c7eb4c27f5cc72571851a21a44fd6bf842d1b"
},
{
"canonical_path": "vault/40-publish/blog-topics/api-deprecation-sunset-header-migration-window-2026-07-02.md",
"legacy_path": "raw/blog-topics/api-deprecation-sunset-header-migration-window-2026-07-02.md",
"sha256": "f4e8d39c593e874a7e0c9a4fa402ecd8d26ccdb7bd4bd6618a871796e7c6a936"
},
{
"canonical_path": "vault/40-publish/blog-topics/archunit-generic-return-type-purity-query-port-2026-06-05.md",
"legacy_path": "raw/blog-topics/archunit-generic-return-type-purity-query-port-2026-06-05.md",
"sha256": "78ac08a3b3d03f1b68742e993ce3211f06c51e507708de54299328e65fd1fefd"
},
{
"canonical_path": "vault/40-publish/blog-topics/archunit-jackson-default-typing-cve-2019-14379-block-2026-05-29.md",
"legacy_path": "raw/blog-topics/archunit-jackson-default-typing-cve-2019-14379-block-2026-05-29.md",
"sha256": "46fb7a55551ee984e430911d68dc553621d6244f6a5b2b2c8f9000a1660c4016"
},
{
"canonical_path": "vault/40-publish/blog-topics/archunit-testcompileonly-fixture-annotation-pattern-2026-06-02.md",
"legacy_path": "raw/blog-topics/archunit-testcompileonly-fixture-annotation-pattern-2026-06-02.md",
"sha256": "4b6ff25311dc017fb1dcff0fa4c4ce8a6e8d9c36dfa7f74a3ac2f48d854a46dd"
},
{
"canonical_path": "vault/40-publish/blog-topics/archunit-violations-as-data-pattern-2026-05-28.md",
"legacy_path": "raw/blog-topics/archunit-violations-as-data-pattern-2026-05-28.md",
"sha256": "2c8179a0b933ba26ce96bd02a356895447a87ceaa60793b145bc532c0f04cdb9"
},
{
"canonical_path": "vault/40-publish/blog-topics/binary-readiness-scorecard-clean-architecture-skeleton-2026-07-02.md",
"legacy_path": "raw/blog-topics/binary-readiness-scorecard-clean-architecture-skeleton-2026-07-02.md",
"sha256": "6745fb3591eb4a6492d4e22a953884f3014b19fec4991f2997a1862c062086bd"
},
{
"canonical_path": "vault/40-publish/blog-topics/boundary-validation-mapper-responsibility-map-2026-07-02.md",
"legacy_path": "raw/blog-topics/boundary-validation-mapper-responsibility-map-2026-07-02.md",
"sha256": "3174544c0520c80e09e314a90c32707953135a8a04bdd211b6ce38d934c05066"
},
{
"canonical_path": "vault/40-publish/blog-topics/cache-backend-router-fail-open-decorator-2026-07-02.md",
"legacy_path": "raw/blog-topics/cache-backend-router-fail-open-decorator-2026-07-02.md",
"sha256": "d2173ccf41bafe441645f712ed88103499853780e0768f5c41110fcd3bac7fc1"
},
{
"canonical_path": "vault/40-publish/blog-topics/cache-consistency-after-commit-stampede-contract-2026-07-02.md",
"legacy_path": "raw/blog-topics/cache-consistency-after-commit-stampede-contract-2026-07-02.md",
"sha256": "0c7f733506dec7b772585e1b8bddbb2a6717b929d9b2f3dc26fcbf927f928dd2"
},
{
"canonical_path": "vault/40-publish/blog-topics/ci-gate-wiring-vs-policy-ownership-2026-06-20.md",
"legacy_path": "raw/blog-topics/ci-gate-wiring-vs-policy-ownership-2026-06-20.md",
"sha256": "0a319f55b066c1de94380a7aa387f0d15bcea1e097d9b9e1ae2ff6f01a8c6c13"
},
{
"canonical_path": "vault/40-publish/blog-topics/clean-architecture-boundary-enforcement-2026-05-28.md",
"legacy_path": "raw/blog-topics/clean-architecture-boundary-enforcement-2026-05-28.md",
"sha256": "4e3fee1912ef12536a0104ad18a9021e0635865b5676594f384a675f09a8f6d6"
},
{
"canonical_path": "vault/40-publish/blog-topics/clean-architecture-module-blueprint-2026-05-28.md",
"legacy_path": "raw/blog-topics/clean-architecture-module-blueprint-2026-05-28.md",
"sha256": "cf62dc8fc74079d9d6a012e38f17242d7f3af2c27ed506821e3975872908d949"
},
{
"canonical_path": "vault/40-publish/blog-topics/clean-architecture-reference-project-adoption-2026-06-17.md",
"legacy_path": "raw/blog-topics/clean-architecture-reference-project-adoption-2026-06-17.md",
"sha256": "76cd6c9ed513f9f5b2ed365a94e5f785fd1439b581939001d7e96caf3d50c7ed"
},
{
"canonical_path": "vault/40-publish/blog-topics/contract-registry-schema-owner-vs-row-owner-gate-2026-06-20.md",
"legacy_path": "raw/blog-topics/contract-registry-schema-owner-vs-row-owner-gate-2026-06-20.md",
"sha256": "acd2c5046f7398508a4c988531c84048392834d41008ad7e2b5bc568455253d0"
},
{
"canonical_path": "vault/40-publish/blog-topics/contract-verification-suite-release-gates-2026-07-02.md",
"legacy_path": "raw/blog-topics/contract-verification-suite-release-gates-2026-07-02.md",
"sha256": "e1549ac9aee2e378e9161a2b26c790dc185851d7a65a58bf1fb884a384b7752d"
},
{
"canonical_path": "vault/40-publish/blog-topics/digest-first-java-release-pipeline-2026-06-21.md",
"legacy_path": "raw/blog-topics/digest-first-java-release-pipeline-2026-06-21.md",
"sha256": "0a12e1562d934ee7bab5187d34e33cf5362892e96b9ca3e6bc525abdc6ae66c5"
},
{
"canonical_path": "vault/40-publish/blog-topics/distributed-lock-transaction-commit-boundary-2026-07-02.md",
"legacy_path": "raw/blog-topics/distributed-lock-transaction-commit-boundary-2026-07-02.md",
"sha256": "48a7fce1f14ba7fd9425406c01e7b98c5e2da763a29acb38f9a3e88e8ffb622d"
},
{
"canonical_path": "vault/40-publish/blog-topics/domain-modeling-guardrails-as-archunit-fitness-functions-2026-06-05.md",
"legacy_path": "raw/blog-topics/domain-modeling-guardrails-as-archunit-fitness-functions-2026-06-05.md",
"sha256": "63381520374a9f8fa7c0318b1ada2e1a6e7709578d416e73b98bca19f9215e3e"
},
{
"canonical_path": "vault/40-publish/blog-topics/env-example-drift-gate-gradle-2026-06-06.md",
"legacy_path": "raw/blog-topics/env-example-drift-gate-gradle-2026-06-06.md",
"sha256": "2617029cb712f5de603e981d8fbf91557177b8a574f5874e5101b5c378386cbb"
},
{
"canonical_path": "vault/40-publish/blog-topics/executable-clean-architecture-onboarding-2026-06-25.md",
"legacy_path": "raw/blog-topics/executable-clean-architecture-onboarding-2026-06-25.md",
"sha256": "3cf77482d91670ee341caa80c009a43e540fde6d01e5952ff9baa530565b8eb4"
},
{
"canonical_path": "vault/40-publish/blog-topics/five-stage-local-bootstrap-contract-2026-06-24.md",
"legacy_path": "raw/blog-topics/five-stage-local-bootstrap-contract-2026-06-24.md",
"sha256": "14186a79010b8935bcae0c43dbc52d2a067f2604a35dc617fb6ba86fda3b45ad"
},
{
"canonical_path": "vault/40-publish/blog-topics/framework-free-method-authorization-clean-architecture-2026-06-08.md",
"legacy_path": "raw/blog-topics/framework-free-method-authorization-clean-architecture-2026-06-08.md",
"sha256": "bcd86e61fdcaeb76a3a6af4ec6478a2c87f07f23ded71f096eb32a697590ce63"
},
{
"canonical_path": "vault/40-publish/blog-topics/gitea-act-dependency-security-gate-portability-2026-07-02.md",
"legacy_path": "raw/blog-topics/gitea-act-dependency-security-gate-portability-2026-07-02.md",
"sha256": "d7eff7121e11c96231662de1b69008491f4a28c2567c502e37a5fbaa720dc42e"
},
{
"canonical_path": "vault/40-publish/blog-topics/gradle9-java21-static-analysis-baseline-2026-06-20.md",
"legacy_path": "raw/blog-topics/gradle9-java21-static-analysis-baseline-2026-06-20.md",
"sha256": "75a7f41d0b105b5466b090e6efe1ff9ff4d3c668f185d86b903b97557d22465c"
},
{
"canonical_path": "vault/40-publish/blog-topics/hikaricp-inter-knob-constraints-startup-guard-2026-06-09.md",
"legacy_path": "raw/blog-topics/hikaricp-inter-knob-constraints-startup-guard-2026-06-09.md",
"sha256": "32c50c90a9fb4d7130bea80895b98229b280fb934eb9ba000e011c3e7cf7ccc9"
},
{
"canonical_path": "vault/40-publish/blog-topics/idempotency-executor-application-layer-clean-architecture-2026-06-09.md",
"legacy_path": "raw/blog-topics/idempotency-executor-application-layer-clean-architecture-2026-06-09.md",
"sha256": "40615fb4f20a87671709eec43af798ecece0b95eec72929f4dbc5b2451c7dca3"
},
{
"canonical_path": "vault/40-publish/blog-topics/identifier-governance-rule-scoping-by-id-kind-2026-06-01.md",
"legacy_path": "raw/blog-topics/identifier-governance-rule-scoping-by-id-kind-2026-06-01.md",
"sha256": "348971a275562aa595e124119d14e00bbc11001f5341a5f44c9c07f9999300c3"
},
{
"canonical_path": "vault/40-publish/blog-topics/java21-context-propagation-strategy-virtual-threads-2026-07-02.md",
"legacy_path": "raw/blog-topics/java21-context-propagation-strategy-virtual-threads-2026-07-02.md",
"sha256": "fd0dd9df6b8d6c25d2ba51c394d360cd595c07e4b46f0cee18a9b0468ab1f0c2"
},
{
"canonical_path": "vault/40-publish/blog-topics/jdk-httpclient-dns-connectexception-classification-2026-07-02.md",
"legacy_path": "raw/blog-topics/jdk-httpclient-dns-connectexception-classification-2026-07-02.md",
"sha256": "c7d545532db2d32958e83940a698b7f7a0412a40d85953089e2479cd022f337c"
},
{
"canonical_path": "vault/40-publish/blog-topics/jvm-oom-vs-container-oomkill-exit-137-2026-07-02.md",
"legacy_path": "raw/blog-topics/jvm-oom-vs-container-oomkill-exit-137-2026-07-02.md",
"sha256": "c2de48df6c108fa7a1a4cc7a6f6c2c1abb14bf904ad50662b0ba462a34ed842c"
},
{
"canonical_path": "vault/40-publish/blog-topics/logback-layer1-secret-masking-json-vs-pattern-2026-06-14.md",
"legacy_path": "raw/blog-topics/logback-layer1-secret-masking-json-vs-pattern-2026-06-14.md",
"sha256": "9a24855f99910c1887ad2eeb0cb8069e6082b1e5e32a9946da966cf2f25099f2"
},
{
"canonical_path": "vault/40-publish/blog-topics/manifest-driven-agent-harness-policy-engine.md",
"legacy_path": "raw/blog-topics/manifest-driven-agent-harness-policy-engine.md",
"sha256": "7792229cce89a1b95672d8b37eda051468e54eab9152c288306a4f5c609bb460"
},
{
"canonical_path": "vault/40-publish/blog-topics/micrometer-meterfilter-resilience4j-functioncounter-2026-07-02.md",
"legacy_path": "raw/blog-topics/micrometer-meterfilter-resilience4j-functioncounter-2026-07-02.md",
"sha256": "cf237470532aae986a0d10282a4a7a9fee76e25674ffe84a32991bcb2684be4a"
},
{
"canonical_path": "vault/40-publish/blog-topics/nplus1-lab-checkoutable-api-replay-2026-07-15.md",
"legacy_path": "raw/blog-topics/nplus1-lab-checkoutable-api-replay-2026-07-15.md",
"sha256": "6a663572f1fd6a36be6a1fd5e60a76d7e583d4f678e2d86f5ab17453f30837f0"
},
{
"canonical_path": "vault/40-publish/blog-topics/operational-error-envelope-meta-category-migration-2026-06-01.md",
"legacy_path": "raw/blog-topics/operational-error-envelope-meta-category-migration-2026-06-01.md",
"sha256": "509ecc7a432400425e750feac1e1f7fbccdb4126f2a56c2d04d4c41afb21c385"
},
{
"canonical_path": "vault/40-publish/blog-topics/persistence-audit-metadata-clean-architecture-2026-07-02.md",
"legacy_path": "raw/blog-topics/persistence-audit-metadata-clean-architecture-2026-07-02.md",
"sha256": "db606344fb393ef4bff7a2cbe89c4e0a94951d05435844ed2ee09dfd830f623a"
},
{
"canonical_path": "vault/40-publish/blog-topics/post-implementation-knowledge-capture-workflow-2026-05-28.md",
"legacy_path": "raw/blog-topics/post-implementation-knowledge-capture-workflow-2026-05-28.md",
"sha256": "490050826a1f247ba017e6c90519cd950a7a5f6c8bcf885258fe5de6a5ba3cf5"
},
{
"canonical_path": "vault/40-publish/blog-topics/repository-capability-archunit-fitness-function-2026-07-02.md",
"legacy_path": "raw/blog-topics/repository-capability-archunit-fitness-function-2026-07-02.md",
"sha256": "2faf98979d979c6378984c62b0d929f644eeb983e7d084ed729505680b111c8d"
},
{
"canonical_path": "vault/40-publish/blog-topics/runbook-coverage-junit-contract-test-2026-07-02.md",
"legacy_path": "raw/blog-topics/runbook-coverage-junit-contract-test-2026-07-02.md",
"sha256": "1db15057b4900e30c68d717115ac034d3c8de5ba67d14abda492128fea5c6e8c"
},
{
"canonical_path": "vault/40-publish/blog-topics/sample-domain-contract-fixture-clean-architecture-2026-06-10.md",
"legacy_path": "raw/blog-topics/sample-domain-contract-fixture-clean-architecture-2026-06-10.md",
"sha256": "4c3d397117563f0f33bbf4017421fd4e85e50439095344c5099d6fb972f8df7c"
},
{
"canonical_path": "vault/40-publish/blog-topics/sample-fixture-dual-mode-build-matrix-2026-06-25.md",
"legacy_path": "raw/blog-topics/sample-fixture-dual-mode-build-matrix-2026-06-25.md",
"sha256": "9fe6f83d31fd0fcfc905869e2d3cd2cd6bb6a4040247159c26d83fd2462dc0dd"
},
{
"canonical_path": "vault/40-publish/blog-topics/secret-source-port-restart-only-rotation-2026-07-02.md",
"legacy_path": "raw/blog-topics/secret-source-port-restart-only-rotation-2026-07-02.md",
"sha256": "9c07902eb070c990bb1239725ea7c13d6a007bf7dbaaf5afeb9f7cfb77e3ab4a"
},
{
"canonical_path": "vault/40-publish/blog-topics/skip-locked-outbox-per-aggregate-fifo-gate-2026-06-11.md",
"legacy_path": "raw/blog-topics/skip-locked-outbox-per-aggregate-fifo-gate-2026-06-11.md",
"sha256": "1dbe97a2b501cef77eb35044ca3ce55fb48259ba6ccd61b2a4e82a0a7a314c6f"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-actuator-health-probe-group-split-2026-07-02.md",
"legacy_path": "raw/blog-topics/spring-actuator-health-probe-group-split-2026-07-02.md",
"sha256": "b146d538ab85825de0931498fae83d8fddedbfc88e71cd6610f7241a98316085"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-async-taskdecorator-bounded-executor-saturation-shutdown-2026-06-13.md",
"legacy_path": "raw/blog-topics/spring-async-taskdecorator-bounded-executor-saturation-shutdown-2026-06-13.md",
"sha256": "1d50346e9d2341d378a759e5767d6f930f9e20a1445334fb0cdd5becfe638bcb"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-boot-3-configprops-record-multi-constructor-binding-2026-06-12.md",
"legacy_path": "raw/blog-topics/spring-boot-3-configprops-record-multi-constructor-binding-2026-06-12.md",
"sha256": "5042c8a0b2de0ba0df89309123daa5c4b44cf3594394ea3498f8a54036a70430"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-boot-serialization-contract-pins-2026-07-02.md",
"legacy_path": "raw/blog-topics/spring-boot-serialization-contract-pins-2026-07-02.md",
"sha256": "a1cd2f80c100de7289b48eb7d5e18248730fd181cd2322b5bd3ef39def341796"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-boot-startup-exit-code-propagation-2026-06-10.md",
"legacy_path": "raw/blog-topics/spring-boot-startup-exit-code-propagation-2026-06-10.md",
"sha256": "055e8bec5cf7875d12d20e8fd0f914a5b9f74490c77b092a2442475faa839560"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-conditional-on-property-optional-adapter-template-2026-06-09.md",
"legacy_path": "raw/blog-topics/spring-conditional-on-property-optional-adapter-template-2026-06-09.md",
"sha256": "d613c6fc29120e2ba59ad29b25447a6ffd267eed9a4dd4ab517784530dc3b5a4"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-responseentityexceptionhandler-transport-failure-envelope-2026-07-02.md",
"legacy_path": "raw/blog-topics/spring-responseentityexceptionhandler-transport-failure-envelope-2026-07-02.md",
"sha256": "96deb25c35421dda27c2ab7202c67f10589100a637a34e9431ddd4381808d51c"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-security-filter-layer-error-envelope-2026-06-08.md",
"legacy_path": "raw/blog-topics/spring-security-filter-layer-error-envelope-2026-06-08.md",
"sha256": "d64f9264225e416af8f2d035a011ed08925aa71eb4591918700908dbe0677ad5"
},
{
"canonical_path": "vault/40-publish/blog-topics/streaming-response-not-supported-archunit-ban-2026-07-02.md",
"legacy_path": "raw/blog-topics/streaming-response-not-supported-archunit-ban-2026-07-02.md",
"sha256": "6997570f536fda33fef18db21b3fee0f7400106148a6e9111509180d4d7cb551"
},
{
"canonical_path": "vault/40-publish/blog-topics/test-taxonomy-archunit-enforcement-2026-06-19.md",
"legacy_path": "raw/blog-topics/test-taxonomy-archunit-enforcement-2026-06-19.md",
"sha256": "63c8a94c91b968c2141d042bbf053c414f65db59b70064a59cfd11ca9fd087fb"
},
{
"canonical_path": "vault/40-publish/blog-topics/transaction-isolation-vendor-default-pin-2026-07-02.md",
"legacy_path": "raw/blog-topics/transaction-isolation-vendor-default-pin-2026-07-02.md",
"sha256": "7c0bc2dcf1b41f106f726824e73865a5e4489127edc212e86e4fa8fb38069d0a"
},
{
"canonical_path": "vault/40-publish/blog-topics/transaction-port-abstraction-over-spring-transactional-2026-05-28.md",
"legacy_path": "raw/blog-topics/transaction-port-abstraction-over-spring-transactional-2026-05-28.md",
"sha256": "5d48b1774545748366ede5a6a43e003aa1d03569b519b7ee4b4dd6dc5359ef6c"
},
{
"canonical_path": "vault/40-publish/blog-topics/trivy-suppression-governance-static-gate-2026-06-20.md",
"legacy_path": "raw/blog-topics/trivy-suppression-governance-static-gate-2026-06-20.md",
"sha256": "2a0d05097bab2ed07e618599514188ba2a8813f1043b0d9edc3ccebd83a19bca"
},
{
"canonical_path": "vault/40-publish/blog-topics/ulid-crockford-base32-excluded-letters-2026-06-01.md",
"legacy_path": "raw/blog-topics/ulid-crockford-base32-excluded-letters-2026-06-01.md",
"sha256": "245a91400e3b3c870b0da91d3f1c70874de16362b519ec805a87c753c2c076e8"
},
{
"canonical_path": "vault/40-publish/blog-topics/w3c-traceparent-fork-activated-seam-2026-07-02.md",
"legacy_path": "raw/blog-topics/w3c-traceparent-fork-activated-seam-2026-07-02.md",
"sha256": "1ee548b537083d78966fcd4586b06700d0e30ea97c29267235c59c516d8fcf79"
},
{
"canonical_path": "vault/40-publish/blog-topics/webhook-full-jitter-dlq-observability-2026-07-02.md",
"legacy_path": "raw/blog-topics/webhook-full-jitter-dlq-observability-2026-07-02.md",
"sha256": "f8f120c3cf477831bb4dbf0ffb16ad2111ea567b02818c5405ed81159732b8cc"
},
{
"canonical_path": "vault/40-publish/blog-topics/webhook-signature-replay-contract-2026-07-02.md",
"legacy_path": "raw/blog-topics/webhook-signature-replay-contract-2026-07-02.md",
"sha256": "569de76fab360445d41aa1181ca226981b61632e571eff2f063cc79f9da9c889"
},
{
"canonical_path": "vault/40-publish/blog-topics/webhook-ssrf-egress-proxy-redirect-block-2026-07-02.md",
"legacy_path": "raw/blog-topics/webhook-ssrf-egress-proxy-redirect-block-2026-07-02.md",
"sha256": "3cdfad9e61c1c7dcc6f3bb7d1a2b822f0f1e0e662a70787fad29d2b4906ee721"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-api-error-envelope-design-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-api-error-envelope-design-2026-07-02.md",
"sha256": "d6608b2d48b1df46ae13d934a9fc4a27c987d36988b51eedd920ddae1cac2626"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-api-evolution-and-schema-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-api-evolution-and-schema-2026-07-02.md",
"sha256": "b30b1cdc9d23dbc0072be3df3ce8044a853dff24ef6e5e51593ac65fee8d2d5a"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-boundary-validation-mapping-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-boundary-validation-mapping-2026-07-02.md",
"sha256": "2fc560c9b308a107302e65dc9c31ee30c9262c4c037b6eecc146da1ab5087e90"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-clean-architecture-package-layout-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-clean-architecture-package-layout-2026-07-02.md",
"sha256": "775568f8288cc77146359720e0a1d15d6e9ee548b54b41bd21d4998fe1f3d935"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-config-and-adapter-templates-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-config-and-adapter-templates-2026-07-02.md",
"sha256": "20d64399046ea627676e89563ac29db1c962b95b1de8507199b5aa6a500d88ad"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-data-layer-persistence-cache-outbound-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-data-layer-persistence-cache-outbound-2026-07-02.md",
"sha256": "e451bec20e0173a4657df8b3c284c3cfbdf907d61638d45defaad73b71c43f7a"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-devops-ci-supply-chain-dx-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-devops-ci-supply-chain-dx-2026-07-02.md",
"sha256": "0f8d57d9b6e626eb56260aff0bfd530477f3d5766dc69bedc5364f555d18e614"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-idempotency-key-design-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-idempotency-key-design-2026-07-02.md",
"sha256": "f360e97acca464301766cfcf27ecb245f56a00d18a5679468cf793f902093909"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-knowledge-capture-workflow-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-knowledge-capture-workflow-2026-07-02.md",
"sha256": "93420d7be6e153bbf77a79b16156a87d3f7ca0ef72a43704a4d4f14b1c4b2c76"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-multi-tenancy-isolation-patterns-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-multi-tenancy-isolation-patterns-2026-07-02.md",
"sha256": "d92cb4d3901381ba68d6ee5cad17df278276ce69acea3a2accf5b8fc40913276"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-observability-log-metric-trace-runbook-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-observability-log-metric-trace-runbook-2026-07-02.md",
"sha256": "82cff99b073d3e7ae3eb5aa13e958ba05b3d6f445efd0e1da1ecced3490a7682"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-privacy-file-domain-modeling-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-privacy-file-domain-modeling-2026-07-02.md",
"sha256": "838efc79c5e801b86aa064ba43eb8d829361af4941d98d01cf4af05aa2eb91ca"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-resource-identifier-format-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-resource-identifier-format-2026-07-02.md",
"sha256": "25e0806c3b8d191d96727006736e577f6d8ce0bd1ed36adef942ff429d2cd706"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-runtime-container-health-migration-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-runtime-container-health-migration-2026-07-02.md",
"sha256": "a6de58cd767a9ffb6660c4c260f4ee189d2b241df404e7e41f6c93176bd99fca"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-sample-fixture-and-adoption-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-sample-fixture-and-adoption-2026-07-02.md",
"sha256": "4efb95adb22e6c0ff367cda9d838231979751378d4cbd6a65fc671321987e55a"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-security-baseline-jwt-actuator-secrets-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-security-baseline-jwt-actuator-secrets-2026-07-02.md",
"sha256": "3fb2940bf16c710d19163132cb820c5d30a191dc3bd1aceebe14df832c9a06b0"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-skeleton-governance-registry-verification-test-scorecard-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-skeleton-governance-registry-verification-test-scorecard-2026-07-02.md",
"sha256": "f7831c470ed3dfb0bb89f0b071f57a23f64fd3267805eb84a3c6e172f8940ade"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-streaming-response-support-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-streaming-response-support-2026-07-02.md",
"sha256": "e872fe2b565c90709f9e22ca0296465831bc612c2eedad07c20812f4a7631318"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-transaction-boundary-abstraction-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-transaction-boundary-abstraction-2026-07-02.md",
"sha256": "c4ae9843ebe930797fdd17953b2367911c826f3ed0be43ec5ecd919796ad4880"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-transactional-outbox-pattern-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-transactional-outbox-pattern-2026-07-02.md",
"sha256": "248768a552ff45ecc1a5cf057ba9728956201f5b77524edb205d3336175d3e03"
},
{
"canonical_path": "vault/40-publish/interviews/archunit-manual-importer-vs-analyzeclasses.md",
"legacy_path": "raw/interviews/archunit-manual-importer-vs-analyzeclasses.md",
"sha256": "bcf27025d8a2839a8acf2a4728a6b912d1b0989b4801424ffdd799f82d189165"
},
{
"canonical_path": "vault/40-publish/interviews/archunit-static-analysis-limits.md",
"legacy_path": "raw/interviews/archunit-static-analysis-limits.md",
"sha256": "9397d30a049eb8a9bc18e7b4d7426107f8435f9c0e932f36896a5402cf2b7e80"
},
{
"canonical_path": "vault/40-publish/interviews/archunit-violations-as-data-pattern-2026-06-02.md",
"legacy_path": "raw/interviews/archunit-violations-as-data-pattern-2026-06-02.md",
"sha256": "e1263f2a2125eea052c26de0903c009d7943f73e29bea040fde0728f856be1a1"
},
{
"canonical_path": "vault/40-publish/interviews/async-executor-saturation-context-propagation-2026-06-13.md",
"legacy_path": "raw/interviews/async-executor-saturation-context-propagation-2026-06-13.md",
"sha256": "4a68a03060e53442c6519745101d600a440f9b13841bb4dda1889408015929b9"
},
{
"canonical_path": "vault/40-publish/interviews/ci-release-gate-fan-in-blocking-2026-06-20.md",
"legacy_path": "raw/interviews/ci-release-gate-fan-in-blocking-2026-06-20.md",
"sha256": "a3e568d9bd4e7197ddfa87c2d6fa1b5f25b2417218632cfee2ece77ab8a4e537"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-boundary-enforcement.md",
"legacy_path": "raw/interviews/clean-architecture-boundary-enforcement.md",
"sha256": "c90aa6d7674ae346e1d6cd4ccd042cdaecde494479f4b557f4c0b1f0008123b6"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-domain-onboarding-guardrails.md",
"legacy_path": "raw/interviews/clean-architecture-domain-onboarding-guardrails.md",
"sha256": "8c52e62ecd720c26115cfb4b8d403563a3852a898c6cb2fbacb13539d055cd66"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-identifier-generation.md",
"legacy_path": "raw/interviews/clean-architecture-identifier-generation.md",
"sha256": "f0624029eff230a840243e9e6fcd0d17bad3072344b4c6c499b9f7d9e7770789"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-method-authorization-without-spring-coupling-2026-06-08.md",
"legacy_path": "raw/interviews/clean-architecture-method-authorization-without-spring-coupling-2026-06-08.md",
"sha256": "1e7ad7dde68c330172d2c6e1a4e7a692c5b500f5c5975852dfed99fa95db316c"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-module-blueprint.md",
"legacy_path": "raw/interviews/clean-architecture-module-blueprint.md",
"sha256": "c7be0b05bc35ea39f69e0d4ad126e61b45a78be822c25bf069b799fa67f7c728"
},
{
"canonical_path": "vault/40-publish/interviews/crown-one-query-vs-cqrs-lite-read-model.md",
"legacy_path": "raw/interviews/crown-one-query-vs-cqrs-lite-read-model.md",
"sha256": "12545845397efe359e317009bccd3b2340ca637886fe6d4ec3f688b1edd17afb"
},
{
"canonical_path": "vault/40-publish/interviews/deterministic-logback-asyncappender-drop-metric-test-2026-06-14.md",
"legacy_path": "raw/interviews/deterministic-logback-asyncappender-drop-metric-test-2026-06-14.md",
"sha256": "df1365d65079c3207b3eff42a6538c0f8d1ec503ceaa4ac0ae3a66a4236f2bcd"
},
{
"canonical_path": "vault/40-publish/interviews/digest-first-supply-chain-release-gates.md",
"legacy_path": "raw/interviews/digest-first-supply-chain-release-gates.md",
"sha256": "cd11c1cde9321872c4614150f7b9c37ea8bef1c10d578533b3a89de4d3edd4b7"
},
{
"canonical_path": "vault/40-publish/interviews/domain-modeling-guardrails-archunit-2026-06-05.md",
"legacy_path": "raw/interviews/domain-modeling-guardrails-archunit-2026-06-05.md",
"sha256": "e30434699f2cd52007a4a840b2edd898f2e2135c2804ec03089d83bffdf8e150"
},
{
"canonical_path": "vault/40-publish/interviews/formatter-vs-style-linter-responsibility-split-2026-06-20.md",
"legacy_path": "raw/interviews/formatter-vs-style-linter-responsibility-split-2026-06-20.md",
"sha256": "af80d08020af5fbd532087778d1e8d62e337b71adf78ce81ca3aac0a19791f13"
},
{
"canonical_path": "vault/40-publish/interviews/gradle-sample-off-test-classpath-isolation.md",
"legacy_path": "raw/interviews/gradle-sample-off-test-classpath-isolation.md",
"sha256": "bee445f89dabf02fb22e8033a68b49a1866ae6712b6efb3f057ae4a0e95bc1de"
},
{
"canonical_path": "vault/40-publish/interviews/idempotency-rate-limit-design-tradeoffs-2026-06-09.md",
"legacy_path": "raw/interviews/idempotency-rate-limit-design-tradeoffs-2026-06-09.md",
"sha256": "764016247a8a40711d4666102be8c3899a5804dd2b5022bc886c6adaff1611e1"
},
{
"canonical_path": "vault/40-publish/interviews/jwt-resource-server-fine-grained-error-classification-2026-06-08.md",
"legacy_path": "raw/interviews/jwt-resource-server-fine-grained-error-classification-2026-06-08.md",
"sha256": "5ad0c4af24b676b2a458d9b393e6603ff1d4995eab8d5d3ed719583d4a7423be"
},
{
"canonical_path": "vault/40-publish/interviews/manifest-driven-multi-platform-agent-harness.md",
"legacy_path": "raw/interviews/manifest-driven-multi-platform-agent-harness.md",
"sha256": "d834d24a0a6bd467bbae0f19e327f8d1622c0d8739a2c59cf6ff6f9dc0209e82"
},
{
"canonical_path": "vault/40-publish/interviews/native-query-addscalar-runtime-validation.md",
"legacy_path": "raw/interviews/native-query-addscalar-runtime-validation.md",
"sha256": "984dd3d8a5fec2c4b23aca185760c12460b838b65ca9c2ce5c57a564560ddc18"
},
{
"canonical_path": "vault/40-publish/interviews/operational-error-envelope-and-observability-foundation.md",
"legacy_path": "raw/interviews/operational-error-envelope-and-observability-foundation.md",
"sha256": "3d41a89299fb28bdb3a64600a667aeabe12cdcc9a4b5df58fa6d7b3162cbb997"
},
{
"canonical_path": "vault/40-publish/interviews/optional-adapter-3-layer-disabled-detection-2026-06-09.md",
"legacy_path": "raw/interviews/optional-adapter-3-layer-disabled-detection-2026-06-09.md",
"sha256": "db9ee8328e42ea6319e2ec6aa4260e18a4df84feeeb1f359c93f0506c5d02f52"
},
{
"canonical_path": "vault/40-publish/interviews/post-implementation-knowledge-capture.md",
"legacy_path": "raw/interviews/post-implementation-knowledge-capture.md",
"sha256": "7961a62bd6a8fa5d05cd2d217f7ce758e7f480a625a2360955bffe55b6cd5b9e"
},
{
"canonical_path": "vault/40-publish/interviews/sample-domain-contract-fixture-clean-architecture.md",
"legacy_path": "raw/interviews/sample-domain-contract-fixture-clean-architecture.md",
"sha256": "a83fce310951f3897b37901dbf9564d2771b47c37406777f2983ef82fc27e4f9"
},
{
"canonical_path": "vault/40-publish/interviews/shared-contract-and-sample-isolation.md",
"legacy_path": "raw/interviews/shared-contract-and-sample-isolation.md",
"sha256": "e5ada05dbf8a0e8c95cf1e007a449bb407f5998b9bb6cbc177842d57726c0d1f"
},
{
"canonical_path": "vault/40-publish/interviews/single-command-local-bootstrap.md",
"legacy_path": "raw/interviews/single-command-local-bootstrap.md",
"sha256": "f67f6e8b6d85df68d97307a191f243d28a01cbbaffe1db4c6240fabedee066f2"
},
{
"canonical_path": "vault/40-publish/interviews/spring-jpa-flyway-initialization-lifecycle-circular-dependency.md",
"legacy_path": "raw/interviews/spring-jpa-flyway-initialization-lifecycle-circular-dependency.md",
"sha256": "df0b8058cf0a5db91660f5259ed7554b4aab85f0860cdbb70a066894b21256d8"
},
{
"canonical_path": "vault/40-publish/interviews/startup-fail-fast-config-validation-2026-06-06.md",
"legacy_path": "raw/interviews/startup-fail-fast-config-validation-2026-06-06.md",
"sha256": "0af329dd5c6334c4372ba97a93c84e2de34507ddce7f2fdecbdb0b280aa92bf2"
},
{
"canonical_path": "vault/40-publish/interviews/transaction-port-vs-spring-transactional.md",
"legacy_path": "raw/interviews/transaction-port-vs-spring-transactional.md",
"sha256": "48964fbf9a07620ef4ebf03635a2c585d9484ac3182183e6bfa1940e423621c0"
},
{
"canonical_path": "vault/40-publish/interviews/transactional-outbox-skip-locked-implementation-2026-06-11.md",
"legacy_path": "raw/interviews/transactional-outbox-skip-locked-implementation-2026-06-11.md",
"sha256": "cce64dc82b83444a893581aefb542a03cc7f8726c51cf1260b6e54e475dc3065"
},
{
"canonical_path": "vault/40-publish/interviews/trivy-suppression-dual-control-governance-2026-06-20.md",
"legacy_path": "raw/interviews/trivy-suppression-dual-control-governance-2026-06-20.md",
"sha256": "552fed100d0d3ffb4bdc43b5d4edc0135fec579528a2f1578fb0bd9b9ae28e8e"
},
{
"canonical_path": "vault/40-publish/publish-blog/api-error-envelope-blog.md",
"legacy_path": "wiki/publish-blog/api-error-envelope-blog.md",
"sha256": "8f2308c19dcc67693318242927e148e3efe66e625da74f692017d341842fb988"
},
{
"canonical_path": "vault/40-publish/publish-blog/api-evolution-schema-blog.md",
"legacy_path": "wiki/publish-blog/api-evolution-schema-blog.md",
"sha256": "55094d51c28fcbaf49bd959707a9fb52e698a3c7e39bf1b68979c6606f22c318"
},
{
"canonical_path": "vault/40-publish/publish-blog/boundary-validation-mapping-blog.md",
"legacy_path": "wiki/publish-blog/boundary-validation-mapping-blog.md",
"sha256": "b7b74ca3cf785e47e76884b34e439a4ada442f47cc651a710259760ab2d52172"
},
{
"canonical_path": "vault/40-publish/publish-blog/ci-supply-chain-blog.md",
"legacy_path": "wiki/publish-blog/ci-supply-chain-blog.md",
"sha256": "c1050fcea60bcc7bf1609577e61aaffc56ecb5ebf357a57178f2c43cc6fae9af"
},
{
"canonical_path": "vault/40-publish/publish-blog/clean-architecture-package-layout-blog.md",
"legacy_path": "wiki/publish-blog/clean-architecture-package-layout-blog.md",
"sha256": "c483b96ee060e04ac869bece316b09ba131d13d9f2ccca145bb022cf0beb777c"
},
{
"canonical_path": "vault/40-publish/publish-blog/data-layer-persistence-cache-outbound-blog.md",
"legacy_path": "wiki/publish-blog/data-layer-persistence-cache-outbound-blog.md",
"sha256": "b7b2d74e5ce6d793ef75112312a6887b1d65f932ba044b565defd48252e8c9f9"
},
{
"canonical_path": "vault/40-publish/publish-blog/optional-adapter-config-contract-blog.md",
"legacy_path": "wiki/publish-blog/optional-adapter-config-contract-blog.md",
"sha256": "6c1e367f193341adc0773f77a21f0b6b2ec4366aed8e501c9ffcea09925daf66"
},
{
"canonical_path": "vault/40-publish/topics-interview/clean-architecture.md",
"legacy_path": "wiki/topics-interview/clean-architecture.md",
"sha256": "f34b587694a6024529b9e19c2cd2d503a43f62d2e1abe6097f614e7837b964d0"
},
{
"canonical_path": "vault/50-journal/daily-notes/2026-05-27.md",
"legacy_path": "raw/daily-notes/2026-05-27.md",
"sha256": "fcec8fe108f9995fe800f4ac3b7535a6e3ace21fbb68b751aa2ebdd2e2369ead"
},
{
"canonical_path": "vault/50-journal/daily-notes/2026-05-28.md",
"legacy_path": "raw/daily-notes/2026-05-28.md",
"sha256": "8d4acde6a54832c08d49e1bdd2e0dd546a9a39dc1070f57cd7c771d0ed730aad"
},
{
"canonical_path": "vault/50-journal/daily-notes/2026-06-14.md",
"legacy_path": "raw/daily-notes/2026-06-14.md",
"sha256": "83150582713e0f6f347c0d4c4ed0e140e78d019d48a072ef3991fa6387e0fe0e"
},
{
"canonical_path": "vault/50-journal/daily-notes/2026-06-30.md",
"legacy_path": "raw/daily-notes/2026-06-30.md",
"sha256": "187f9f14aed9f9a1838614c7118ce4fc93dd8f7df4a90cf6ae6d83b181e3d4e2"
},
{
"canonical_path": "vault/50-journal/daily-tasks/README.md",
"legacy_path": "raw/daily-tasks/README.md",
"sha256": "5180c801702d4142cc55e848f22651ca791c126f3c59b8c369bac6908b18a598"
},
{
"canonical_path": "vault/50-journal/daily-tasks/develop/2026-05-29-archunit-controller-domain-return-rule.md",
"legacy_path": "raw/daily-tasks/develop/2026-05-29-archunit-controller-domain-return-rule.md",
"sha256": "4d86edd5480134bc3621ca7478c17c471774acbf6ff79c7513869eae43ff3349"
},
{
"canonical_path": "vault/50-journal/daily-tasks/infra/2026-05-29-actuator-readiness-probe-db-disconnect-detection.md",
"legacy_path": "raw/daily-tasks/infra/2026-05-29-actuator-readiness-probe-db-disconnect-detection.md",
"sha256": "40479b20920b743e25ba30dd52a823f29a8d27ec27130a161cc67adad25df41b"
},
{
"canonical_path": "vault/50-journal/invest-daily/2026-06-06.md",
"legacy_path": "raw/invest-daily/2026-06-06.md",
"sha256": "ae5f600aae16da693fa2bc7ca1e043083b13bfb9cb7ae00f418e356dbae167b3"
},
{
"canonical_path": "vault/50-journal/invest-daily/2026-06-08.md",
"legacy_path": "raw/invest-daily/2026-06-08.md",
"sha256": "5e74dace97d51d1039a9e10f7991077cd1c39baf075755cd5e5144ba21591406"
},
{
"canonical_path": "vault/50-journal/invest-ledger/ledger.md",
"legacy_path": "raw/invest-ledger/ledger.md",
"sha256": "4b6548c0b9075c8fa512482f46fb8ab775f877a4d62a88d8862f981b26f434d4"
},
{
"canonical_path": "vault/90-archive/archive/branch-notes/feature-template-instantiation-contract.md",
"legacy_path": "raw/archive/branch-notes/feature-template-instantiation-contract.md",
"sha256": "80223d925966681831467d75c34b69d5bf24a5dba49d36b1b6fe437a2bafb792"
}
],
"schema_version": "vault-migration/v1"
},
"mode": "canonical",
"rollback_mapping": {
"entries": [
{
"canonical_path": "vault/00-system/rules/advisory-depth.md",
"legacy_path": "rules/advisory-depth.md"
},
{
"canonical_path": "vault/00-system/rules/branch-depth-gate.md",
"legacy_path": "rules/branch-depth-gate.md"
},
{
"canonical_path": "vault/00-system/rules/consistency-contract.md",
"legacy_path": "rules/consistency-contract.md"
},
{
"canonical_path": "vault/00-system/rules/coverage-gate.md",
"legacy_path": "rules/coverage-gate.md"
},
{
"canonical_path": "vault/00-system/rules/diagram-standards.md",
"legacy_path": "rules/diagram-standards.md"
},
{
"canonical_path": "vault/00-system/rules/evidence-first-research.md",
"legacy_path": "rules/evidence-first-research.md"
},
{
"canonical_path": "vault/00-system/rules/execution-profiles.md",
"legacy_path": "rules/execution-profiles.md"
},
{
"canonical_path": "vault/00-system/rules/extraction-tiering.md",
"legacy_path": "rules/extraction-tiering.md"
},
{
"canonical_path": "vault/00-system/rules/linking-rules.md",
"legacy_path": "rules/linking-rules.md"
},
{
"canonical_path": "vault/00-system/rules/naming-conventions.md",
"legacy_path": "rules/naming-conventions.md"
},
{
"canonical_path": "vault/00-system/rules/project-readiness-gate.md",
"legacy_path": "rules/project-readiness-gate.md"
},
{
"canonical_path": "vault/00-system/rules/prose-style.md",
"legacy_path": "rules/prose-style.md"
},
{
"canonical_path": "vault/00-system/rules/reporting-standards.md",
"legacy_path": "rules/reporting-standards.md"
},
{
"canonical_path": "vault/00-system/rules/subagent-input-contracts.md",
"legacy_path": "rules/subagent-input-contracts.md"
},
{
"canonical_path": "vault/00-system/rules/tag-taxonomy.md",
"legacy_path": "rules/tag-taxonomy.md"
},
{
"canonical_path": "vault/00-system/templates/blog-template.md",
"legacy_path": "templates/blog-template.md"
},
{
"canonical_path": "vault/00-system/templates/blog-topic-template.md",
"legacy_path": "templates/blog-topic-template.md"
},
{
"canonical_path": "vault/00-system/templates/branch-note-template.md",
"legacy_path": "templates/branch-note-template.md"
},
{
"canonical_path": "vault/00-system/templates/branch-report-template.md",
"legacy_path": "templates/branch-report-template.md"
},
{
"canonical_path": "vault/00-system/templates/concept-template.md",
"legacy_path": "templates/concept-template.md"
},
{
"canonical_path": "vault/00-system/templates/daily-note-template.md",
"legacy_path": "templates/daily-note-template.md"
},
{
"canonical_path": "vault/00-system/templates/daily-task-develop-template.md",
"legacy_path": "templates/daily-task-develop-template.md"
},
{
"canonical_path": "vault/00-system/templates/daily-task-infra-template.md",
"legacy_path": "templates/daily-task-infra-template.md"
},
{
"canonical_path": "vault/00-system/templates/error-note-template.md",
"legacy_path": "templates/error-note-template.md"
},
{
"canonical_path": "vault/00-system/templates/explainer-template.md",
"legacy_path": "templates/explainer-template.md"
},
{
"canonical_path": "vault/00-system/templates/interview-prep-template.md",
"legacy_path": "templates/interview-prep-template.md"
},
{
"canonical_path": "vault/00-system/templates/interview-template.md",
"legacy_path": "templates/interview-template.md"
},
{
"canonical_path": "vault/00-system/templates/invest-concept-template.md",
"legacy_path": "templates/invest-concept-template.md"
},
{
"canonical_path": "vault/00-system/templates/invest-daily-template.md",
"legacy_path": "templates/invest-daily-template.md"
},
{
"canonical_path": "vault/00-system/templates/invest-field-card-template.md",
"legacy_path": "templates/invest-field-card-template.md"
},
{
"canonical_path": "vault/00-system/templates/invest-ledger-template.md",
"legacy_path": "templates/invest-ledger-template.md"
},
{
"canonical_path": "vault/00-system/templates/invest-plan-template.md",
"legacy_path": "templates/invest-plan-template.md"
},
{
"canonical_path": "vault/00-system/templates/invest-research-template.md",
"legacy_path": "templates/invest-research-template.md"
},
{
"canonical_path": "vault/00-system/templates/invest-strategy-template.md",
"legacy_path": "templates/invest-strategy-template.md"
},
{
"canonical_path": "vault/00-system/templates/job-posting-template.md",
"legacy_path": "templates/job-posting-template.md"
},
{
"canonical_path": "vault/00-system/templates/lecture-note-template.md",
"legacy_path": "templates/lecture-note-template.md"
},
{
"canonical_path": "vault/00-system/templates/portfolio-template.md",
"legacy_path": "templates/portfolio-template.md"
},
{
"canonical_path": "vault/00-system/templates/project-report-template.md",
"legacy_path": "templates/project-report-template.md"
},
{
"canonical_path": "vault/00-system/templates/project-template.md",
"legacy_path": "templates/project-template.md"
},
{
"canonical_path": "vault/00-system/templates/raw-source-template.md",
"legacy_path": "templates/raw-source-template.md"
},
{
"canonical_path": "vault/00-system/templates/source-summary-template.md",
"legacy_path": "templates/source-summary-template.md"
},
{
"canonical_path": "vault/00-system/templates/wiki-project-template.md",
"legacy_path": "templates/wiki-project-template.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-accessibility-baseline-contract.md",
"legacy_path": "raw/branch-notes/feature-accessibility-baseline-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-api-client-response-envelope-contract.md",
"legacy_path": "raw/branch-notes/feature-api-client-response-envelope-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-async-ui-state-contract.md",
"legacy_path": "raw/branch-notes/feature-async-ui-state-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-boundary-mapper-viewmodel-contract.md",
"legacy_path": "raw/branch-notes/feature-boundary-mapper-viewmodel-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-architecture-enforcement-lint-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-architecture-enforcement-lint-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-auth-session-integration-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-auth-session-integration-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-browser-security-boundary-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-browser-security-boundary-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-build-bundle-supply-chain-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-build-bundle-supply-chain-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-ci-quality-gates-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-ci-quality-gates-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-clean-architecture-layering-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-clean-architecture-layering-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-contract-compatibility-governance.md",
"legacy_path": "raw/branch-notes/feature-frontend-contract-compatibility-governance.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-contract-registry-governance.md",
"legacy_path": "raw/branch-notes/feature-frontend-contract-registry-governance.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-env-runtime-config-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-env-runtime-config-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-error-classification-boundary-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-error-classification-boundary-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-observability-logging-trace-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-observability-logging-trace-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-operational-runbook-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-operational-runbook-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-project-bootstrap-toolchain-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-project-bootstrap-toolchain-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-release-cache-rollback-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-release-cache-rollback-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-render-recovery-boundary-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-render-recovery-boundary-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-storage-registry-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-storage-registry-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-frontend-test-taxonomy-contract.md",
"legacy_path": "raw/branch-notes/feature-frontend-test-taxonomy-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-routing-navigation-guard-contract.md",
"legacy_path": "raw/branch-notes/feature-routing-navigation-guard-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-runtime-schema-validation-contract.md",
"legacy_path": "raw/branch-notes/feature-runtime-schema-validation-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-sample-feature-slice-contract-fixture.md",
"legacy_path": "raw/branch-notes/feature-sample-feature-slice-contract-fixture.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-server-state-caching-contract.md",
"legacy_path": "raw/branch-notes/feature-server-state-caching-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-tailwind-design-token-styling-contract.md",
"legacy_path": "raw/branch-notes/feature-tailwind-design-token-styling-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/branch-notes/feature-web-vitals-performance-budget-contract.md",
"legacy_path": "raw/branch-notes/feature-web-vitals-performance-budget-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-frontend-operational-contract/project-notes/ca-skeleton-frontend-operational-contract.md",
"legacy_path": "raw/project-notes/ca-skeleton-frontend-operational-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/chore-harness-policy-engine-alignment.md",
"legacy_path": "raw/branch-notes/chore-harness-policy-engine-alignment.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/chore-ulid-to-uuidv7.md",
"legacy_path": "raw/branch-notes/chore-ulid-to-uuidv7.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-api-compatibility-deprecation-contract.md",
"legacy_path": "raw/branch-notes/feature-api-compatibility-deprecation-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-api-contract-baseline.md",
"legacy_path": "raw/branch-notes/feature-api-contract-baseline.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-application-port-usecase-contract.md",
"legacy_path": "raw/branch-notes/feature-application-port-usecase-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-application-query-bypass-contract.md",
"legacy_path": "raw/branch-notes/feature-application-query-bypass-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-architecture-enforcement-rules.md",
"legacy_path": "raw/branch-notes/feature-architecture-enforcement-rules.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-authentication-authorization-contract.md",
"legacy_path": "raw/branch-notes/feature-authentication-authorization-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-background-job-async-contract.md",
"legacy_path": "raw/branch-notes/feature-background-job-async-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-boundary-validation-mapping-contract.md",
"legacy_path": "raw/branch-notes/feature-boundary-validation-mapping-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-build-release-supply-chain-contract.md",
"legacy_path": "raw/branch-notes/feature-build-release-supply-chain-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-business-rule-validation-contract.md",
"legacy_path": "raw/branch-notes/feature-business-rule-validation-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-cache-consistency-contract.md",
"legacy_path": "raw/branch-notes/feature-cache-consistency-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-cachestore-multi-backend-router.md",
"legacy_path": "raw/branch-notes/feature-cachestore-multi-backend-router.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-ci-quality-gates-contract.md",
"legacy_path": "raw/branch-notes/feature-ci-quality-gates-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-container-runtime-contract.md",
"legacy_path": "raw/branch-notes/feature-container-runtime-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-contract-registry-governance.md",
"legacy_path": "raw/branch-notes/feature-contract-registry-governance.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-contract-verification-test-suite.md",
"legacy_path": "raw/branch-notes/feature-contract-verification-test-suite.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-data-retention-privacy-contract.md",
"legacy_path": "raw/branch-notes/feature-data-retention-privacy-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-database-connection-pool-contract.md",
"legacy_path": "raw/branch-notes/feature-database-connection-pool-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-dependency-vulnerability-management-contract.md",
"legacy_path": "raw/branch-notes/feature-dependency-vulnerability-management-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-developer-experience-contract.md",
"legacy_path": "raw/branch-notes/feature-developer-experience-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-distributed-lock-contract.md",
"legacy_path": "raw/branch-notes/feature-distributed-lock-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-distributed-tracing-contract.md",
"legacy_path": "raw/branch-notes/feature-distributed-tracing-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-domain-event-outbox-contract.md",
"legacy_path": "raw/branch-notes/feature-domain-event-outbox-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-domain-feature-onboarding-contract.md",
"legacy_path": "raw/branch-notes/feature-domain-feature-onboarding-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-domain-modeling-guardrails.md",
"legacy_path": "raw/branch-notes/feature-domain-modeling-guardrails.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-env-driven-runtime-configuration.md",
"legacy_path": "raw/branch-notes/feature-env-driven-runtime-configuration.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-file-resource-handling-contract.md",
"legacy_path": "raw/branch-notes/feature-file-resource-handling-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-implementation-readiness-scorecard.md",
"legacy_path": "raw/branch-notes/feature-implementation-readiness-scorecard.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-integration-adapter-templates.md",
"legacy_path": "raw/branch-notes/feature-integration-adapter-templates.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-log-management-contract.md",
"legacy_path": "raw/branch-notes/feature-log-management-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-management-actuator-security-contract.md",
"legacy_path": "raw/branch-notes/feature-management-actuator-security-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-messaging-multibroker-router.md",
"legacy_path": "raw/branch-notes/feature-messaging-multibroker-router.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-metrics-alerting-contract.md",
"legacy_path": "raw/branch-notes/feature-metrics-alerting-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-migration-startup-contract.md",
"legacy_path": "raw/branch-notes/feature-migration-startup-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-notification-provider-spi.md",
"legacy_path": "raw/branch-notes/feature-notification-provider-spi.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-operational-error-observability-foundation.md",
"legacy_path": "raw/branch-notes/feature-operational-error-observability-foundation.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-operational-runbook-contract.md",
"legacy_path": "raw/branch-notes/feature-operational-runbook-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-outbound-http-client-baseline.md",
"legacy_path": "raw/branch-notes/feature-outbound-http-client-baseline.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-persistence-auditing-contract.md",
"legacy_path": "raw/branch-notes/feature-persistence-auditing-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-persistence-failure-baseline.md",
"legacy_path": "raw/branch-notes/feature-persistence-failure-baseline.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-rate-limit-idempotency-contract.md",
"legacy_path": "raw/branch-notes/feature-rate-limit-idempotency-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-repository-access-permission-contract.md",
"legacy_path": "raw/branch-notes/feature-repository-access-permission-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-resource-identifier-contract.md",
"legacy_path": "raw/branch-notes/feature-resource-identifier-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-runtime-context-propagation-contract.md",
"legacy_path": "raw/branch-notes/feature-runtime-context-propagation-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-runtime-health-lifecycle-contract.md",
"legacy_path": "raw/branch-notes/feature-runtime-health-lifecycle-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-sample-domain-contract-fixture.md",
"legacy_path": "raw/branch-notes/feature-sample-domain-contract-fixture.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-sample-portfolio-public-access.md",
"legacy_path": "raw/branch-notes/feature-sample-portfolio-public-access.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-sample-removal-adoption-contract.md",
"legacy_path": "raw/branch-notes/feature-sample-removal-adoption-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-schema-serialization-contract.md",
"legacy_path": "raw/branch-notes/feature-schema-serialization-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-secrets-config-source-contract.md",
"legacy_path": "raw/branch-notes/feature-secrets-config-source-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-security-operational-baseline.md",
"legacy_path": "raw/branch-notes/feature-security-operational-baseline.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-skeleton-package-blueprint-contract.md",
"legacy_path": "raw/branch-notes/feature-skeleton-package-blueprint-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-startup-failure-log-suppression.md",
"legacy_path": "raw/branch-notes/feature-startup-failure-log-suppression.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-static-analysis-quality-contract.md",
"legacy_path": "raw/branch-notes/feature-static-analysis-quality-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-streaming-response-contract.md",
"legacy_path": "raw/branch-notes/feature-streaming-response-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-tenant-context-policy.md",
"legacy_path": "raw/branch-notes/feature-tenant-context-policy.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-test-taxonomy-fixture-contract.md",
"legacy_path": "raw/branch-notes/feature-test-taxonomy-fixture-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-transaction-concurrency-contract.md",
"legacy_path": "raw/branch-notes/feature-transaction-concurrency-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/branch-notes/feature-webhook-outbound-contract.md",
"legacy_path": "raw/branch-notes/feature-webhook-outbound-contract.md"
},
{
"canonical_path": "vault/10-projects/ca-skeleton-operational-contract/project-notes/ca-skeleton-operational-contract.md",
"legacy_path": "raw/project-notes/ca-skeleton-operational-contract.md"
},
{
"canonical_path": "vault/10-projects/diagrams/ca-skeleton-frontend/architecture-deployment-2026-07-18.drawio",
"legacy_path": "raw/diagrams/ca-skeleton-frontend/architecture-deployment-2026-07-18.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/ca-skeleton-frontend/architecture-overview-2026-07-18.drawio",
"legacy_path": "raw/diagrams/ca-skeleton-frontend/architecture-overview-2026-07-18.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/ca-skeleton/architecture-modules-2026-05-26.drawio",
"legacy_path": "raw/diagrams/ca-skeleton/architecture-modules-2026-05-26.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/ca-skeleton/architecture-runtime-topology-2026-05-26.drawio",
"legacy_path": "raw/diagrams/ca-skeleton/architecture-runtime-topology-2026-05-26.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.drawio",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.svg",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.svg"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-hexagonal-2026-07-04.drawio",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-hexagonal-2026-07-04.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-hexagonal-2026-07-04.svg",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-hexagonal-2026-07-04.svg"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-layered-2026-07-04.drawio",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-layered-2026-07-04.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/clean-architecture-topic/architecture-layered-2026-07-04.svg",
"legacy_path": "raw/diagrams/clean-architecture-topic/architecture-layered-2026-07-04.svg"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p1a-edge-no-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p1a-edge-no-google-2026-05-26.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p1b-edge-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p1b-edge-google-2026-05-26.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p2a-cluster-internal-no-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p2a-cluster-internal-no-google-2026-05-26.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p2b-cluster-internal-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p2b-cluster-internal-google-2026-05-26.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p3a-single-ec2-no-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p3a-single-ec2-no-google-2026-05-26.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/architecture-p3b-single-ec2-google-2026-05-26.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/architecture-p3b-single-ec2-google-2026-05-26.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/archived/architecture-p3a-single-ec2-no-google-2026-05-26-v1.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/archived/architecture-p3a-single-ec2-no-google-2026-05-26-v1.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/keycloak-patterns/archived/architecture-p3a-single-ec2-no-google-2026-05-26-v2.drawio",
"legacy_path": "raw/diagrams/keycloak-patterns/archived/architecture-p3a-single-ec2-no-google-2026-05-26-v2.drawio"
},
{
"canonical_path": "vault/10-projects/diagrams/nplus1-presentation-prep/architecture-lab-loop-2026-07-20.drawio",
"legacy_path": "raw/diagrams/nplus1-presentation-prep/architecture-lab-loop-2026-07-20.drawio"
},
{
"canonical_path": "vault/10-projects/errors/apply-patch-auto-approval-rejected-2026-05-28.md",
"legacy_path": "raw/errors/apply-patch-auto-approval-rejected-2026-05-28.md"
},
{
"canonical_path": "vault/10-projects/errors/archunit-b7-configprops-nested-record-accessor-outbound-2026-06-13.md",
"legacy_path": "raw/errors/archunit-b7-configprops-nested-record-accessor-outbound-2026-06-13.md"
},
{
"canonical_path": "vault/10-projects/errors/archunit-b7-configuration-bean-factory-return-type-2026-06-09.md",
"legacy_path": "raw/errors/archunit-b7-configuration-bean-factory-return-type-2026-06-09.md"
},
{
"canonical_path": "vault/10-projects/errors/archunit-empty-should-anchor-2026-05-27.md",
"legacy_path": "raw/errors/archunit-empty-should-anchor-2026-05-27.md"
},
{
"canonical_path": "vault/10-projects/errors/archunit-importpackages-empty-vacuous-stale-build-2026-06-20.md",
"legacy_path": "raw/errors/archunit-importpackages-empty-vacuous-stale-build-2026-06-20.md"
},
{
"canonical_path": "vault/10-projects/errors/archunit-no-uuid-random-trace-id-false-positive-2026-06-01.md",
"legacy_path": "raw/errors/archunit-no-uuid-random-trace-id-false-positive-2026-06-01.md"
},
{
"canonical_path": "vault/10-projects/errors/archunit-test-scope-sample-ticket-inclusion-2026-05-28.md",
"legacy_path": "raw/errors/archunit-test-scope-sample-ticket-inclusion-2026-05-28.md"
},
{
"canonical_path": "vault/10-projects/errors/archunit-testcompileonly-class-loading-2026-06-02.md",
"legacy_path": "raw/errors/archunit-testcompileonly-class-loading-2026-06-02.md"
},
{
"canonical_path": "vault/10-projects/errors/bootstrap-postgres-port-collision-2026-06-24.md",
"legacy_path": "raw/errors/bootstrap-postgres-port-collision-2026-06-24.md"
},
{
"canonical_path": "vault/10-projects/errors/ca-comment-to-readme-subagents-overstrip-runtime-strings.md",
"legacy_path": "raw/errors/ca-comment-to-readme-subagents-overstrip-runtime-strings.md"
},
{
"canonical_path": "vault/10-projects/errors/ca-gitignored-seed-divergence-at-rebase.md",
"legacy_path": "raw/errors/ca-gitignored-seed-divergence-at-rebase.md"
},
{
"canonical_path": "vault/10-projects/errors/ca-public-path-snapshot-scope-violation.md",
"legacy_path": "raw/errors/ca-public-path-snapshot-scope-violation.md"
},
{
"canonical_path": "vault/10-projects/errors/ca-tmpl-import-gate-false-positive-shared-contract.md",
"legacy_path": "raw/errors/ca-tmpl-import-gate-false-positive-shared-contract.md"
},
{
"canonical_path": "vault/10-projects/errors/ca-tmpl-preexisting-check-baseline-failures-2026-07-20.md",
"legacy_path": "raw/errors/ca-tmpl-preexisting-check-baseline-failures-2026-07-20.md"
},
{
"canonical_path": "vault/10-projects/errors/ci-fan-in-skipped-not-failed-and-gitignored-config-2026-06-20.md",
"legacy_path": "raw/errors/ci-fan-in-skipped-not-failed-and-gitignored-config-2026-06-20.md"
},
{
"canonical_path": "vault/10-projects/errors/contract-registry-reference-row-universal-column-false-fail-2026-06-20.md",
"legacy_path": "raw/errors/contract-registry-reference-row-universal-column-false-fail-2026-06-20.md"
},
{
"canonical_path": "vault/10-projects/errors/developer-experience-contract-agents-bridge-2026-07-15.md",
"legacy_path": "raw/errors/developer-experience-contract-agents-bridge-2026-07-15.md"
},
{
"canonical_path": "vault/10-projects/errors/flyway-launcher-divergent-migration-set-shared-dev-db-2026-06-12.md",
"legacy_path": "raw/errors/flyway-launcher-divergent-migration-set-shared-dev-db-2026-06-12.md"
},
{
"canonical_path": "vault/10-projects/errors/gitea-act-action-tag-and-dependency-graph-2026-06-20.md",
"legacy_path": "raw/errors/gitea-act-action-tag-and-dependency-graph-2026-06-20.md"
},
{
"canonical_path": "vault/10-projects/errors/gitea-act-missing-jq-job-bootstrap-2026-06-23.md",
"legacy_path": "raw/errors/gitea-act-missing-jq-job-bootstrap-2026-06-23.md"
},
{
"canonical_path": "vault/10-projects/errors/global-sed-env-rename-pitfalls-2026-06-06.md",
"legacy_path": "raw/errors/global-sed-env-rename-pitfalls-2026-06-06.md"
},
{
"canonical_path": "vault/10-projects/errors/gradle-custom-source-set-isolation-failures-2026-06-25.md",
"legacy_path": "raw/errors/gradle-custom-source-set-isolation-failures-2026-06-25.md"
},
{
"canonical_path": "vault/10-projects/errors/gradle-strict-lock-stale-entry-non-resolvable-config-2026-07-08.md",
"legacy_path": "raw/errors/gradle-strict-lock-stale-entry-non-resolvable-config-2026-07-08.md"
},
{
"canonical_path": "vault/10-projects/errors/gradle-wrapper-lock-read-only-sandbox-2026-06-10.md",
"legacy_path": "raw/errors/gradle-wrapper-lock-read-only-sandbox-2026-06-10.md"
},
{
"canonical_path": "vault/10-projects/errors/gradle-wrapper-readonly-cache-2026-05-28.md",
"legacy_path": "raw/errors/gradle-wrapper-readonly-cache-2026-05-28.md"
},
{
"canonical_path": "vault/10-projects/errors/gradle-wrapper-sandbox-lock-2026-06-25.md",
"legacy_path": "raw/errors/gradle-wrapper-sandbox-lock-2026-06-25.md"
},
{
"canonical_path": "vault/10-projects/errors/gradle-wrapper-sandbox-lock-readiness-scorecard-2026-06-26.md",
"legacy_path": "raw/errors/gradle-wrapper-sandbox-lock-readiness-scorecard-2026-06-26.md"
},
{
"canonical_path": "vault/10-projects/errors/hibernate-dto-projection-explain-width-not-narrower-2026-07-13.md",
"legacy_path": "raw/errors/hibernate-dto-projection-explain-width-not-narrower-2026-07-13.md"
},
{
"canonical_path": "vault/10-projects/errors/hibernate-getcollectionfetchcount-batch-semantics-2026-07-13.md",
"legacy_path": "raw/errors/hibernate-getcollectionfetchcount-batch-semantics-2026-07-13.md"
},
{
"canonical_path": "vault/10-projects/errors/hibernate7-hhh90003004-collection-fetch-paging-2026-07-13.md",
"legacy_path": "raw/errors/hibernate7-hhh90003004-collection-fetch-paging-2026-07-13.md"
},
{
"canonical_path": "vault/10-projects/errors/idempotency-column-definition-base-check-failure-2026-07-15.md",
"legacy_path": "raw/errors/idempotency-column-definition-base-check-failure-2026-07-15.md"
},
{
"canonical_path": "vault/10-projects/errors/idempotency-expired-row-reclaim-409-loop-2026-06-09.md",
"legacy_path": "raw/errors/idempotency-expired-row-reclaim-409-loop-2026-06-09.md"
},
{
"canonical_path": "vault/10-projects/errors/internal-auth-misconfiguration-retryable-invariant-conflict-2026-06-08.md",
"legacy_path": "raw/errors/internal-auth-misconfiguration-retryable-invariant-conflict-2026-06-08.md"
},
{
"canonical_path": "vault/10-projects/errors/jdk-httpclient-dns-unresolvedaddress-connectexception-2026-06-11.md",
"legacy_path": "raw/errors/jdk-httpclient-dns-unresolvedaddress-connectexception-2026-06-11.md"
},
{
"canonical_path": "vault/10-projects/errors/jpa-repository-scan-miss-multimodule-2026-06-10.md",
"legacy_path": "raw/errors/jpa-repository-scan-miss-multimodule-2026-06-10.md"
},
{
"canonical_path": "vault/10-projects/errors/logback-shared-jvm-test-leak-pii-contract-2026-06-23.md",
"legacy_path": "raw/errors/logback-shared-jvm-test-leak-pii-contract-2026-06-23.md"
},
{
"canonical_path": "vault/10-projects/errors/mapping-exception-location-archunit-catch-2026-05-29.md",
"legacy_path": "raw/errors/mapping-exception-location-archunit-catch-2026-05-29.md"
},
{
"canonical_path": "vault/10-projects/errors/method-security-cglib-vs-jdk-proxy-usecase-injection-2026-06-08.md",
"legacy_path": "raw/errors/method-security-cglib-vs-jdk-proxy-usecase-injection-2026-06-08.md"
},
{
"canonical_path": "vault/10-projects/errors/method-security-class-pointcut-final-usecase-bean-2026-06-12.md",
"legacy_path": "raw/errors/method-security-class-pointcut-final-usecase-bean-2026-06-12.md"
},
{
"canonical_path": "vault/10-projects/errors/micrometer-meterfilter-replacetagvalues-functioncounter-2026-06-11.md",
"legacy_path": "raw/errors/micrometer-meterfilter-replacetagvalues-functioncounter-2026-06-11.md"
},
{
"canonical_path": "vault/10-projects/errors/mockmvc-406-produces-accept-double-fault-2026-06-02.md",
"legacy_path": "raw/errors/mockmvc-406-produces-accept-double-fault-2026-06-02.md"
},
{
"canonical_path": "vault/10-projects/errors/onboarding-fixture-package-path-mismatch-2026-06-25.md",
"legacy_path": "raw/errors/onboarding-fixture-package-path-mismatch-2026-06-25.md"
},
{
"canonical_path": "vault/10-projects/errors/responseentityexceptionhandler-ambiguous-exception-handler-2026-06-02.md",
"legacy_path": "raw/errors/responseentityexceptionhandler-ambiguous-exception-handler-2026-06-02.md"
},
{
"canonical_path": "vault/10-projects/errors/sample-portfolio-flyway-out-of-order-2026-06-23.md",
"legacy_path": "raw/errors/sample-portfolio-flyway-out-of-order-2026-06-23.md"
},
{
"canonical_path": "vault/10-projects/errors/sample-portfolio-oauth2-resource-server-dependency-2026-05-27.md",
"legacy_path": "raw/errors/sample-portfolio-oauth2-resource-server-dependency-2026-05-27.md"
},
{
"canonical_path": "vault/10-projects/errors/sample-portfolio-tomcat-port-in-use-check-2026-07-03.md",
"legacy_path": "raw/errors/sample-portfolio-tomcat-port-in-use-check-2026-07-03.md"
},
{
"canonical_path": "vault/10-projects/errors/sample-ticket-oauth2-resource-server-dependency-2026-05-27.md",
"legacy_path": "raw/errors/sample-ticket-oauth2-resource-server-dependency-2026-05-27.md"
},
{
"canonical_path": "vault/10-projects/errors/sandbox-build-verification-boundaries-2026-06-21.md",
"legacy_path": "raw/errors/sandbox-build-verification-boundaries-2026-06-21.md"
},
{
"canonical_path": "vault/10-projects/errors/scheduled-reaper-wrong-config-prefix-2026-06-09.md",
"legacy_path": "raw/errors/scheduled-reaper-wrong-config-prefix-2026-06-09.md"
},
{
"canonical_path": "vault/10-projects/errors/slim-jre-random-generator-missing-2026-06-24.md",
"legacy_path": "raw/errors/slim-jre-random-generator-missing-2026-06-24.md"
},
{
"canonical_path": "vault/10-projects/errors/spanerrorrecorder-constructor-breaks-webmvctest-slice-2026-06-14.md",
"legacy_path": "raw/errors/spanerrorrecorder-constructor-breaks-webmvctest-slice-2026-06-14.md"
},
{
"canonical_path": "vault/10-projects/errors/spotbugs-commons-lang3-bom-downgrade-noclassdef-2026-06-20.md",
"legacy_path": "raw/errors/spotbugs-commons-lang3-bom-downgrade-noclassdef-2026-06-20.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-boot-four-jackson-three-migration-2026-06-30.md",
"legacy_path": "raw/errors/spring-boot-four-jackson-three-migration-2026-06-30.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-boot-record-multi-constructor-no-default-constructor-2026-06-12.md",
"legacy_path": "raw/errors/spring-boot-record-multi-constructor-no-default-constructor-2026-06-12.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-componentcan-broad-scan-test-inner-config-collision-2026-06-17.md",
"legacy_path": "raw/errors/spring-componentcan-broad-scan-test-inner-config-collision-2026-06-17.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-componentcan-multimodule-overlap-collision-2026-06-23.md",
"legacy_path": "raw/errors/spring-componentcan-multimodule-overlap-collision-2026-06-23.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-conditionalonbean-ordering-user-config-vs-autoconfiguration-2026-06-17.md",
"legacy_path": "raw/errors/spring-conditionalonbean-ordering-user-config-vs-autoconfiguration-2026-06-17.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-configuration-bean-factory-method-not-processed-2026-06-11.md",
"legacy_path": "raw/errors/spring-configuration-bean-factory-method-not-processed-2026-06-11.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-integration-defaultlockrepository-aftersingletons-null-template-2026-06-13.md",
"legacy_path": "raw/errors/spring-integration-defaultlockrepository-aftersingletons-null-template-2026-06-13.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-jpa-flyway-circular-dependency-2026-06-23.md",
"legacy_path": "raw/errors/spring-jpa-flyway-circular-dependency-2026-06-23.md"
},
{
"canonical_path": "vault/10-projects/errors/spring-jpa-postgres-lob-oid-cast-2026-06-23.md",
"legacy_path": "raw/errors/spring-jpa-postgres-lob-oid-cast-2026-06-23.md"
},
{
"canonical_path": "vault/10-projects/errors/startup-log-suppression-spotless-format-2026-07-03.md",
"legacy_path": "raw/errors/startup-log-suppression-spotless-format-2026-07-03.md"
},
{
"canonical_path": "vault/10-projects/errors/testcontainers-two-context-shared-datasource-close-2026-06-11.md",
"legacy_path": "raw/errors/testcontainers-two-context-shared-datasource-close-2026-06-11.md"
},
{
"canonical_path": "vault/10-projects/errors/ulid-fixture-crockford-u-self-inconsistency-2026-06-01.md",
"legacy_path": "raw/errors/ulid-fixture-crockford-u-self-inconsistency-2026-06-01.md"
},
{
"canonical_path": "vault/10-projects/errors/webmvctest-component-filter-constructor-dep-breaks-slice-2026-06-14.md",
"legacy_path": "raw/errors/webmvctest-component-filter-constructor-dep-breaks-slice-2026-06-14.md"
},
{
"canonical_path": "vault/10-projects/errors/webmvctest-nested-springbootconfiguration-context-pollution-2026-06-01.md",
"legacy_path": "raw/errors/webmvctest-nested-springbootconfiguration-context-pollution-2026-06-01.md"
},
{
"canonical_path": "vault/10-projects/errors/webmvctest-slice-configprops-enum-placeholder-no-default-2026-06-20.md",
"legacy_path": "raw/errors/webmvctest-slice-configprops-enum-placeholder-no-default-2026-06-20.md"
},
{
"canonical_path": "vault/10-projects/invest-money-flow-system/project-notes/invest-money-flow-system.md",
"legacy_path": "raw/project-notes/invest-money-flow-system.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-account-linking-spa-ux.md",
"legacy_path": "raw/branch-notes/feature-keycloak-account-linking-spa-ux.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-account-linking-sub-vs-email.md",
"legacy_path": "raw/branch-notes/feature-keycloak-account-linking-sub-vs-email.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-bff-csrf-samesite-defense.md",
"legacy_path": "raw/branch-notes/feature-keycloak-bff-csrf-samesite-defense.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-bff-oauth2login-session.md",
"legacy_path": "raw/branch-notes/feature-keycloak-bff-oauth2login-session.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-bff-vs-spa-direct.md",
"legacy_path": "raw/branch-notes/feature-keycloak-bff-vs-spa-direct.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-docker-compose-stack.md",
"legacy_path": "raw/branch-notes/feature-keycloak-docker-compose-stack.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-edge-forwardauth-google-federation.md",
"legacy_path": "raw/branch-notes/feature-keycloak-edge-forwardauth-google-federation.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-edge-forwardauth-no-google.md",
"legacy_path": "raw/branch-notes/feature-keycloak-edge-forwardauth-no-google.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-federation-spa-zero-change.md",
"legacy_path": "raw/branch-notes/feature-keycloak-federation-spa-zero-change.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-first-broker-login-flow.md",
"legacy_path": "raw/branch-notes/feature-keycloak-first-broker-login-flow.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-four-pattern-tradeoff-matrix.md",
"legacy_path": "raw/branch-notes/feature-keycloak-four-pattern-tradeoff-matrix.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-google-claim-attribute-mapping.md",
"legacy_path": "raw/branch-notes/feature-keycloak-google-claim-attribute-mapping.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-google-redirect-uri-policy.md",
"legacy_path": "raw/branch-notes/feature-keycloak-google-redirect-uri-policy.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-header-spoofing-defense.md",
"legacy_path": "raw/branch-notes/feature-keycloak-header-spoofing-defense.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-https-termination-caddy-nginx.md",
"legacy_path": "raw/branch-notes/feature-keycloak-https-termination-caddy-nginx.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-idp-brokering-google-client.md",
"legacy_path": "raw/branch-notes/feature-keycloak-idp-brokering-google-client.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-idp-mappers-claim-to-role.md",
"legacy_path": "raw/branch-notes/feature-keycloak-idp-mappers-claim-to-role.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-internal-spa-direct-google-federation.md",
"legacy_path": "raw/branch-notes/feature-keycloak-internal-spa-direct-google-federation.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-internal-spa-direct-no-google.md",
"legacy_path": "raw/branch-notes/feature-keycloak-internal-spa-direct-no-google.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-iss-claim-hostname-mismatch.md",
"legacy_path": "raw/branch-notes/feature-keycloak-iss-claim-hostname-mismatch.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-nginx-auth-request-integration.md",
"legacy_path": "raw/branch-notes/feature-keycloak-nginx-auth-request-integration.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-oauth2-proxy-oidc-flow.md",
"legacy_path": "raw/branch-notes/feature-keycloak-oauth2-proxy-oidc-flow.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-patterns.md",
"legacy_path": "raw/branch-notes/feature-keycloak-patterns.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-pkce-flow-stages.md",
"legacy_path": "raw/branch-notes/feature-keycloak-pkce-flow-stages.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-public-domain-tunneling.md",
"legacy_path": "raw/branch-notes/feature-keycloak-public-domain-tunneling.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-realm-client-export.md",
"legacy_path": "raw/branch-notes/feature-keycloak-realm-client-export.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-refresh-rotation-and-logout.md",
"legacy_path": "raw/branch-notes/feature-keycloak-refresh-rotation-and-logout.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-refresh-token-rotation.md",
"legacy_path": "raw/branch-notes/feature-keycloak-refresh-token-rotation.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-reverse-proxy-headers.md",
"legacy_path": "raw/branch-notes/feature-keycloak-reverse-proxy-headers.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-single-ec2-google-federation.md",
"legacy_path": "raw/branch-notes/feature-keycloak-single-ec2-google-federation.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-single-ec2-no-google.md",
"legacy_path": "raw/branch-notes/feature-keycloak-single-ec2-no-google.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-spa-token-storage-tradeoff.md",
"legacy_path": "raw/branch-notes/feature-keycloak-spa-token-storage-tradeoff.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-spring-rs-audience-validator.md",
"legacy_path": "raw/branch-notes/feature-keycloak-spring-rs-audience-validator.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-spring-rs-role-mapping.md",
"legacy_path": "raw/branch-notes/feature-keycloak-spring-rs-role-mapping.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-three-leg-trust-chain.md",
"legacy_path": "raw/branch-notes/feature-keycloak-three-leg-trust-chain.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-traefik-forwardauth-alternative.md",
"legacy_path": "raw/branch-notes/feature-keycloak-traefik-forwardauth-alternative.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-vanilla-js-spa-pkce.md",
"legacy_path": "raw/branch-notes/feature-keycloak-vanilla-js-spa-pkce.md"
},
{
"canonical_path": "vault/10-projects/keycloak-patterns-overview/project-notes/keycloak-patterns-overview.md",
"legacy_path": "raw/project-notes/keycloak-patterns-overview.md"
},
{
"canonical_path": "vault/10-projects/llm-wiki-server-migration/project-notes/llm-wiki-server-migration.md",
"legacy_path": "raw/project-notes/llm-wiki-server-migration.md"
},
{
"canonical_path": "vault/10-projects/nplus1-presentation-prep/branch-notes/experiment-nplus1-feed-api-replay.md",
"legacy_path": "raw/branch-notes/experiment-nplus1-feed-api-replay.md"
},
{
"canonical_path": "vault/10-projects/nplus1-presentation-prep/branch-notes/experiment-nplus1-highlight-feed.md",
"legacy_path": "raw/branch-notes/experiment-nplus1-highlight-feed.md"
},
{
"canonical_path": "vault/10-projects/nplus1-presentation-prep/project-notes/nplus1-presentation-prep.md",
"legacy_path": "raw/project-notes/nplus1-presentation-prep.md"
},
{
"canonical_path": "vault/10-projects/project-infra-overview/project-notes/project-infra-overview.md",
"legacy_path": "raw/project-notes/project-infra-overview.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/adapter-togglz-ff4j-feature-toggle-library.md",
"legacy_path": "raw/company-tech-blogs/adapter-togglz-ff4j-feature-toggle-library.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/api-versioning-github-rest-date-header.md",
"legacy_path": "raw/company-tech-blogs/api-versioning-github-rest-date-header.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/api-versioning-stripe-date-based.md",
"legacy_path": "raw/company-tech-blogs/api-versioning-stripe-date-based.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/arhohuttunen-hexagonal-architecture-spring-boot.md",
"legacy_path": "raw/company-tech-blogs/arhohuttunen-hexagonal-architecture-spring-boot.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/aws-iam-arn-format.md",
"legacy_path": "raw/company-tech-blogs/aws-iam-arn-format.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/axonframework-transactionmanager-spring-adapter.md",
"legacy_path": "raw/company-tech-blogs/axonframework-transactionmanager-spring-adapter.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/brandur-stripe-idempotency-keys.md",
"legacy_path": "raw/company-tech-blogs/brandur-stripe-idempotency-keys.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/buckpal-archunit-lombok-allowlist-direct-transactional.md",
"legacy_path": "raw/company-tech-blogs/buckpal-archunit-lombok-allowlist-direct-transactional.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/cache-woowahan-after-commit-invalidation.md",
"legacy_path": "raw/company-tech-blogs/cache-woowahan-after-commit-invalidation.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/ci-flaky-test-quarantine-spotify-google.md",
"legacy_path": "raw/company-tech-blogs/ci-flaky-test-quarantine-spotify-google.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/config-launchdarkly-feature-flag-best-practice.md",
"legacy_path": "raw/company-tech-blogs/config-launchdarkly-feature-flag-best-practice.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/container-woowahan-spring-native-tradeoffs.md",
"legacy_path": "raw/company-tech-blogs/container-woowahan-spring-native-tradeoffs.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/cqrs-lite-clean-architecture-read-path-bypass-wakita.md",
"legacy_path": "raw/company-tech-blogs/cqrs-lite-clean-architecture-read-path-bypass-wakita.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/curity-bff-pattern-spa.md",
"legacy_path": "raw/company-tech-blogs/curity-bff-pattern-spa.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/curity-oauth2-scope-vs-permission-naming.md",
"legacy_path": "raw/company-tech-blogs/curity-oauth2-scope-vs-permission-naming.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/custom-transaction-interceptor-catnipcoder.md",
"legacy_path": "raw/company-tech-blogs/custom-transaction-interceptor-catnipcoder.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/deliberate-practice-software-developers-redgreencode.md",
"legacy_path": "raw/company-tech-blogs/deliberate-practice-software-developers-redgreencode.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/domain-event-sourcing-vs-cqrs-greg-young.md",
"legacy_path": "raw/company-tech-blogs/domain-event-sourcing-vs-cqrs-greg-young.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/domain-woowahan-ddd-aggregate-techblog.md",
"legacy_path": "raw/company-tech-blogs/domain-woowahan-ddd-aggregate-techblog.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/explicit-architecture-ddd-hexagonal-cqrs-hgraca.md",
"legacy_path": "raw/company-tech-blogs/explicit-architecture-ddd-hexagonal-cqrs-hgraca.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/feature-first-sahibinden-package-by-layer-vs-feature.md",
"legacy_path": "raw/company-tech-blogs/feature-first-sahibinden-package-by-layer-vs-feature.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/file-clamav-icap-gateway-scan.md",
"legacy_path": "raw/company-tech-blogs/file-clamav-icap-gateway-scan.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/github-api-error-format.md",
"legacy_path": "raw/company-tech-blogs/github-api-error-format.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/github-graphql-global-node-id.md",
"legacy_path": "raw/company-tech-blogs/github-graphql-global-node-id.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/hexagonal-reflectoring-transactional-placement.md",
"legacy_path": "raw/company-tech-blogs/hexagonal-reflectoring-transactional-placement.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/hexagonal-woowahan-techblog-2023.md",
"legacy_path": "raw/company-tech-blogs/hexagonal-woowahan-techblog-2023.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/idempotency-brandur-stripe-postgres.md",
"legacy_path": "raw/company-tech-blogs/idempotency-brandur-stripe-postgres.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/idempotency-redis-vs-db-storage.md",
"legacy_path": "raw/company-tech-blogs/idempotency-redis-vs-db-storage.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/idempotency-toss-payments-techblog.md",
"legacy_path": "raw/company-tech-blogs/idempotency-toss-payments-techblog.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/jwks-workos-unknown-kid-refresh-rate-limit-pattern.md",
"legacy_path": "raw/company-tech-blogs/jwks-workos-unknown-kid-refresh-rate-limit-pattern.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/keycloak-google-login-codemancers.md",
"legacy_path": "raw/company-tech-blogs/keycloak-google-login-codemancers.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/keycloak-jwt-role-extraction-betweendata.md",
"legacy_path": "raw/company-tech-blogs/keycloak-jwt-role-extraction-betweendata.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/layer-first-kamilmazurek-github-template.md",
"legacy_path": "raw/company-tech-blogs/layer-first-kamilmazurek-github-template.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/lock-subskribe-advisory-lock-distributed-consensus.md",
"legacy_path": "raw/company-tech-blogs/lock-subskribe-advisory-lock-distributed-consensus.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/metric-toss-payments-alert-severity-techblog.md",
"legacy_path": "raw/company-tech-blogs/metric-toss-payments-alert-severity-techblog.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/micrometer-context-propagation-line-be-hase.md",
"legacy_path": "raw/company-tech-blogs/micrometer-context-propagation-line-be-hase.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/modulith-arawn-github-modular-monoliths-spring.md",
"legacy_path": "raw/company-tech-blogs/modulith-arawn-github-modular-monoliths-spring.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/modulith-kakaobank-techblog-2025.md",
"legacy_path": "raw/company-tech-blogs/modulith-kakaobank-techblog-2025.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-atlassian-tenant-context.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-atlassian-tenant-context.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-auth0-tenant-resolution.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-auth0-tenant-resolution.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-hybrid-pooled-siloed-mix.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-hybrid-pooled-siloed-mix.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-stripe-citus-schema-per-tenant.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-stripe-citus-schema-per-tenant.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/multitenancy-subdomain-resolution-patterns.md",
"legacy_path": "raw/company-tech-blogs/multitenancy-subdomain-resolution-patterns.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/netflix-tudum-cqrs-separate-read-store-evolution.md",
"legacy_path": "raw/company-tech-blogs/netflix-tudum-cqrs-separate-read-store-evolution.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/onion-allegro-tech-blog-2023.md",
"legacy_path": "raw/company-tech-blogs/onion-allegro-tech-blog-2023.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbound-stripe-rate-limit-retry-engineering.md",
"legacy_path": "raw/company-tech-blogs/outbound-stripe-rate-limit-retry-engineering.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbox-confluent-kafka-connect-smt.md",
"legacy_path": "raw/company-tech-blogs/outbox-confluent-kafka-connect-smt.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbox-netflix-domain-events-cdc.md",
"legacy_path": "raw/company-tech-blogs/outbox-netflix-domain-events-cdc.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbox-wix-engineering-debezium.md",
"legacy_path": "raw/company-tech-blogs/outbox-wix-engineering-debezium.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/outbox-woowahan-techblog-pattern.md",
"legacy_path": "raw/company-tech-blogs/outbox-woowahan-techblog-pattern.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/percona-uuid-storage-mysql.md",
"legacy_path": "raw/company-tech-blogs/percona-uuid-storage-mysql.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/planetscale-nanoid-api.md",
"legacy_path": "raw/company-tech-blogs/planetscale-nanoid-api.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/postgresql-slow-query-logging-crunchydata.md",
"legacy_path": "raw/company-tech-blogs/postgresql-slow-query-logging-crunchydata.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/privacy-pseudonymization-hmac-vs-tokenization-iapp.md",
"legacy_path": "raw/company-tech-blogs/privacy-pseudonymization-hmac-vs-tokenization-iapp.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/read-only-tx-hibernate-optimization-vladmihalcea.md",
"legacy_path": "raw/company-tech-blogs/read-only-tx-hibernate-optimization-vladmihalcea.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/realtime-service-experience-woowahan-websocket.md",
"legacy_path": "raw/company-tech-blogs/realtime-service-experience-woowahan-websocket.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/retry-aws-exponential-backoff-and-jitter.md",
"legacy_path": "raw/company-tech-blogs/retry-aws-exponential-backoff-and-jitter.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/runbook-atlassian-gitops-runbook-as-code.md",
"legacy_path": "raw/company-tech-blogs/runbook-atlassian-gitops-runbook-as-code.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/runbook-woowahan-incident-techblog.md",
"legacy_path": "raw/company-tech-blogs/runbook-woowahan-incident-techblog.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/runtime-health-datadog-engineering-graceful-shutdown.md",
"legacy_path": "raw/company-tech-blogs/runtime-health-datadog-engineering-graceful-shutdown.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/scaffolding-backstage-golden-path-spotify.md",
"legacy_path": "raw/company-tech-blogs/scaffolding-backstage-golden-path-spotify.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/scoped-value-structured-concurrency-softwaremill.md",
"legacy_path": "raw/company-tech-blogs/scoped-value-structured-concurrency-softwaremill.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/secrets-1password-developer-secret-references.md",
"legacy_path": "raw/company-tech-blogs/secrets-1password-developer-secret-references.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/security-toss-actuator-healthcheck.md",
"legacy_path": "raw/company-tech-blogs/security-toss-actuator-healthcheck.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/security-woowahan-actuator-safe-usage.md",
"legacy_path": "raw/company-tech-blogs/security-woowahan-actuator-safe-usage.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/segment-ksuid.md",
"legacy_path": "raw/company-tech-blogs/segment-ksuid.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/senior-engineer-competency-mubin-shaikh.md",
"legacy_path": "raw/company-tech-blogs/senior-engineer-competency-mubin-shaikh.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/skillable-hands-on-lab-structure.md",
"legacy_path": "raw/company-tech-blogs/skillable-hands-on-lab-structure.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/slow-query-datasource-proxy-spring-boot-galovics.md",
"legacy_path": "raw/company-tech-blogs/slow-query-datasource-proxy-spring-boot-galovics.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/snowflake-twitter-id.md",
"legacy_path": "raw/company-tech-blogs/snowflake-twitter-id.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/spring-modulith-archunit-generated-exemption-and-violations-as-data.md",
"legacy_path": "raw/company-tech-blogs/spring-modulith-archunit-generated-exemption-and-violations-as-data.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/sse-realtime-notification-woowahan.md",
"legacy_path": "raw/company-tech-blogs/sse-realtime-notification-woowahan.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/stripe-error-format.md",
"legacy_path": "raw/company-tech-blogs/stripe-error-format.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/test-pyramid-vs-trophy-kent-dodds.md",
"legacy_path": "raw/company-tech-blogs/test-pyramid-vs-trophy-kent-dodds.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/thorben-janssen-hibernate-timestamp-clock-limitation.md",
"legacy_path": "raw/company-tech-blogs/thorben-janssen-hibernate-timestamp-clock-limitation.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/threadlocal-capture-restore-att-israel.md",
"legacy_path": "raw/company-tech-blogs/threadlocal-capture-restore-att-israel.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/toss-payments-error-format.md",
"legacy_path": "raw/company-tech-blogs/toss-payments-error-format.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/tracing-datadog-apm-vs-opentelemetry.md",
"legacy_path": "raw/company-tech-blogs/tracing-datadog-apm-vs-opentelemetry.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/transaction-port-clean-ddd-spring-medium.md",
"legacy_path": "raw/company-tech-blogs/transaction-port-clean-ddd-spring-medium.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/transaction-port-vassilis-soum-github-readme.md",
"legacy_path": "raw/company-tech-blogs/transaction-port-vassilis-soum-github-readme.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/vlad-mihalcea-postgresql-audit-logging-triggers.md",
"legacy_path": "raw/company-tech-blogs/vlad-mihalcea-postgresql-audit-logging-triggers.md"
},
{
"canonical_path": "vault/20-evidence/company-tech-blogs/woowahan-hexagonal-multimodule.md",
"legacy_path": "raw/company-tech-blogs/woowahan-hexagonal-multimodule.md"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-05-passive-diversification-behavior.md",
"legacy_path": "raw/invest-research/2026-06-05-passive-diversification-behavior.md"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-05-stoploss-takeprofit-tax-accounts.md",
"legacy_path": "raw/invest-research/2026-06-05-stoploss-takeprofit-tax-accounts.md"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-08-broad-equity-etf-100man-candidates.md",
"legacy_path": "raw/invest-research/2026-06-08-broad-equity-etf-100man-candidates.md"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-08-isa-vs-general-account-no-income.md",
"legacy_path": "raw/invest-research/2026-06-08-isa-vs-general-account-no-income.md"
},
{
"canonical_path": "vault/20-evidence/invest-research/2026-06-08-korean-broad-etf-ticker-comparison.md",
"legacy_path": "raw/invest-research/2026-06-08-korean-broad-etf-ticker-comparison.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/actuator-endpoint-exposure-spring-official.md",
"legacy_path": "raw/official-docs/actuator-endpoint-exposure-spring-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/actuator-istio-sidecar-management-alt.md",
"legacy_path": "raw/official-docs/actuator-istio-sidecar-management-alt.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/actuator-management-port-spring-official.md",
"legacy_path": "raw/official-docs/actuator-management-port-spring-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/adapter-java-spi-serviceloader.md",
"legacy_path": "raw/official-docs/adapter-java-spi-serviceloader.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/adapter-spring-boot-autoconfig-custom-starter.md",
"legacy_path": "raw/official-docs/adapter-spring-boot-autoconfig-custom-starter.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/api-versioning-google-aip-180.md",
"legacy_path": "raw/official-docs/api-versioning-google-aip-180.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/arch-acl-microsoft-pattern.md",
"legacy_path": "raw/official-docs/arch-acl-microsoft-pattern.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/arch-clean-architecture-uncle-bob.md",
"legacy_path": "raw/official-docs/arch-clean-architecture-uncle-bob.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/arch-hexagonal-cockburn.md",
"legacy_path": "raw/official-docs/arch-hexagonal-cockburn.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/archunit-annotation-as-registry-evaluation.md",
"legacy_path": "raw/official-docs/archunit-annotation-as-registry-evaluation.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/archunit-conditional-on-property-3-layer-pattern.md",
"legacy_path": "raw/official-docs/archunit-conditional-on-property-3-layer-pattern.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/archunit-user-guide.md",
"legacy_path": "raw/official-docs/archunit-user-guide.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/at-transactional-spring-official.md",
"legacy_path": "raw/official-docs/at-transactional-spring-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-acm-managed-renewal.md",
"legacy_path": "raw/official-docs/aws-acm-managed-renewal.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-alb-target-security-group-restriction-official.md",
"legacy_path": "raw/official-docs/aws-alb-target-security-group-restriction-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-builders-retry-jitter.md",
"legacy_path": "raw/official-docs/aws-builders-retry-jitter.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-cloudfront-origin-shared-secret-header-official.md",
"legacy_path": "raw/official-docs/aws-cloudfront-origin-shared-secret-header-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-iam-google-iam-permission-naming-convention.md",
"legacy_path": "raw/official-docs/aws-iam-google-iam-permission-naming-convention.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/aws-security-group-referencing-official.md",
"legacy_path": "raw/official-docs/aws-security-group-referencing-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/baggage-otel-baggage-api-spec.md",
"legacy_path": "raw/official-docs/baggage-otel-baggage-api-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/baggage-w3c-baggage-spec.md",
"legacy_path": "raw/official-docs/baggage-w3c-baggage-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cache-aside-vs-write-through-aws.md",
"legacy_path": "raw/official-docs/cache-aside-vs-write-through-aws.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cache-caffeine-asyncloadingcache-readme.md",
"legacy_path": "raw/official-docs/cache-caffeine-asyncloadingcache-readme.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cache-redisson-rlock-vs-setnx.md",
"legacy_path": "raw/official-docs/cache-redisson-rlock-vs-setnx.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/caddy-automatic-https-docs.md",
"legacy_path": "raw/official-docs/caddy-automatic-https-docs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/calver-spec-calver-official.md",
"legacy_path": "raw/official-docs/calver-spec-calver-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/certbot-user-guide.md",
"legacy_path": "raw/official-docs/certbot-user-guide.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/checkstyle-google-style-reference.md",
"legacy_path": "raw/official-docs/checkstyle-google-style-reference.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/chrome-third-party-cookie-policy-google-official.md",
"legacy_path": "raw/official-docs/chrome-third-party-cookie-policy-google-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/ci-github-actions-vs-gitlab-comparison.md",
"legacy_path": "raw/official-docs/ci-github-actions-vs-gitlab-comparison.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/ci-openapi-snapshot-diff-tooling.md",
"legacy_path": "raw/official-docs/ci-openapi-snapshot-diff-tooling.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cloudevents-spec-required-attributes.md",
"legacy_path": "raw/official-docs/cloudevents-spec-required-attributes.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cloudflare-tunnel-routing-official.md",
"legacy_path": "raw/official-docs/cloudflare-tunnel-routing-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/compat-rfc-8594-sunset-header.md",
"legacy_path": "raw/official-docs/compat-rfc-8594-sunset-header.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-12-factor-app-config.md",
"legacy_path": "raw/official-docs/config-12-factor-app-config.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-aws-appconfig-feature-flag-deployment.md",
"legacy_path": "raw/official-docs/config-aws-appconfig-feature-flag-deployment.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-spring-boot-externalized-configuration.md",
"legacy_path": "raw/official-docs/config-spring-boot-externalized-configuration.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-spring-cloud-config-server-official.md",
"legacy_path": "raw/official-docs/config-spring-cloud-config-server-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/config-spring-cloud-kubernetes-configmap-reload.md",
"legacy_path": "raw/official-docs/config-spring-cloud-kubernetes-configmap-reload.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/container-alpine-java-musl-tradeoffs.md",
"legacy_path": "raw/official-docs/container-alpine-java-musl-tradeoffs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/container-distroless-google-github.md",
"legacy_path": "raw/official-docs/container-distroless-google-github.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/container-graalvm-native-image-spring-boot.md",
"legacy_path": "raw/official-docs/container-graalvm-native-image-spring-boot.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/container-stdout-logging-12factor-official.md",
"legacy_path": "raw/official-docs/container-stdout-logging-12factor-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cosign-keyless-identity-verification-policy.md",
"legacy_path": "raw/official-docs/cosign-keyless-identity-verification-policy.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cqrs-fowler-bliki.md",
"legacy_path": "raw/official-docs/cqrs-fowler-bliki.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cqrs-pattern-azure-architecture-center.md",
"legacy_path": "raw/official-docs/cqrs-pattern-azure-architecture-center.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/crockford-base32-spec.md",
"legacy_path": "raw/official-docs/crockford-base32-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/cuid2-spec.md",
"legacy_path": "raw/official-docs/cuid2-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/datasource-micrometer-observation-official.md",
"legacy_path": "raw/official-docs/datasource-micrometer-observation-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/datasource-proxy-slow-query-official.md",
"legacy_path": "raw/official-docs/datasource-proxy-slow-query-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/dependabot-security-updates-gradle-official.md",
"legacy_path": "raw/official-docs/dependabot-security-updates-gradle-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/dependabot-supported-ecosystems-official.md",
"legacy_path": "raw/official-docs/dependabot-supported-ecosystems-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-compose-depends-on-healthcheck.md",
"legacy_path": "raw/official-docs/docker-compose-depends-on-healthcheck.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-compose-networking-extra-hosts-official.md",
"legacy_path": "raw/official-docs/docker-compose-networking-extra-hosts-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-engine-20-10-release-notes-official.md",
"legacy_path": "raw/official-docs/docker-engine-20-10-release-notes-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-host-network-driver-official.md",
"legacy_path": "raw/official-docs/docker-host-network-driver-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/docker-port-publishing-loopback-bind-official.md",
"legacy_path": "raw/official-docs/docker-port-publishing-loopback-bind-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/domain-event-fowler-eaa.md",
"legacy_path": "raw/official-docs/domain-event-fowler-eaa.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/domain-fowler-anemic-vs-rich-model.md",
"legacy_path": "raw/official-docs/domain-fowler-anemic-vs-rich-model.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/domain-vaughn-vernon-aggregate-root.md",
"legacy_path": "raw/official-docs/domain-vaughn-vernon-aggregate-root.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/dual-write-antipattern-microservices-io.md",
"legacy_path": "raw/official-docs/dual-write-antipattern-microservices-io.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/dx-devcontainer-spring-boot.md",
"legacy_path": "raw/official-docs/dx-devcontainer-spring-boot.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/dx-mise-asdf-tool-versioning.md",
"legacy_path": "raw/official-docs/dx-mise-asdf-tool-versioning.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/dx-testcontainers-java-best-practices.md",
"legacy_path": "raw/official-docs/dx-testcontainers-java-best-practices.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/ecs-awslogs-stdout-cloudwatch-aws-official.md",
"legacy_path": "raw/official-docs/ecs-awslogs-stdout-cloudwatch-aws-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/errorprone-gradle-plugin-readme.md",
"legacy_path": "raw/official-docs/errorprone-gradle-plugin-readme.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/event-sourcing-vs-outbox-microservices-io.md",
"legacy_path": "raw/official-docs/event-sourcing-vs-outbox-microservices-io.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/feature-first-uncle-bob-screaming-architecture-2011.md",
"legacy_path": "raw/official-docs/feature-first-uncle-bob-screaming-architecture-2011.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/fetch-spec-cors.md",
"legacy_path": "raw/official-docs/fetch-spec-cors.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/file-s3-presigned-url-upload.md",
"legacy_path": "raw/official-docs/file-s3-presigned-url-upload.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/file-tus-resumable-upload-protocol.md",
"legacy_path": "raw/official-docs/file-tus-resumable-upload-protocol.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/find-sec-bugs-official.md",
"legacy_path": "raw/official-docs/find-sec-bugs-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/functional-tx-arrow-kt-resource-docs.md",
"legacy_path": "raw/official-docs/functional-tx-arrow-kt-resource-docs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/gdpr-cryptographic-erasure-envelope-key-pattern.md",
"legacy_path": "raw/official-docs/gdpr-cryptographic-erasure-envelope-key-pattern.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/github-dependency-review-action.md",
"legacy_path": "raw/official-docs/github-dependency-review-action.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/github-webhook-signature.md",
"legacy_path": "raw/official-docs/github-webhook-signature.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-122-resource-names.md",
"legacy_path": "raw/official-docs/google-aip-122-resource-names.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-127-http-transcoding.md",
"legacy_path": "raw/official-docs/google-aip-127-http-transcoding.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-132-list-method.md",
"legacy_path": "raw/official-docs/google-aip-132-list-method.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-136-custom-methods.md",
"legacy_path": "raw/official-docs/google-aip-136-custom-methods.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-148-standard-fields.md",
"legacy_path": "raw/official-docs/google-aip-148-standard-fields.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-151-long-running-operations.md",
"legacy_path": "raw/official-docs/google-aip-151-long-running-operations.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-158-pagination.md",
"legacy_path": "raw/official-docs/google-aip-158-pagination.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-160-filtering.md",
"legacy_path": "raw/official-docs/google-aip-160-filtering.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-185-resource-versioning.md",
"legacy_path": "raw/official-docs/google-aip-185-resource-versioning.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-aip-233-batch-create.md",
"legacy_path": "raw/official-docs/google-aip-233-batch-create.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-antigravity-hooks.md",
"legacy_path": "raw/official-docs/google-antigravity-hooks.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-api-error-format.md",
"legacy_path": "raw/official-docs/google-api-error-format.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-java-format-readme.md",
"legacy_path": "raw/official-docs/google-java-format-readme.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth-app-verification-state-overview-official.md",
"legacy_path": "raw/official-docs/google-oauth-app-verification-state-overview-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth-manage-app-audience-official.md",
"legacy_path": "raw/official-docs/google-oauth-manage-app-audience-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth2-client-application-types-official.md",
"legacy_path": "raw/official-docs/google-oauth2-client-application-types-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth2-policies-environment-separation-official.md",
"legacy_path": "raw/official-docs/google-oauth2-policies-environment-separation-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth2-redirect-uri-validation-official.md",
"legacy_path": "raw/official-docs/google-oauth2-redirect-uri-validation-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oauth2-web-server-flow-official.md",
"legacy_path": "raw/official-docs/google-oauth2-web-server-flow-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-oidc-discovery-spec.md",
"legacy_path": "raw/official-docs/google-oidc-discovery-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-openid-connect-oidc.md",
"legacy_path": "raw/official-docs/google-openid-connect-oidc.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/google-sre-workbook-on-call-monitoring.md",
"legacy_path": "raw/official-docs/google-sre-workbook-on-call-monitoring.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/governance-archunit-official.md",
"legacy_path": "raw/official-docs/governance-archunit-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/gradle-java-library-api-vs-implementation.md",
"legacy_path": "raw/official-docs/gradle-java-library-api-vs-implementation.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/gradle-reproducible-archives-working-with-files.md",
"legacy_path": "raw/official-docs/gradle-reproducible-archives-working-with-files.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/graphql-errors-spec.md",
"legacy_path": "raw/official-docs/graphql-errors-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/hexagonal-cockburn-wikipedia-summary.md",
"legacy_path": "raw/official-docs/hexagonal-cockburn-wikipedia-summary.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/hexagonal-thombergs-buckpal-github.md",
"legacy_path": "raw/official-docs/hexagonal-thombergs-buckpal-github.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/hibernate-slow-query-log-official.md",
"legacy_path": "raw/official-docs/hibernate-slow-query-log-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/iana-media-types-registry.md",
"legacy_path": "raw/official-docs/iana-media-types-registry.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-aws-lambda-powertools.md",
"legacy_path": "raw/official-docs/idempotency-aws-lambda-powertools.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-ietf-draft.md",
"legacy_path": "raw/official-docs/idempotency-ietf-draft.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-no-api-level-github-rest.md",
"legacy_path": "raw/official-docs/idempotency-no-api-level-github-rest.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-paypal-docs.md",
"legacy_path": "raw/official-docs/idempotency-paypal-docs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-square-api.md",
"legacy_path": "raw/official-docs/idempotency-square-api.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/idempotency-stripe-api-ref.md",
"legacy_path": "raw/official-docs/idempotency-stripe-api-ref.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/istio-mtls-cert-rotation-official.md",
"legacy_path": "raw/official-docs/istio-mtls-cert-rotation-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/jdk-files-createtempfile.md",
"legacy_path": "raw/official-docs/jdk-files-createtempfile.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/jdk21-threadpoolexecutor-javadoc.md",
"legacy_path": "raw/official-docs/jdk21-threadpoolexecutor-javadoc.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/json-api-errors-spec.md",
"legacy_path": "raw/official-docs/json-api-errors-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/jsonapi-pagination-format.md",
"legacy_path": "raw/official-docs/jsonapi-pagination-format.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/junit5-conditional-env-variable-user-guide.md",
"legacy_path": "raw/official-docs/junit5-conditional-env-variable-user-guide.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/jwks-keycloak-key-rotation-active-passive.md",
"legacy_path": "raw/official-docs/jwks-keycloak-key-rotation-active-passive.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/jwks-nimbus-jose-jwksourcebuilder-spring-integration.md",
"legacy_path": "raw/official-docs/jwks-nimbus-jose-jwksourcebuilder-spring-integration.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-application-security-checklist-readonly-fs.md",
"legacy_path": "raw/official-docs/k8s-application-security-checklist-readonly-fs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-configure-probes-task-page.md",
"legacy_path": "raw/official-docs/k8s-configure-probes-task-page.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-logging-architecture-kubernetes-official.md",
"legacy_path": "raw/official-docs/k8s-logging-architecture-kubernetes-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-network-policy-official.md",
"legacy_path": "raw/official-docs/k8s-network-policy-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-pod-lifecycle-probes-concept.md",
"legacy_path": "raw/official-docs/k8s-pod-lifecycle-probes-concept.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/k8s-pod-security-standards-restricted.md",
"legacy_path": "raw/official-docs/k8s-pod-security-standards-restricted.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-2500-hostname-v2-release-official.md",
"legacy_path": "raw/official-docs/keycloak-2500-hostname-v2-release-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-2600-hostname-v1-removed-official.md",
"legacy_path": "raw/official-docs/keycloak-2600-hostname-v1-removed-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-account-console-unlink-lockout-guard-official.md",
"legacy_path": "raw/official-docs/keycloak-account-console-unlink-lockout-guard-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-authorization-services-realm-client-roles.md",
"legacy_path": "raw/official-docs/keycloak-authorization-services-realm-client-roles.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-client-initiated-account-linking.md",
"legacy_path": "raw/official-docs/keycloak-client-initiated-account-linking.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-client-pkce-method-enforcement-official.md",
"legacy_path": "raw/official-docs/keycloak-client-pkce-method-enforcement-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-configuring-database.md",
"legacy_path": "raw/official-docs/keycloak-configuring-database.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-first-broker-login-flow.md",
"legacy_path": "raw/official-docs/keycloak-first-broker-login-flow.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-first-broker-login-verify-authenticators-official.md",
"legacy_path": "raw/official-docs/keycloak-first-broker-login-verify-authenticators-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-first-login-flow.md",
"legacy_path": "raw/official-docs/keycloak-first-login-flow.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-getting-started-docker.md",
"legacy_path": "raw/official-docs/keycloak-getting-started-docker.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-google-idp-setup.md",
"legacy_path": "raw/official-docs/keycloak-google-idp-setup.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-health-checks.md",
"legacy_path": "raw/official-docs/keycloak-health-checks.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-hostname-configuration.md",
"legacy_path": "raw/official-docs/keycloak-hostname-configuration.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-broker-spi.md",
"legacy_path": "raw/official-docs/keycloak-identity-broker-spi.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-brokering-overview-official.md",
"legacy_path": "raw/official-docs/keycloak-identity-brokering-overview-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-provider-mappers.md",
"legacy_path": "raw/official-docs/keycloak-identity-provider-mappers.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-provider-redirector-default-idp-official.md",
"legacy_path": "raw/official-docs/keycloak-identity-provider-redirector-default-idp-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-provider-sync-mode-official.md",
"legacy_path": "raw/official-docs/keycloak-identity-provider-sync-mode-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-identity-provider-trust-email-official.md",
"legacy_path": "raw/official-docs/keycloak-identity-provider-trust-email-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-idp-hide-on-login-page-toggle-official.md",
"legacy_path": "raw/official-docs/keycloak-idp-hide-on-login-page-toggle-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-idp-hint-client-suggested-official.md",
"legacy_path": "raw/official-docs/keycloak-idp-hint-client-suggested-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-import-export-realms.md",
"legacy_path": "raw/official-docs/keycloak-import-export-realms.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-oidc-logout-endpoint-official.md",
"legacy_path": "raw/official-docs/keycloak-oidc-logout-endpoint-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-refresh-token-rotation-reuse-admin-official.md",
"legacy_path": "raw/official-docs/keycloak-refresh-token-rotation-reuse-admin-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-refresh-token-rotation-sessions-official.md",
"legacy_path": "raw/official-docs/keycloak-refresh-token-rotation-sessions-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-reverseproxy-official.md",
"legacy_path": "raw/official-docs/keycloak-reverseproxy-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-securing-apps-overview-official.md",
"legacy_path": "raw/official-docs/keycloak-securing-apps-overview-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/keycloak-server-containers-docker.md",
"legacy_path": "raw/official-docs/keycloak-server-containers-docker.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/kubernetes-exit-code-observability-termination.md",
"legacy_path": "raw/official-docs/kubernetes-exit-code-observability-termination.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/kubernetes-pod-lifecycle-termination.md",
"legacy_path": "raw/official-docs/kubernetes-pod-lifecycle-termination.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/layer-first-baeldung-clean-architecture-spring-boot.md",
"legacy_path": "raw/official-docs/layer-first-baeldung-clean-architecture-spring-boot.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/lock-postgres-advisory-locks.md",
"legacy_path": "raw/official-docs/lock-postgres-advisory-locks.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/lock-shedlock-issue-899-non-scheduler-use.md",
"legacy_path": "raw/official-docs/lock-shedlock-issue-899-non-scheduler-use.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/lock-shedlock-readme.md",
"legacy_path": "raw/official-docs/lock-shedlock-readme.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/lock-spring-integration-lock-registry.md",
"legacy_path": "raw/official-docs/lock-spring-integration-lock-registry.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/log-ecs-schema-elastic-official.md",
"legacy_path": "raw/official-docs/log-ecs-schema-elastic-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/log-logback-mask-pattern-converter-official.md",
"legacy_path": "raw/official-docs/log-logback-mask-pattern-converter-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/log-otel-log-data-model-spec.md",
"legacy_path": "raw/official-docs/log-otel-log-data-model-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/lombok-builder-data-features-official.md",
"legacy_path": "raw/official-docs/lombok-builder-data-features-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/lychee-link-checker.md",
"legacy_path": "raw/official-docs/lychee-link-checker.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/mapstruct-generated-annotation-official.md",
"legacy_path": "raw/official-docs/mapstruct-generated-annotation-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-google-ewaschuk-philosophy-on-alerting.md",
"legacy_path": "raw/official-docs/metric-google-ewaschuk-philosophy-on-alerting.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-google-sre-slo-burn-rate.md",
"legacy_path": "raw/official-docs/metric-google-sre-slo-burn-rate.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-google-sre-workbook-on-call.md",
"legacy_path": "raw/official-docs/metric-google-sre-workbook-on-call.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-micrometer-high-cardinality-tags-detector.md",
"legacy_path": "raw/official-docs/metric-micrometer-high-cardinality-tags-detector.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-micrometer-histogram-percentile-concepts.md",
"legacy_path": "raw/official-docs/metric-micrometer-histogram-percentile-concepts.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-micrometer-naming-convention-official.md",
"legacy_path": "raw/official-docs/metric-micrometer-naming-convention-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-otel-metrics-data-model-spec.md",
"legacy_path": "raw/official-docs/metric-otel-metrics-data-model-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-prometheus-histograms-vs-summaries-practices.md",
"legacy_path": "raw/official-docs/metric-prometheus-histograms-vs-summaries-practices.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/metric-prometheus-label-cardinality-best-practices.md",
"legacy_path": "raw/official-docs/metric-prometheus-label-cardinality-best-practices.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/micrometer-context-propagation-official.md",
"legacy_path": "raw/official-docs/micrometer-context-propagation-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/micrometer-context-propagation-purpose-thread-local-accessor.md",
"legacy_path": "raw/official-docs/micrometer-context-propagation-purpose-thread-local-accessor.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/microservices-io-transactional-outbox.md",
"legacy_path": "raw/official-docs/microservices-io-transactional-outbox.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/migration-atlas-schema-as-code.md",
"legacy_path": "raw/official-docs/migration-atlas-schema-as-code.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/migration-flyway-official-concepts-and-repair.md",
"legacy_path": "raw/official-docs/migration-flyway-official-concepts-and-repair.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/migration-k8s-init-container-job-pattern.md",
"legacy_path": "raw/official-docs/migration-k8s-init-container-job-pattern.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/migration-liquibase-official-changelog-xml-yaml.md",
"legacy_path": "raw/official-docs/migration-liquibase-official-changelog-xml-yaml.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/modulith-spring-official-doc.md",
"legacy_path": "raw/official-docs/modulith-spring-official-doc.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/multitenancy-aws-saas-tenant-isolation-whitepaper.md",
"legacy_path": "raw/official-docs/multitenancy-aws-saas-tenant-isolation-whitepaper.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/multitenancy-azure-architecture-patterns.md",
"legacy_path": "raw/official-docs/multitenancy-azure-architecture-patterns.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/multitenancy-hibernate-user-guide.md",
"legacy_path": "raw/official-docs/multitenancy-hibernate-user-guide.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/multitenancy-microservices-io-pattern.md",
"legacy_path": "raw/official-docs/multitenancy-microservices-io-pattern.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/mysql-innodb-transaction-isolation-official.md",
"legacy_path": "raw/official-docs/mysql-innodb-transaction-isolation-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/nanoid-spec.md",
"legacy_path": "raw/official-docs/nanoid-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/nginx-auth-request-module-official.md",
"legacy_path": "raw/official-docs/nginx-auth-request-module-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/nginx-client-max-body-size.md",
"legacy_path": "raw/official-docs/nginx-client-max-body-size.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/nginx-core-module-location-internal-official.md",
"legacy_path": "raw/official-docs/nginx-core-module-location-internal-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/ngrok-http-tunnel-official.md",
"legacy_path": "raw/official-docs/ngrok-http-tunnel-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth-v2-1-draft-ietf.md",
"legacy_path": "raw/official-docs/oauth-v2-1-draft-ietf.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-browser-based-apps-ietf-draft.md",
"legacy_path": "raw/official-docs/oauth2-browser-based-apps-ietf-draft.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-pkce-rfc-7636.md",
"legacy_path": "raw/official-docs/oauth2-pkce-rfc-7636.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-behaviour-cookie-vs-bearer-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-behaviour-cookie-vs-bearer-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-cookie-redirect-flags-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-cookie-redirect-flags-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-endpoints-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-endpoints-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-endpoints-signout-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-endpoints-signout-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-keycloak-oidc-provider-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-keycloak-oidc-provider-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-nginx-integration-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-nginx-integration-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-overview-config-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-overview-config-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-proxy-session-storage-official.md",
"legacy_path": "raw/official-docs/oauth2-proxy-session-storage-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oauth2-token-revocation-rfc-7009.md",
"legacy_path": "raw/official-docs/oauth2-token-revocation-rfc-7009.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/oidc-client-ts-library.md",
"legacy_path": "raw/official-docs/oidc-client-ts-library.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/onion-palermo-original-2008.md",
"legacy_path": "raw/official-docs/onion-palermo-original-2008.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/openapi-spec-3-1-0.md",
"legacy_path": "raw/official-docs/openapi-spec-3-1-0.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/openid-connect-core-id-token-validation.md",
"legacy_path": "raw/official-docs/openid-connect-core-id-token-validation.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/openjdk-jdk-8196595-container-support.md",
"legacy_path": "raw/official-docs/openjdk-jdk-8196595-container-support.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/opentelemetry-http-semconv-migration-guide.md",
"legacy_path": "raw/official-docs/opentelemetry-http-semconv-migration-guide.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/opentelemetry-versioning-stability-spec.md",
"legacy_path": "raw/official-docs/opentelemetry-versioning-stability-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/otel-exceptions-semantic-conventions.md",
"legacy_path": "raw/official-docs/otel-exceptions-semantic-conventions.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbound-openfeign-declarative-client.md",
"legacy_path": "raw/official-docs/outbound-openfeign-declarative-client.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbound-resilience4j-vs-spring-retry.md",
"legacy_path": "raw/official-docs/outbound-resilience4j-vs-spring-retry.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbound-spring-restclient-baseline.md",
"legacy_path": "raw/official-docs/outbound-spring-restclient-baseline.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbound-webclient-vs-restclient-spring.md",
"legacy_path": "raw/official-docs/outbound-webclient-vs-restclient-spring.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbox-debezium-official-docs.md",
"legacy_path": "raw/official-docs/outbox-debezium-official-docs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/outbox-skip-locked-microservices-io.md",
"legacy_path": "raw/official-docs/outbox-skip-locked-microservices-io.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-authz-permission-model-abac-rbac.md",
"legacy_path": "raw/official-docs/owasp-authz-permission-model-abac-rbac.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-content-security-policy-cheat-sheet.md",
"legacy_path": "raw/official-docs/owasp-content-security-policy-cheat-sheet.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-file-upload-cheat-sheet.md",
"legacy_path": "raw/official-docs/owasp-file-upload-cheat-sheet.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-hsts-cheat-sheet.md",
"legacy_path": "raw/official-docs/owasp-hsts-cheat-sheet.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-html5-storage-xss-spa.md",
"legacy_path": "raw/official-docs/owasp-html5-storage-xss-spa.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-logging-cheat-sheet.md",
"legacy_path": "raw/official-docs/owasp-logging-cheat-sheet.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-path-traversal.md",
"legacy_path": "raw/official-docs/owasp-path-traversal.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/owasp-ssrf-prevention.md",
"legacy_path": "raw/official-docs/owasp-ssrf-prevention.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/p6spy-configuration-official.md",
"legacy_path": "raw/official-docs/p6spy-configuration-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/patch-json-merge-rfc7396.md",
"legacy_path": "raw/official-docs/patch-json-merge-rfc7396.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-hikaricp-configuration-knobs.md",
"legacy_path": "raw/official-docs/persistence-hikaricp-configuration-knobs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-hikaricp-pool-sizing-wiki.md",
"legacy_path": "raw/official-docs/persistence-hikaricp-pool-sizing-wiki.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-osiv-antipattern-hibernate-vladmihalcea.md",
"legacy_path": "raw/official-docs/persistence-osiv-antipattern-hibernate-vladmihalcea.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-r2dbc-reactive-spring.md",
"legacy_path": "raw/official-docs/persistence-r2dbc-reactive-spring.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/persistence-spring-dataaccessexception-hierarchy.md",
"legacy_path": "raw/official-docs/persistence-spring-dataaccessexception-hierarchy.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/postgres-transaction-isolation-official.md",
"legacy_path": "raw/official-docs/postgres-transaction-isolation-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/postgresql-slow-query-log-official.md",
"legacy_path": "raw/official-docs/postgresql-slow-query-log-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/privacy-cryptographic-erasure-nist-sp800-88.md",
"legacy_path": "raw/official-docs/privacy-cryptographic-erasure-nist-sp800-88.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/privacy-gdpr-article-25-design.md",
"legacy_path": "raw/official-docs/privacy-gdpr-article-25-design.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/problem-detail-rfc-7807.md",
"legacy_path": "raw/official-docs/problem-detail-rfc-7807.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/prometheus-alertmanager-silences.md",
"legacy_path": "raw/official-docs/prometheus-alertmanager-silences.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/protobuf-reserved-vs-json-openapi-extension.md",
"legacy_path": "raw/official-docs/protobuf-reserved-vs-json-openapi-extension.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/proxy-pass-request-body-nginx-official.md",
"legacy_path": "raw/official-docs/proxy-pass-request-body-nginx-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/react-router-official.md",
"legacy_path": "raw/official-docs/react-router-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/react-ui-library-official.md",
"legacy_path": "raw/official-docs/react-ui-library-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/redhat-openjdk-container-awareness-java17.md",
"legacy_path": "raw/official-docs/redhat-openjdk-container-awareness-java17.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/registry-adr-official.md",
"legacy_path": "raw/official-docs/registry-adr-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/renovate-gradle-manager-official.md",
"legacy_path": "raw/official-docs/renovate-gradle-manager-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/renovate-vulnerability-alerts-gradle-official.md",
"legacy_path": "raw/official-docs/renovate-vulnerability-alerts-gradle-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/reproducible-builds-org-jvm-guide.md",
"legacy_path": "raw/official-docs/reproducible-builds-org-jvm-guide.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/resilience4j-micrometer-module.md",
"legacy_path": "raw/official-docs/resilience4j-micrometer-module.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/retry-aws-well-architected-rel05-bp03.md",
"legacy_path": "raw/official-docs/retry-aws-well-architected-rel05-bp03.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/retry-spring-retry-readme-backoff-defaults.md",
"legacy_path": "raw/official-docs/retry-spring-retry-readme-backoff-defaults.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc3339-datetime-utc.md",
"legacy_path": "raw/official-docs/rfc3339-datetime-utc.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc3986-uri-generic-syntax.md",
"legacy_path": "raw/official-docs/rfc3986-uri-generic-syntax.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc6455-websocket.md",
"legacy_path": "raw/official-docs/rfc6455-websocket.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc8996-tls10-tls11-deprecation.md",
"legacy_path": "raw/official-docs/rfc8996-tls10-tls11-deprecation.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9110-http-semantics.md",
"legacy_path": "raw/official-docs/rfc9110-http-semantics.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9111-http-caching.md",
"legacy_path": "raw/official-docs/rfc9111-http-caching.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9112-http-1-1-chunked-transfer.md",
"legacy_path": "raw/official-docs/rfc9112-http-1-1-chunked-transfer.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9421-http-message-signatures.md",
"legacy_path": "raw/official-docs/rfc9421-http-message-signatures.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9457-problem-details-http-apis.md",
"legacy_path": "raw/official-docs/rfc9457-problem-details-http-apis.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/rfc9562-uuid.md",
"legacy_path": "raw/official-docs/rfc9562-uuid.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/runbook-pagerduty-incident-response-doc.md",
"legacy_path": "raw/official-docs/runbook-pagerduty-incident-response-doc.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/runtime-health-istio-mesh-health-check.md",
"legacy_path": "raw/official-docs/runtime-health-istio-mesh-health-check.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/runtime-health-k8s-probes-official.md",
"legacy_path": "raw/official-docs/runtime-health-k8s-probes-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/runtime-health-spring-actuator-groups.md",
"legacy_path": "raw/official-docs/runtime-health-spring-actuator-groups.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/runtime-spring-boot-virtual-threads.md",
"legacy_path": "raw/official-docs/runtime-spring-boot-virtual-threads.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/sample-microservices-spring-cloud-github.md",
"legacy_path": "raw/official-docs/sample-microservices-spring-cloud-github.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/sample-realworld-gothinkster-github.md",
"legacy_path": "raw/official-docs/sample-realworld-gothinkster-github.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/sample-spring-petclinic-github.md",
"legacy_path": "raw/official-docs/sample-spring-petclinic-github.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/scaffolding-cookiecutter-official.md",
"legacy_path": "raw/official-docs/scaffolding-cookiecutter-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/scaffolding-degit-svelte-github.md",
"legacy_path": "raw/official-docs/scaffolding-degit-svelte-github.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/scaffolding-github-template-repository.md",
"legacy_path": "raw/official-docs/scaffolding-github-template-repository.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/scaffolding-spring-initializr.md",
"legacy_path": "raw/official-docs/scaffolding-spring-initializr.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-avro-evolution-rules.md",
"legacy_path": "raw/official-docs/schema-avro-evolution-rules.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-bigdecimal-money-serialization-java.md",
"legacy_path": "raw/official-docs/schema-bigdecimal-money-serialization-java.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-jackson-polymorphic-deserialization.md",
"legacy_path": "raw/official-docs/schema-jackson-polymorphic-deserialization.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-jackson-unknown-field-handling.md",
"legacy_path": "raw/official-docs/schema-jackson-unknown-field-handling.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/schema-protobuf-vs-json-evolution.md",
"legacy_path": "raw/official-docs/schema-protobuf-vs-json-evolution.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/scoped-value-jep-446-506-openjdk.md",
"legacy_path": "raw/official-docs/scoped-value-jep-446-506-openjdk.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/scorecard-aws-well-architected.md",
"legacy_path": "raw/official-docs/scorecard-aws-well-architected.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/scorecard-cis-benchmarks-slsa.md",
"legacy_path": "raw/official-docs/scorecard-cis-benchmarks-slsa.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/scorecard-opentelemetry-maturity.md",
"legacy_path": "raw/official-docs/scorecard-opentelemetry-maturity.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/secrets-aws-secrets-manager-rotation.md",
"legacy_path": "raw/official-docs/secrets-aws-secrets-manager-rotation.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/secrets-k8s-secret-external-secrets-operator.md",
"legacy_path": "raw/official-docs/secrets-k8s-secret-external-secrets-operator.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/secrets-vault-dynamic-secrets-hashicorp.md",
"legacy_path": "raw/official-docs/secrets-vault-dynamic-secrets-hashicorp.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-authorization-cheatsheet-owasp.md",
"legacy_path": "raw/official-docs/security-authorization-cheatsheet-owasp.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-aws-sigv4-hmac-signing.md",
"legacy_path": "raw/official-docs/security-aws-sigv4-hmac-signing.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-jwt-rfc-7519-validation.md",
"legacy_path": "raw/official-docs/security-jwt-rfc-7519-validation.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-mtls-rfc-8705.md",
"legacy_path": "raw/official-docs/security-mtls-rfc-8705.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-oauth2-pkce-rfc-8252.md",
"legacy_path": "raw/official-docs/security-oauth2-pkce-rfc-8252.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-opa-policy-engine-official.md",
"legacy_path": "raw/official-docs/security-opa-policy-engine-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/security-spring-jwt-timestamp-validator-clock-skew.md",
"legacy_path": "raw/official-docs/security-spring-jwt-timestamp-validator-clock-skew.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/semver-2-0-0-spec-semver-official.md",
"legacy_path": "raw/official-docs/semver-2-0-0-spec-semver-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/silent-check-sso-third-party-cookies-keycloak-official.md",
"legacy_path": "raw/official-docs/silent-check-sso-third-party-cookies-keycloak-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/skip-locked-mysql-docs.md",
"legacy_path": "raw/official-docs/skip-locked-mysql-docs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/skip-locked-postgres-docs.md",
"legacy_path": "raw/official-docs/skip-locked-postgres-docs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/slsa-v1-provenance-schema.md",
"legacy_path": "raw/official-docs/slsa-v1-provenance-schema.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/sonarqube-server-versus-cloud.md",
"legacy_path": "raw/official-docs/sonarqube-server-versus-cloud.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spotbugs-gradle-plugin-docs.md",
"legacy_path": "raw/official-docs/spotbugs-gradle-plugin-docs.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spotless-gradle-plugin-readme.md",
"legacy_path": "raw/official-docs/spotless-gradle-plugin-readme.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-exit-code-generator-startup-failure.md",
"legacy_path": "raw/official-docs/spring-boot-exit-code-generator-startup-failure.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-graceful-shutdown-reference.md",
"legacy_path": "raw/official-docs/spring-boot-graceful-shutdown-reference.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-multipart-reference.md",
"legacy_path": "raw/official-docs/spring-boot-multipart-reference.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-structuring-your-code.md",
"legacy_path": "raw/official-docs/spring-boot-structuring-your-code.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-task-execution-scheduling-reference.md",
"legacy_path": "raw/official-docs/spring-boot-task-execution-scheduling-reference.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-boot-test-slices-webmvctest-datajpatest-official.md",
"legacy_path": "raw/official-docs/spring-boot-test-slices-webmvctest-datajpatest-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-jpa-auditing-official.md",
"legacy_path": "raw/official-docs/spring-data-jpa-auditing-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-jpa-enable-jpa-auditing-api.md",
"legacy_path": "raw/official-docs/spring-data-jpa-enable-jpa-auditing-api.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-jpa-projections-spring-official.md",
"legacy_path": "raw/official-docs/spring-data-jpa-projections-spring-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-jpa-transactionality-spring-official.md",
"legacy_path": "raw/official-docs/spring-data-jpa-transactionality-spring-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-data-pageable-defaults.md",
"legacy_path": "raw/official-docs/spring-data-pageable-defaults.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-executor-configuration-support-javadoc.md",
"legacy_path": "raw/official-docs/spring-executor-configuration-support-javadoc.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-framework-observability-context-propagating-task-decorator.md",
"legacy_path": "raw/official-docs/spring-framework-observability-context-propagating-task-decorator.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-framework-test-enabledif-jupiter-annotation.md",
"legacy_path": "raw/official-docs/spring-framework-test-enabledif-jupiter-annotation.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-framework-threadpooltaskexecutor-javadoc.md",
"legacy_path": "raw/official-docs/spring-framework-threadpooltaskexecutor-javadoc.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-mvc-async-streaming.md",
"legacy_path": "raw/official-docs/spring-mvc-async-streaming.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-mvc-rest-exception-handling.md",
"legacy_path": "raw/official-docs/spring-mvc-rest-exception-handling.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-problem-detail.md",
"legacy_path": "raw/official-docs/spring-problem-detail.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-restclient-builder-reference.md",
"legacy_path": "raw/official-docs/spring-restclient-builder-reference.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-authorization-architecture.md",
"legacy_path": "raw/official-docs/spring-security-authorization-architecture.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-authorization-defense-in-depth.md",
"legacy_path": "raw/official-docs/spring-security-authorization-defense-in-depth.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-authorize-http-requests.md",
"legacy_path": "raw/official-docs/spring-security-authorize-http-requests.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-concurrency-delegating-security-context-executor.md",
"legacy_path": "raw/official-docs/spring-security-concurrency-delegating-security-context-executor.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-method-security.md",
"legacy_path": "raw/official-docs/spring-security-method-security.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-nested-authorities-claim-issue-15201.md",
"legacy_path": "raw/official-docs/spring-security-nested-authorities-claim-issue-15201.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-security-resource-server-jwt.md",
"legacy_path": "raw/official-docs/spring-security-resource-server-jwt.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-smartlifecycle-reference.md",
"legacy_path": "raw/official-docs/spring-smartlifecycle-reference.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-streaming-response-body.md",
"legacy_path": "raw/official-docs/spring-streaming-response-body.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-transaction-synchronization-manager-javadoc.md",
"legacy_path": "raw/official-docs/spring-transaction-synchronization-manager-javadoc.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-transactional-event-listener.md",
"legacy_path": "raw/official-docs/spring-transactional-event-listener.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-tx-management-reference.md",
"legacy_path": "raw/official-docs/spring-tx-management-reference.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/spring-tx-propagation-required-new-nested-official.md",
"legacy_path": "raw/official-docs/spring-tx-propagation-required-new-nested-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/stripe-resource-id-convention.md",
"legacy_path": "raw/official-docs/stripe-resource-id-convention.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/stripe-webhook-signature.md",
"legacy_path": "raw/official-docs/stripe-webhook-signature.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/sunset-deprecation-headers-paired-usage.md",
"legacy_path": "raw/official-docs/sunset-deprecation-headers-paired-usage.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/supply-chain-cosign-keyless-sigstore.md",
"legacy_path": "raw/official-docs/supply-chain-cosign-keyless-sigstore.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/supply-chain-gradle-vs-maven-dependency-locking.md",
"legacy_path": "raw/official-docs/supply-chain-gradle-vs-maven-dependency-locking.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/supply-chain-slsa-provenance-framework.md",
"legacy_path": "raw/official-docs/supply-chain-slsa-provenance-framework.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/svix-webhook-best-practices.md",
"legacy_path": "raw/official-docs/svix-webhook-best-practices.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/sysexits-bsd-exit-code-convention.md",
"legacy_path": "raw/official-docs/sysexits-bsd-exit-code-convention.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/tailwind-css-utility-first-official.md",
"legacy_path": "raw/official-docs/tailwind-css-utility-first-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/tanstack-query-server-state-official.md",
"legacy_path": "raw/official-docs/tanstack-query-server-state-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/test-taxonomy-practical-pyramid-fowler.md",
"legacy_path": "raw/official-docs/test-taxonomy-practical-pyramid-fowler.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/test-taxonomy-testcontainers-official.md",
"legacy_path": "raw/official-docs/test-taxonomy-testcontainers-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/third-party-cookie-blocking-safari-webkit-official.md",
"legacy_path": "raw/official-docs/third-party-cookie-blocking-safari-webkit-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/threadlocal-virtual-threads-java21-oracle.md",
"legacy_path": "raw/official-docs/threadlocal-virtual-threads-java21-oracle.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/trace-context-w3c-recommendation.md",
"legacy_path": "raw/official-docs/trace-context-w3c-recommendation.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-b3-propagation-zipkin-spec.md",
"legacy_path": "raw/official-docs/tracing-b3-propagation-zipkin-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-micrometer-observation-introduction.md",
"legacy_path": "raw/official-docs/tracing-micrometer-observation-introduction.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-otel-sampling-tail-vs-head-spec.md",
"legacy_path": "raw/official-docs/tracing-otel-sampling-tail-vs-head-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-otel-trace-api-spec.md",
"legacy_path": "raw/official-docs/tracing-otel-trace-api-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-spring-boot-3-actuator-tracing-reference.md",
"legacy_path": "raw/official-docs/tracing-spring-boot-3-actuator-tracing-reference.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/tracing-w3c-trace-context-spec.md",
"legacy_path": "raw/official-docs/tracing-w3c-trace-context-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/traefik-forwardauth-middleware-official.md",
"legacy_path": "raw/official-docs/traefik-forwardauth-middleware-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/traefik-hub-oidc-middleware-official.md",
"legacy_path": "raw/official-docs/traefik-hub-oidc-middleware-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/traefik-oidc-community-plugin-lukaszraczylo-official.md",
"legacy_path": "raw/official-docs/traefik-oidc-community-plugin-lukaszraczylo-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/transaction-template-spring-official.md",
"legacy_path": "raw/official-docs/transaction-template-spring-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/transactional-outbox-aws-prescriptive-guidance.md",
"legacy_path": "raw/official-docs/transactional-outbox-aws-prescriptive-guidance.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/trivy-action-github-actions.md",
"legacy_path": "raw/official-docs/trivy-action-github-actions.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/trivy-filtering-suppression-policy.md",
"legacy_path": "raw/official-docs/trivy-filtering-suppression-policy.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/trivy-java-language-coverage.md",
"legacy_path": "raw/official-docs/trivy-java-language-coverage.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/trivy-severity-exit-code-gating.md",
"legacy_path": "raw/official-docs/trivy-severity-exit-code-gating.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/ulid-spec.md",
"legacy_path": "raw/official-docs/ulid-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/validation-jakarta-bean-validation-3.0-spec.md",
"legacy_path": "raw/official-docs/validation-jakarta-bean-validation-3.0-spec.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/verification-approvaltests-snapshot-official.md",
"legacy_path": "raw/official-docs/verification-approvaltests-snapshot-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/verification-pact-cdc-official.md",
"legacy_path": "raw/official-docs/verification-pact-cdc-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/verification-spring-cloud-contract-official.md",
"legacy_path": "raw/official-docs/verification-spring-cloud-contract-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/verification-spring-restdocs-official.md",
"legacy_path": "raw/official-docs/verification-spring-restdocs-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/vite-build-tool-official.md",
"legacy_path": "raw/official-docs/vite-build-tool-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/vuln-severity-cisa-kev-catalog-official.md",
"legacy_path": "raw/official-docs/vuln-severity-cisa-kev-catalog-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/vuln-severity-cvss-v31-spec-first-official.md",
"legacy_path": "raw/official-docs/vuln-severity-cvss-v31-spec-first-official.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/whatwg-html-server-sent-events.md",
"legacy_path": "raw/official-docs/whatwg-html-server-sent-events.md"
},
{
"canonical_path": "vault/20-evidence/official-docs/zod-runtime-schema-validation-official.md",
"legacy_path": "raw/official-docs/zod-runtime-schema-validation-official.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/api-error-envelope-design.md",
"legacy_path": "wiki/concepts/api-error-envelope-design.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/api-evolution-and-schema.md",
"legacy_path": "wiki/concepts/api-evolution-and-schema.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/archunit-scope-classpath-vs-package-filter.md",
"legacy_path": "wiki/concepts/archunit-scope-classpath-vs-package-filter.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/boundary-validation-and-dto-mapping.md",
"legacy_path": "wiki/concepts/boundary-validation-and-dto-mapping.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/circuit-breaker.md",
"legacy_path": "wiki/concepts/circuit-breaker.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/clean-architecture-package-layout.md",
"legacy_path": "wiki/concepts/clean-architecture-package-layout.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/config-and-adapter-templates.md",
"legacy_path": "wiki/concepts/config-and-adapter-templates.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/data-layer-persistence-cache-outbound.md",
"legacy_path": "wiki/concepts/data-layer-persistence-cache-outbound.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/devops-ci-supply-chain-dx.md",
"legacy_path": "wiki/concepts/devops-ci-supply-chain-dx.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/distributed-tracing-baggage.md",
"legacy_path": "wiki/concepts/distributed-tracing-baggage.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/fail-open-fail-closed.md",
"legacy_path": "wiki/concepts/fail-open-fail-closed.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/idempotency-key-design.md",
"legacy_path": "wiki/concepts/idempotency-key-design.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/idempotency.md",
"legacy_path": "wiki/concepts/idempotency.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/multi-tenancy-isolation-patterns.md",
"legacy_path": "wiki/concepts/multi-tenancy-isolation-patterns.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/observability-log-metric-trace-runbook.md",
"legacy_path": "wiki/concepts/observability-log-metric-trace-runbook.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/outbox-pattern.md",
"legacy_path": "wiki/concepts/outbox-pattern.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/privacy-file-domain-modeling.md",
"legacy_path": "wiki/concepts/privacy-file-domain-modeling.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/resource-identifier-format.md",
"legacy_path": "wiki/concepts/resource-identifier-format.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/runtime-container-health-migration.md",
"legacy_path": "wiki/concepts/runtime-container-health-migration.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/sample-fixture-and-adoption.md",
"legacy_path": "wiki/concepts/sample-fixture-and-adoption.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/security-baseline-jwt-actuator-secrets.md",
"legacy_path": "wiki/concepts/security-baseline-jwt-actuator-secrets.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/skeleton-governance-registry-verification-test-scorecard.md",
"legacy_path": "wiki/concepts/skeleton-governance-registry-verification-test-scorecard.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/spring-smart-lifecycle.md",
"legacy_path": "wiki/concepts/spring-smart-lifecycle.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/streaming-response-patterns.md",
"legacy_path": "wiki/concepts/streaming-response-patterns.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/transaction-boundary-abstraction.md",
"legacy_path": "wiki/concepts/transaction-boundary-abstraction.md"
},
{
"canonical_path": "vault/30-knowledge/concepts/transactional-outbox-pattern.md",
"legacy_path": "wiki/concepts/transactional-outbox-pattern.md"
},
{
"canonical_path": "vault/30-knowledge/explainer/adapter-identifier.md",
"legacy_path": "wiki/explainer/adapter-identifier.md"
},
{
"canonical_path": "vault/30-knowledge/explainer/adapter-outbound.md",
"legacy_path": "wiki/explainer/adapter-outbound.md"
},
{
"canonical_path": "vault/30-knowledge/explainer/adapter-persistence.md",
"legacy_path": "wiki/explainer/adapter-persistence.md"
},
{
"canonical_path": "vault/30-knowledge/explainer/adapter-web.md",
"legacy_path": "wiki/explainer/adapter-web.md"
},
{
"canonical_path": "vault/30-knowledge/explainer/application-core.md",
"legacy_path": "wiki/explainer/application-core.md"
},
{
"canonical_path": "vault/30-knowledge/explainer/domain-core.md",
"legacy_path": "wiki/explainer/domain-core.md"
},
{
"canonical_path": "vault/30-knowledge/explainer/images/outbound-adapter-architecture.png",
"legacy_path": "wiki/explainer/images/outbound-adapter-architecture.png"
},
{
"canonical_path": "vault/30-knowledge/explainer/images/outbound-http-sequence.png",
"legacy_path": "wiki/explainer/images/outbound-http-sequence.png"
},
{
"canonical_path": "vault/30-knowledge/explainer/shared-contract.md",
"legacy_path": "wiki/explainer/shared-contract.md"
},
{
"canonical_path": "vault/30-knowledge/explainer/transaction-boundary-abstraction.md",
"legacy_path": "wiki/explainer/transaction-boundary-abstraction.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-auto.md",
"legacy_path": "wiki/invest-concepts/field-auto.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-bigtech-ai.md",
"legacy_path": "wiki/invest-concepts/field-bigtech-ai.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-bio-pharma.md",
"legacy_path": "wiki/invest-concepts/field-bio-pharma.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-bitcoin.md",
"legacy_path": "wiki/invest-concepts/field-bitcoin.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-chem-refining.md",
"legacy_path": "wiki/invest-concepts/field-chem-refining.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-cosmetics-consumer.md",
"legacy_path": "wiki/invest-concepts/field-cosmetics-consumer.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-defense.md",
"legacy_path": "wiki/invest-concepts/field-defense.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-dollar.md",
"legacy_path": "wiki/invest-concepts/field-dollar.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-em-china.md",
"legacy_path": "wiki/invest-concepts/field-em-china.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-entertainment.md",
"legacy_path": "wiki/invest-concepts/field-entertainment.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-financials.md",
"legacy_path": "wiki/invest-concepts/field-financials.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-game.md",
"legacy_path": "wiki/invest-concepts/field-game.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-gold.md",
"legacy_path": "wiki/invest-concepts/field-gold.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-internet-platform.md",
"legacy_path": "wiki/invest-concepts/field-internet-platform.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-krw-rates.md",
"legacy_path": "wiki/invest-concepts/field-krw-rates.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-map.md",
"legacy_path": "wiki/invest-concepts/field-map.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-nuclear-power.md",
"legacy_path": "wiki/invest-concepts/field-nuclear-power.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-oil.md",
"legacy_path": "wiki/invest-concepts/field-oil.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-robotics.md",
"legacy_path": "wiki/invest-concepts/field-robotics.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-rotation.md",
"legacy_path": "wiki/invest-concepts/field-rotation.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-secondary-battery.md",
"legacy_path": "wiki/invest-concepts/field-secondary-battery.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-semiconductors.md",
"legacy_path": "wiki/invest-concepts/field-semiconductors.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-shipbuilding.md",
"legacy_path": "wiki/invest-concepts/field-shipbuilding.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-steel-materials.md",
"legacy_path": "wiki/invest-concepts/field-steel-materials.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-telecom-utility.md",
"legacy_path": "wiki/invest-concepts/field-telecom-utility.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-us-equity.md",
"legacy_path": "wiki/invest-concepts/field-us-equity.md"
},
{
"canonical_path": "vault/30-knowledge/invest-concepts/field-us-rates.md",
"legacy_path": "wiki/invest-concepts/field-us-rates.md"
},
{
"canonical_path": "vault/30-knowledge/invest-plan/active-plan.md",
"legacy_path": "wiki/invest-plan/active-plan.md"
},
{
"canonical_path": "vault/30-knowledge/invest-strategy/strategy.md",
"legacy_path": "wiki/invest-strategy/strategy.md"
},
{
"canonical_path": "vault/30-knowledge/invest/invest-hub.md",
"legacy_path": "wiki/invest/invest-hub.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl.md",
"legacy_path": "wiki/projects/ca-tmpl.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/api-error-envelope-design.md",
"legacy_path": "wiki/projects/ca-tmpl/api-error-envelope-design.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/api-evolution-and-schema.md",
"legacy_path": "wiki/projects/ca-tmpl/api-evolution-and-schema.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/boundary-validation-mapping.md",
"legacy_path": "wiki/projects/ca-tmpl/boundary-validation-mapping.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/clean-architecture-package-layout.md",
"legacy_path": "wiki/projects/ca-tmpl/clean-architecture-package-layout.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/config-and-adapter-templates.md",
"legacy_path": "wiki/projects/ca-tmpl/config-and-adapter-templates.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/data-layer-persistence-cache-outbound.md",
"legacy_path": "wiki/projects/ca-tmpl/data-layer-persistence-cache-outbound.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/devops-ci-supply-chain-dx.md",
"legacy_path": "wiki/projects/ca-tmpl/devops-ci-supply-chain-dx.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/idempotency-key-design.md",
"legacy_path": "wiki/projects/ca-tmpl/idempotency-key-design.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/knowledge-capture-workflow.md",
"legacy_path": "wiki/projects/ca-tmpl/knowledge-capture-workflow.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/multi-tenancy-isolation-patterns.md",
"legacy_path": "wiki/projects/ca-tmpl/multi-tenancy-isolation-patterns.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/observability-log-metric-trace-runbook.md",
"legacy_path": "wiki/projects/ca-tmpl/observability-log-metric-trace-runbook.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/privacy-file-domain-modeling.md",
"legacy_path": "wiki/projects/ca-tmpl/privacy-file-domain-modeling.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/resource-identifier-format.md",
"legacy_path": "wiki/projects/ca-tmpl/resource-identifier-format.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/runtime-container-health-migration.md",
"legacy_path": "wiki/projects/ca-tmpl/runtime-container-health-migration.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/sample-fixture-and-adoption.md",
"legacy_path": "wiki/projects/ca-tmpl/sample-fixture-and-adoption.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/security-baseline-jwt-actuator-secrets.md",
"legacy_path": "wiki/projects/ca-tmpl/security-baseline-jwt-actuator-secrets.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/skeleton-governance-registry-verification-test-scorecard.md",
"legacy_path": "wiki/projects/ca-tmpl/skeleton-governance-registry-verification-test-scorecard.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/streaming-response-support.md",
"legacy_path": "wiki/projects/ca-tmpl/streaming-response-support.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/transaction-boundary-abstraction.md",
"legacy_path": "wiki/projects/ca-tmpl/transaction-boundary-abstraction.md"
},
{
"canonical_path": "vault/30-knowledge/projects/ca-tmpl/transactional-outbox-pattern.md",
"legacy_path": "wiki/projects/ca-tmpl/transactional-outbox-pattern.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/api-deprecation-sunset-header-migration-window-2026-07-02.md",
"legacy_path": "raw/blog-topics/api-deprecation-sunset-header-migration-window-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/archunit-generic-return-type-purity-query-port-2026-06-05.md",
"legacy_path": "raw/blog-topics/archunit-generic-return-type-purity-query-port-2026-06-05.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/archunit-jackson-default-typing-cve-2019-14379-block-2026-05-29.md",
"legacy_path": "raw/blog-topics/archunit-jackson-default-typing-cve-2019-14379-block-2026-05-29.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/archunit-testcompileonly-fixture-annotation-pattern-2026-06-02.md",
"legacy_path": "raw/blog-topics/archunit-testcompileonly-fixture-annotation-pattern-2026-06-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/archunit-violations-as-data-pattern-2026-05-28.md",
"legacy_path": "raw/blog-topics/archunit-violations-as-data-pattern-2026-05-28.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/binary-readiness-scorecard-clean-architecture-skeleton-2026-07-02.md",
"legacy_path": "raw/blog-topics/binary-readiness-scorecard-clean-architecture-skeleton-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/boundary-validation-mapper-responsibility-map-2026-07-02.md",
"legacy_path": "raw/blog-topics/boundary-validation-mapper-responsibility-map-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/cache-backend-router-fail-open-decorator-2026-07-02.md",
"legacy_path": "raw/blog-topics/cache-backend-router-fail-open-decorator-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/cache-consistency-after-commit-stampede-contract-2026-07-02.md",
"legacy_path": "raw/blog-topics/cache-consistency-after-commit-stampede-contract-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/ci-gate-wiring-vs-policy-ownership-2026-06-20.md",
"legacy_path": "raw/blog-topics/ci-gate-wiring-vs-policy-ownership-2026-06-20.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/clean-architecture-boundary-enforcement-2026-05-28.md",
"legacy_path": "raw/blog-topics/clean-architecture-boundary-enforcement-2026-05-28.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/clean-architecture-module-blueprint-2026-05-28.md",
"legacy_path": "raw/blog-topics/clean-architecture-module-blueprint-2026-05-28.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/clean-architecture-reference-project-adoption-2026-06-17.md",
"legacy_path": "raw/blog-topics/clean-architecture-reference-project-adoption-2026-06-17.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/contract-registry-schema-owner-vs-row-owner-gate-2026-06-20.md",
"legacy_path": "raw/blog-topics/contract-registry-schema-owner-vs-row-owner-gate-2026-06-20.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/contract-verification-suite-release-gates-2026-07-02.md",
"legacy_path": "raw/blog-topics/contract-verification-suite-release-gates-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/digest-first-java-release-pipeline-2026-06-21.md",
"legacy_path": "raw/blog-topics/digest-first-java-release-pipeline-2026-06-21.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/distributed-lock-transaction-commit-boundary-2026-07-02.md",
"legacy_path": "raw/blog-topics/distributed-lock-transaction-commit-boundary-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/domain-modeling-guardrails-as-archunit-fitness-functions-2026-06-05.md",
"legacy_path": "raw/blog-topics/domain-modeling-guardrails-as-archunit-fitness-functions-2026-06-05.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/env-example-drift-gate-gradle-2026-06-06.md",
"legacy_path": "raw/blog-topics/env-example-drift-gate-gradle-2026-06-06.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/executable-clean-architecture-onboarding-2026-06-25.md",
"legacy_path": "raw/blog-topics/executable-clean-architecture-onboarding-2026-06-25.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/five-stage-local-bootstrap-contract-2026-06-24.md",
"legacy_path": "raw/blog-topics/five-stage-local-bootstrap-contract-2026-06-24.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/framework-free-method-authorization-clean-architecture-2026-06-08.md",
"legacy_path": "raw/blog-topics/framework-free-method-authorization-clean-architecture-2026-06-08.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/gitea-act-dependency-security-gate-portability-2026-07-02.md",
"legacy_path": "raw/blog-topics/gitea-act-dependency-security-gate-portability-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/gradle9-java21-static-analysis-baseline-2026-06-20.md",
"legacy_path": "raw/blog-topics/gradle9-java21-static-analysis-baseline-2026-06-20.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/hikaricp-inter-knob-constraints-startup-guard-2026-06-09.md",
"legacy_path": "raw/blog-topics/hikaricp-inter-knob-constraints-startup-guard-2026-06-09.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/idempotency-executor-application-layer-clean-architecture-2026-06-09.md",
"legacy_path": "raw/blog-topics/idempotency-executor-application-layer-clean-architecture-2026-06-09.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/identifier-governance-rule-scoping-by-id-kind-2026-06-01.md",
"legacy_path": "raw/blog-topics/identifier-governance-rule-scoping-by-id-kind-2026-06-01.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/java21-context-propagation-strategy-virtual-threads-2026-07-02.md",
"legacy_path": "raw/blog-topics/java21-context-propagation-strategy-virtual-threads-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/jdk-httpclient-dns-connectexception-classification-2026-07-02.md",
"legacy_path": "raw/blog-topics/jdk-httpclient-dns-connectexception-classification-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/jvm-oom-vs-container-oomkill-exit-137-2026-07-02.md",
"legacy_path": "raw/blog-topics/jvm-oom-vs-container-oomkill-exit-137-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/logback-layer1-secret-masking-json-vs-pattern-2026-06-14.md",
"legacy_path": "raw/blog-topics/logback-layer1-secret-masking-json-vs-pattern-2026-06-14.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/manifest-driven-agent-harness-policy-engine.md",
"legacy_path": "raw/blog-topics/manifest-driven-agent-harness-policy-engine.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/micrometer-meterfilter-resilience4j-functioncounter-2026-07-02.md",
"legacy_path": "raw/blog-topics/micrometer-meterfilter-resilience4j-functioncounter-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/nplus1-lab-checkoutable-api-replay-2026-07-15.md",
"legacy_path": "raw/blog-topics/nplus1-lab-checkoutable-api-replay-2026-07-15.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/operational-error-envelope-meta-category-migration-2026-06-01.md",
"legacy_path": "raw/blog-topics/operational-error-envelope-meta-category-migration-2026-06-01.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/persistence-audit-metadata-clean-architecture-2026-07-02.md",
"legacy_path": "raw/blog-topics/persistence-audit-metadata-clean-architecture-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/post-implementation-knowledge-capture-workflow-2026-05-28.md",
"legacy_path": "raw/blog-topics/post-implementation-knowledge-capture-workflow-2026-05-28.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/repository-capability-archunit-fitness-function-2026-07-02.md",
"legacy_path": "raw/blog-topics/repository-capability-archunit-fitness-function-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/runbook-coverage-junit-contract-test-2026-07-02.md",
"legacy_path": "raw/blog-topics/runbook-coverage-junit-contract-test-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/sample-domain-contract-fixture-clean-architecture-2026-06-10.md",
"legacy_path": "raw/blog-topics/sample-domain-contract-fixture-clean-architecture-2026-06-10.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/sample-fixture-dual-mode-build-matrix-2026-06-25.md",
"legacy_path": "raw/blog-topics/sample-fixture-dual-mode-build-matrix-2026-06-25.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/secret-source-port-restart-only-rotation-2026-07-02.md",
"legacy_path": "raw/blog-topics/secret-source-port-restart-only-rotation-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/skip-locked-outbox-per-aggregate-fifo-gate-2026-06-11.md",
"legacy_path": "raw/blog-topics/skip-locked-outbox-per-aggregate-fifo-gate-2026-06-11.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-actuator-health-probe-group-split-2026-07-02.md",
"legacy_path": "raw/blog-topics/spring-actuator-health-probe-group-split-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-async-taskdecorator-bounded-executor-saturation-shutdown-2026-06-13.md",
"legacy_path": "raw/blog-topics/spring-async-taskdecorator-bounded-executor-saturation-shutdown-2026-06-13.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-boot-3-configprops-record-multi-constructor-binding-2026-06-12.md",
"legacy_path": "raw/blog-topics/spring-boot-3-configprops-record-multi-constructor-binding-2026-06-12.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-boot-serialization-contract-pins-2026-07-02.md",
"legacy_path": "raw/blog-topics/spring-boot-serialization-contract-pins-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-boot-startup-exit-code-propagation-2026-06-10.md",
"legacy_path": "raw/blog-topics/spring-boot-startup-exit-code-propagation-2026-06-10.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-conditional-on-property-optional-adapter-template-2026-06-09.md",
"legacy_path": "raw/blog-topics/spring-conditional-on-property-optional-adapter-template-2026-06-09.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-responseentityexceptionhandler-transport-failure-envelope-2026-07-02.md",
"legacy_path": "raw/blog-topics/spring-responseentityexceptionhandler-transport-failure-envelope-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/spring-security-filter-layer-error-envelope-2026-06-08.md",
"legacy_path": "raw/blog-topics/spring-security-filter-layer-error-envelope-2026-06-08.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/streaming-response-not-supported-archunit-ban-2026-07-02.md",
"legacy_path": "raw/blog-topics/streaming-response-not-supported-archunit-ban-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/test-taxonomy-archunit-enforcement-2026-06-19.md",
"legacy_path": "raw/blog-topics/test-taxonomy-archunit-enforcement-2026-06-19.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/transaction-isolation-vendor-default-pin-2026-07-02.md",
"legacy_path": "raw/blog-topics/transaction-isolation-vendor-default-pin-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/transaction-port-abstraction-over-spring-transactional-2026-05-28.md",
"legacy_path": "raw/blog-topics/transaction-port-abstraction-over-spring-transactional-2026-05-28.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/trivy-suppression-governance-static-gate-2026-06-20.md",
"legacy_path": "raw/blog-topics/trivy-suppression-governance-static-gate-2026-06-20.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/ulid-crockford-base32-excluded-letters-2026-06-01.md",
"legacy_path": "raw/blog-topics/ulid-crockford-base32-excluded-letters-2026-06-01.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/w3c-traceparent-fork-activated-seam-2026-07-02.md",
"legacy_path": "raw/blog-topics/w3c-traceparent-fork-activated-seam-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/webhook-full-jitter-dlq-observability-2026-07-02.md",
"legacy_path": "raw/blog-topics/webhook-full-jitter-dlq-observability-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/webhook-signature-replay-contract-2026-07-02.md",
"legacy_path": "raw/blog-topics/webhook-signature-replay-contract-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog-topics/webhook-ssrf-egress-proxy-redirect-block-2026-07-02.md",
"legacy_path": "raw/blog-topics/webhook-ssrf-egress-proxy-redirect-block-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-api-error-envelope-design-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-api-error-envelope-design-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-api-evolution-and-schema-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-api-evolution-and-schema-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-boundary-validation-mapping-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-boundary-validation-mapping-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-clean-architecture-package-layout-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-clean-architecture-package-layout-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-config-and-adapter-templates-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-config-and-adapter-templates-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-data-layer-persistence-cache-outbound-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-data-layer-persistence-cache-outbound-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-devops-ci-supply-chain-dx-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-devops-ci-supply-chain-dx-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-idempotency-key-design-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-idempotency-key-design-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-knowledge-capture-workflow-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-knowledge-capture-workflow-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-multi-tenancy-isolation-patterns-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-multi-tenancy-isolation-patterns-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-observability-log-metric-trace-runbook-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-observability-log-metric-trace-runbook-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-privacy-file-domain-modeling-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-privacy-file-domain-modeling-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-resource-identifier-format-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-resource-identifier-format-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-runtime-container-health-migration-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-runtime-container-health-migration-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-sample-fixture-and-adoption-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-sample-fixture-and-adoption-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-security-baseline-jwt-actuator-secrets-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-security-baseline-jwt-actuator-secrets-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-skeleton-governance-registry-verification-test-scorecard-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-skeleton-governance-registry-verification-test-scorecard-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-streaming-response-support-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-streaming-response-support-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-transaction-boundary-abstraction-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-transaction-boundary-abstraction-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/blog/ca-tmpl-transactional-outbox-pattern-2026-07-02.md",
"legacy_path": "wiki/blog/ca-tmpl-transactional-outbox-pattern-2026-07-02.md"
},
{
"canonical_path": "vault/40-publish/interviews/archunit-manual-importer-vs-analyzeclasses.md",
"legacy_path": "raw/interviews/archunit-manual-importer-vs-analyzeclasses.md"
},
{
"canonical_path": "vault/40-publish/interviews/archunit-static-analysis-limits.md",
"legacy_path": "raw/interviews/archunit-static-analysis-limits.md"
},
{
"canonical_path": "vault/40-publish/interviews/archunit-violations-as-data-pattern-2026-06-02.md",
"legacy_path": "raw/interviews/archunit-violations-as-data-pattern-2026-06-02.md"
},
{
"canonical_path": "vault/40-publish/interviews/async-executor-saturation-context-propagation-2026-06-13.md",
"legacy_path": "raw/interviews/async-executor-saturation-context-propagation-2026-06-13.md"
},
{
"canonical_path": "vault/40-publish/interviews/ci-release-gate-fan-in-blocking-2026-06-20.md",
"legacy_path": "raw/interviews/ci-release-gate-fan-in-blocking-2026-06-20.md"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-boundary-enforcement.md",
"legacy_path": "raw/interviews/clean-architecture-boundary-enforcement.md"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-domain-onboarding-guardrails.md",
"legacy_path": "raw/interviews/clean-architecture-domain-onboarding-guardrails.md"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-identifier-generation.md",
"legacy_path": "raw/interviews/clean-architecture-identifier-generation.md"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-method-authorization-without-spring-coupling-2026-06-08.md",
"legacy_path": "raw/interviews/clean-architecture-method-authorization-without-spring-coupling-2026-06-08.md"
},
{
"canonical_path": "vault/40-publish/interviews/clean-architecture-module-blueprint.md",
"legacy_path": "raw/interviews/clean-architecture-module-blueprint.md"
},
{
"canonical_path": "vault/40-publish/interviews/crown-one-query-vs-cqrs-lite-read-model.md",
"legacy_path": "raw/interviews/crown-one-query-vs-cqrs-lite-read-model.md"
},
{
"canonical_path": "vault/40-publish/interviews/deterministic-logback-asyncappender-drop-metric-test-2026-06-14.md",
"legacy_path": "raw/interviews/deterministic-logback-asyncappender-drop-metric-test-2026-06-14.md"
},
{
"canonical_path": "vault/40-publish/interviews/digest-first-supply-chain-release-gates.md",
"legacy_path": "raw/interviews/digest-first-supply-chain-release-gates.md"
},
{
"canonical_path": "vault/40-publish/interviews/domain-modeling-guardrails-archunit-2026-06-05.md",
"legacy_path": "raw/interviews/domain-modeling-guardrails-archunit-2026-06-05.md"
},
{
"canonical_path": "vault/40-publish/interviews/formatter-vs-style-linter-responsibility-split-2026-06-20.md",
"legacy_path": "raw/interviews/formatter-vs-style-linter-responsibility-split-2026-06-20.md"
},
{
"canonical_path": "vault/40-publish/interviews/gradle-sample-off-test-classpath-isolation.md",
"legacy_path": "raw/interviews/gradle-sample-off-test-classpath-isolation.md"
},
{
"canonical_path": "vault/40-publish/interviews/idempotency-rate-limit-design-tradeoffs-2026-06-09.md",
"legacy_path": "raw/interviews/idempotency-rate-limit-design-tradeoffs-2026-06-09.md"
},
{
"canonical_path": "vault/40-publish/interviews/jwt-resource-server-fine-grained-error-classification-2026-06-08.md",
"legacy_path": "raw/interviews/jwt-resource-server-fine-grained-error-classification-2026-06-08.md"
},
{
"canonical_path": "vault/40-publish/interviews/manifest-driven-multi-platform-agent-harness.md",
"legacy_path": "raw/interviews/manifest-driven-multi-platform-agent-harness.md"
},
{
"canonical_path": "vault/40-publish/interviews/native-query-addscalar-runtime-validation.md",
"legacy_path": "raw/interviews/native-query-addscalar-runtime-validation.md"
},
{
"canonical_path": "vault/40-publish/interviews/operational-error-envelope-and-observability-foundation.md",
"legacy_path": "raw/interviews/operational-error-envelope-and-observability-foundation.md"
},
{
"canonical_path": "vault/40-publish/interviews/optional-adapter-3-layer-disabled-detection-2026-06-09.md",
"legacy_path": "raw/interviews/optional-adapter-3-layer-disabled-detection-2026-06-09.md"
},
{
"canonical_path": "vault/40-publish/interviews/post-implementation-knowledge-capture.md",
"legacy_path": "raw/interviews/post-implementation-knowledge-capture.md"
},
{
"canonical_path": "vault/40-publish/interviews/sample-domain-contract-fixture-clean-architecture.md",
"legacy_path": "raw/interviews/sample-domain-contract-fixture-clean-architecture.md"
},
{
"canonical_path": "vault/40-publish/interviews/shared-contract-and-sample-isolation.md",
"legacy_path": "raw/interviews/shared-contract-and-sample-isolation.md"
},
{
"canonical_path": "vault/40-publish/interviews/single-command-local-bootstrap.md",
"legacy_path": "raw/interviews/single-command-local-bootstrap.md"
},
{
"canonical_path": "vault/40-publish/interviews/spring-jpa-flyway-initialization-lifecycle-circular-dependency.md",
"legacy_path": "raw/interviews/spring-jpa-flyway-initialization-lifecycle-circular-dependency.md"
},
{
"canonical_path": "vault/40-publish/interviews/startup-fail-fast-config-validation-2026-06-06.md",
"legacy_path": "raw/interviews/startup-fail-fast-config-validation-2026-06-06.md"
},
{
"canonical_path": "vault/40-publish/interviews/transaction-port-vs-spring-transactional.md",
"legacy_path": "raw/interviews/transaction-port-vs-spring-transactional.md"
},
{
"canonical_path": "vault/40-publish/interviews/transactional-outbox-skip-locked-implementation-2026-06-11.md",
"legacy_path": "raw/interviews/transactional-outbox-skip-locked-implementation-2026-06-11.md"
},
{
"canonical_path": "vault/40-publish/interviews/trivy-suppression-dual-control-governance-2026-06-20.md",
"legacy_path": "raw/interviews/trivy-suppression-dual-control-governance-2026-06-20.md"
},
{
"canonical_path": "vault/40-publish/publish-blog/api-error-envelope-blog.md",
"legacy_path": "wiki/publish-blog/api-error-envelope-blog.md"
},
{
"canonical_path": "vault/40-publish/publish-blog/api-evolution-schema-blog.md",
"legacy_path": "wiki/publish-blog/api-evolution-schema-blog.md"
},
{
"canonical_path": "vault/40-publish/publish-blog/boundary-validation-mapping-blog.md",
"legacy_path": "wiki/publish-blog/boundary-validation-mapping-blog.md"
},
{
"canonical_path": "vault/40-publish/publish-blog/ci-supply-chain-blog.md",
"legacy_path": "wiki/publish-blog/ci-supply-chain-blog.md"
},
{
"canonical_path": "vault/40-publish/publish-blog/clean-architecture-package-layout-blog.md",
"legacy_path": "wiki/publish-blog/clean-architecture-package-layout-blog.md"
},
{
"canonical_path": "vault/40-publish/publish-blog/data-layer-persistence-cache-outbound-blog.md",
"legacy_path": "wiki/publish-blog/data-layer-persistence-cache-outbound-blog.md"
},
{
"canonical_path": "vault/40-publish/publish-blog/optional-adapter-config-contract-blog.md",
"legacy_path": "wiki/publish-blog/optional-adapter-config-contract-blog.md"
},
{
"canonical_path": "vault/40-publish/topics-interview/clean-architecture.md",
"legacy_path": "wiki/topics-interview/clean-architecture.md"
},
{
"canonical_path": "vault/50-journal/daily-notes/2026-05-27.md",
"legacy_path": "raw/daily-notes/2026-05-27.md"
},
{
"canonical_path": "vault/50-journal/daily-notes/2026-05-28.md",
"legacy_path": "raw/daily-notes/2026-05-28.md"
},
{
"canonical_path": "vault/50-journal/daily-notes/2026-06-14.md",
"legacy_path": "raw/daily-notes/2026-06-14.md"
},
{
"canonical_path": "vault/50-journal/daily-notes/2026-06-30.md",
"legacy_path": "raw/daily-notes/2026-06-30.md"
},
{
"canonical_path": "vault/50-journal/daily-tasks/README.md",
"legacy_path": "raw/daily-tasks/README.md"
},
{
"canonical_path": "vault/50-journal/daily-tasks/develop/2026-05-29-archunit-controller-domain-return-rule.md",
"legacy_path": "raw/daily-tasks/develop/2026-05-29-archunit-controller-domain-return-rule.md"
},
{
"canonical_path": "vault/50-journal/daily-tasks/infra/2026-05-29-actuator-readiness-probe-db-disconnect-detection.md",
"legacy_path": "raw/daily-tasks/infra/2026-05-29-actuator-readiness-probe-db-disconnect-detection.md"
},
{
"canonical_path": "vault/50-journal/invest-daily/2026-06-06.md",
"legacy_path": "raw/invest-daily/2026-06-06.md"
},
{
"canonical_path": "vault/50-journal/invest-daily/2026-06-08.md",
"legacy_path": "raw/invest-daily/2026-06-08.md"
},
{
"canonical_path": "vault/50-journal/invest-ledger/ledger.md",
"legacy_path": "raw/invest-ledger/ledger.md"
},
{
"canonical_path": "vault/90-archive/archive/branch-notes/feature-template-instantiation-contract.md",
"legacy_path": "raw/archive/branch-notes/feature-template-instantiation-contract.md"
}
],
"schema_version": "vault-rollback/v1"
},
"schema_version": "vault-layout/v1",
"vault_root": "vault",
"write_roots": {
"canonical": [
"vault"
],
"compatibility": [
"raw",
"wiki"
],
"shadow": [
"raw",
"wiki"
]
}
}