diff --git a/Makefile b/Makefile index 7f5186ec..8ff9d89b 100644 --- a/Makefile +++ b/Makefile @@ -30,9 +30,9 @@ clean:: # Clean-up project resources (main) @Operations # (cd src/server && make clean) guard-%: - @ if [ "${${*}}" = "" ]; then \ + @if [ -z "$${$*}" ]; then \ echo "Variable $* not set"; \ - echo "Usage: make APIM_ENV=" + echo "Usage: make $*="; \ exit 1; \ fi serve: @@ -59,6 +59,9 @@ set-security: guard-APIM_ENV @ SECURITY=security-$$APIM_ENV.yml \ envsubst '$${SECURITY}' \ < specification/api/components/security/security-template.yml > specification/api/components/security/security.yml + @ SECURITY_SCHEMES=security-schemes-$$APIM_ENV.yml \ + envsubst '$${SECURITY_SCHEMES}' \ + < specification/api/components/security-schemes/security-schemes-template.yml > specification/api/components/security-schemes/security-schemes.yml construct-spec: guard-APIM_ENV $(MAKE) set-target APIM_ENV=$$APIM_ENV diff --git a/internal/datastore/src/cli/diagrams.ts b/internal/datastore/src/cli/diagrams.ts index c9e8ad3c..d7667f6a 100644 --- a/internal/datastore/src/cli/diagrams.ts +++ b/internal/datastore/src/cli/diagrams.ts @@ -1,25 +1,39 @@ -import {LetterSchema, MISchema, SupplierSchema} from '../types'; -import { generateMermaidDiagram } from 'zod-mermaid'; -import * as fs from 'node:fs'; +import { generateMermaidDiagram } from "zod-mermaid"; +import * as fs from "node:fs"; +import { + LetterSchema, + MISchema, + SupplierSchema, +} from "internal/datastore/src/types"; -const out = fs.openSync('src/types.md', 'w'); +const out = fs.openSync("src/types.md", "w"); -fs.writeSync(out, `# Data Store Schemas +fs.writeSync( + out, + `# Data Store Schemas This document contains the mermaid diagrams for the data store schemas used in the application. The schemas are generated from Zod definitions and provide a visual representation of the data structure. -`); +`, +); -for (const [name, schema] of Object.entries({ Letter: [LetterSchema], MI: [MISchema], Supplier: [SupplierSchema] })) { +for (const [name, schema] of Object.entries({ + Letter: [LetterSchema], + MI: [MISchema], + Supplier: [SupplierSchema], +})) { const mermaid = generateMermaidDiagram(schema); - fs.writeSync(out, ` + fs.writeSync( + out, + ` ## ${name} schema \`\`\`mermaid ${mermaid} \`\`\` -`); +`, + ); } fs.closeSync(out); diff --git a/specification/api/components/security-schemes/security-schemes-int.yml b/specification/api/components/security-schemes/security-schemes-int.yml new file mode 100644 index 00000000..80a446d6 --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes-int.yml @@ -0,0 +1 @@ +$ref: './security-schemes-ptl.yml' diff --git a/specification/api/components/security-schemes/security-schemes-internal-dev-pr.yml b/specification/api/components/security-schemes/security-schemes-internal-dev-pr.yml new file mode 100644 index 00000000..80a446d6 --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes-internal-dev-pr.yml @@ -0,0 +1 @@ +$ref: './security-schemes-ptl.yml' diff --git a/specification/api/components/security-schemes/security-schemes-internal-dev.yml b/specification/api/components/security-schemes/security-schemes-internal-dev.yml new file mode 100644 index 00000000..80a446d6 --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes-internal-dev.yml @@ -0,0 +1 @@ +$ref: './security-schemes-ptl.yml' diff --git a/specification/api/components/security-schemes/security-schemes-prod.yml b/specification/api/components/security-schemes/security-schemes-prod.yml new file mode 100644 index 00000000..53ade6bd --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes-prod.yml @@ -0,0 +1,4 @@ +app-level3: + $ref: https://proxygen.prod.api.platform.nhs.uk/components/securitySchemes/app-level3 +app-level0: + $ref: https://proxygen.prod.api.platform.nhs.uk/components/securitySchemes/app-level0 diff --git a/specification/api/components/security-schemes/security-schemes-ptl.yml b/specification/api/components/security-schemes/security-schemes-ptl.yml new file mode 100644 index 00000000..91763ecc --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes-ptl.yml @@ -0,0 +1,4 @@ +app-level3: + $ref: https://proxygen.ptl.api.platform.nhs.uk/components/securitySchemes/app-level3 +app-level0: + $ref: https://proxygen.ptl.api.platform.nhs.uk/components/securitySchemes/app-level0 diff --git a/specification/api/components/security-schemes/security-schemes-ref.yml b/specification/api/components/security-schemes/security-schemes-ref.yml new file mode 100644 index 00000000..80a446d6 --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes-ref.yml @@ -0,0 +1 @@ +$ref: './security-schemes-ptl.yml' diff --git a/specification/api/components/security-schemes/security-schemes-sandbox.yml b/specification/api/components/security-schemes/security-schemes-sandbox.yml new file mode 100644 index 00000000..80a446d6 --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes-sandbox.yml @@ -0,0 +1 @@ +$ref: './security-schemes-ptl.yml' diff --git a/specification/api/components/security-schemes/security-schemes-template.yml b/specification/api/components/security-schemes/security-schemes-template.yml new file mode 100644 index 00000000..f15a14a3 --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes-template.yml @@ -0,0 +1 @@ +$ref: $SECURITY_SCHEMES diff --git a/specification/api/components/security-schemes/security-schemes.yml b/specification/api/components/security-schemes/security-schemes.yml new file mode 100644 index 00000000..78a3ea0e --- /dev/null +++ b/specification/api/components/security-schemes/security-schemes.yml @@ -0,0 +1 @@ +$ref: security-schemes-prod.yml diff --git a/specification/api/notify-supplier-phase1.yml b/specification/api/notify-supplier-phase1.yml index 4062bf09..589c18af 100644 --- a/specification/api/notify-supplier-phase1.yml +++ b/specification/api/notify-supplier-phase1.yml @@ -49,10 +49,7 @@ paths: summary: Health check components: securitySchemes: - app-level3: - $ref: https://proxygen.ptl.api.platform.nhs.uk/components/securitySchemes/app-level3 - app-level0: - $ref: https://proxygen.ptl.api.platform.nhs.uk/components/securitySchemes/app-level0 + $ref: ./components/security-schemes/security-schemes.yml tags: - name: letter