TenantAtlas/specs/410-public-docs-ia/contracts/public-docs-routes.openapi.yaml
ahmido af5fa30341 410: add public docs information architecture (#412)
Implements website feature branch `410-public-docs-ia`.

Target branch: `website-dev`.

Validation:
- `corepack pnpm --filter @tenantatlas/website build`
- Playwright smoke coverage for public routes and docs interactions
- Static claim scans for `apps/website/src`, `apps/website/public`, and `apps/website/dist`

Follow-up integration path after merge:

`website-dev` -> `dev`.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #412
2026-05-31 21:11:07 +00:00

379 lines
11 KiB
YAML

openapi: 3.1.0
info:
title: Tenantial Public Docs Routes
version: 0.1.0
description: >
Static public website route contract for Spec 410. These routes return HTML
pages only and do not expose platform runtime APIs, authenticated docs,
customer portals, CMS workflows, provider runtime state, legal downloads,
or support-ticket behavior.
servers:
- url: http://127.0.0.1:4321
description: Local website preview using WEBSITE_PORT default
paths:
/docs/:
get:
summary: German docs landing page
operationId: getGermanDocsLandingPage
tags:
- Public Website
- Docs
responses:
"200":
description: Static HTML docs landing page
content:
text/html:
schema:
type: string
examples:
page:
summary: Required visible content
value: "Tenantial Dokumentation fuer Evaluation, Betrieb und Governance. Einstieg in Provider, Berechtigungen, Evidence, Drift, Recovery, Review Packs und bekannte Grenzen."
"404":
description: Route not configured
x-content-requirements:
locale: de
mustInclude:
- Hero framing for documentation, evaluation, operations, and governance
- Twelve required docs category links
- Real links only
- Related handoffs to verified public routes where implementation ships them
mustNotInclude:
- href="#"
- repo-real foundation
- productization gap
- capability registry
- implementation truth
- DSGVO-konform
- ISO-zertifiziert
- NIS2-konform
- real-time drift
- automatic remediation
- automatic restore
- one-click restore
- Google supported
- AWS supported
/en/docs/:
get:
summary: English docs landing page
operationId: getEnglishDocsLandingPage
tags:
- Public Website
- Docs
responses:
"200":
description: Static HTML docs landing page
content:
text/html:
schema:
type: string
examples:
page:
summary: Required visible content
value: "Tenantial documentation for evaluation, operations, and governance. Start with provider access, evidence, drift, recovery context, review packs, and known limitations."
"404":
description: Route not configured
x-content-requirements:
locale: en
mustInclude:
- Hero framing for documentation, evaluation, operations, and governance
- Twelve required docs category links
- Real links only
- Related handoffs to verified public routes where implementation ships them
mustNotInclude:
- href="#"
- repo-real foundation
- productization gap
- capability registry
- implementation truth
- GDPR compliant
- ISO certified
- NIS2 compliant
- real-time drift
- automatic remediation
- automatic restore
- one-click restore
- Google supported
- AWS supported
/docs/{topic}/:
get:
summary: German docs topic page
operationId: getGermanDocsTopicPage
tags:
- Public Website
- Docs
parameters:
- in: path
name: topic
required: true
schema:
$ref: '#/components/schemas/DocsTopicSlug'
responses:
"200":
description: Static HTML docs topic page
content:
text/html:
schema:
type: string
"404":
description: Topic route not configured
x-content-requirements:
locale: de
pageShape:
- Title
- Intro paragraph
- What this page covers
- 3 to 6 ordered sections
- Related links
mustNotInclude:
- href="#"
- repo-real foundation
- productization gap
- capability registry
- implementation truth
- DSGVO-konform
- ISO-zertifiziert
- NIS2-konform
- in Deutschland gehostet
- keine Kundendaten
- keine personenbezogenen Daten
- Google supported
- AWS supported
- multi-cloud supported
- real-time drift
- automatic remediation
- automatic restore
- one-click restore
- immutable backups
- gerichtsfeste Nachweise
- guarantees audit success
/en/docs/{topic}/:
get:
summary: English docs topic page
operationId: getEnglishDocsTopicPage
tags:
- Public Website
- Docs
parameters:
- in: path
name: topic
required: true
schema:
$ref: '#/components/schemas/DocsTopicSlug'
responses:
"200":
description: Static HTML docs topic page
content:
text/html:
schema:
type: string
"404":
description: Topic route not configured
x-content-requirements:
locale: en
pageShape:
- Title
- Intro paragraph
- What this page covers
- 3 to 6 ordered sections
- Related links
mustNotInclude:
- href="#"
- repo-real foundation
- productization gap
- capability registry
- implementation truth
- GDPR compliant
- ISO certified
- NIS2 compliant
- hosted in Germany
- no customer data stored
- no personal data stored
- Google supported
- AWS supported
- multi-cloud supported
- real-time drift
- automatic remediation
- automatic restore
- one-click restore
- immutable backups
- court-proof evidence
- guarantees audit success
/welcome-to-docs/:
get:
summary: Legacy German docs landing alias
operationId: getLegacyGermanDocsLandingAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/docs/`
"200":
description: Acceptable only if implementation uses an equivalent alias and the rendered content matches `/docs/`
/en/welcome-to-docs/:
get:
summary: Legacy English docs landing alias
operationId: getLegacyEnglishDocsLandingAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/en/docs/`
"200":
description: Acceptable only if implementation uses an equivalent alias and the rendered content matches `/en/docs/`
/guides/intro/:
get:
summary: Legacy German intro docs alias
operationId: getLegacyGermanIntroDocsAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/docs/getting-started/`
/guides/getting-started/:
get:
summary: Legacy German getting-started docs alias
operationId: getLegacyGermanGettingStartedDocsAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/docs/getting-started/`
/guides/first-project-checklist/:
get:
summary: Legacy German evaluation checklist alias
operationId: getLegacyGermanEvaluationChecklistAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/docs/evaluation-pilot/`
/platform/evidence-review/:
get:
summary: Legacy German evidence review docs alias
operationId: getLegacyGermanEvidenceReviewAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/docs/policy-evidence/`
/en/guides/intro/:
get:
summary: Legacy English intro docs alias
operationId: getLegacyEnglishIntroDocsAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/en/docs/getting-started/`
/en/guides/getting-started/:
get:
summary: Legacy English getting-started docs alias
operationId: getLegacyEnglishGettingStartedDocsAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/en/docs/getting-started/`
/en/guides/first-project-checklist/:
get:
summary: Legacy English evaluation checklist alias
operationId: getLegacyEnglishEvaluationChecklistAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/en/docs/evaluation-pilot/`
/en/platform/evidence-review/:
get:
summary: Legacy English evidence review docs alias
operationId: getLegacyEnglishEvidenceReviewAlias
tags:
- Public Website
- Docs
- Legacy Alias
responses:
"301":
description: Permanent redirect or equivalent alias to `/en/docs/policy-evidence/`
components:
schemas:
DocsTopicSlug:
type: string
enum:
- getting-started
- microsoft-365-provider
- permissions-data-access
- data-processing-trust
- policy-evidence
- drift-detection
- backups-versioning-recovery
- findings-exceptions-accepted-risk
- review-packs-decisions
- evaluation-pilot
- known-limitations
- faq
DocsTopicPage:
type: object
required:
- slug
- title
- intro
- sections
properties:
slug:
$ref: '#/components/schemas/DocsTopicSlug'
title:
type: string
intro:
type: string
whatThisPageCovers:
type: string
sections:
type: array
minItems: 3
maxItems: 6
items:
$ref: '#/components/schemas/DocsSection'
relatedLinks:
type: array
items:
$ref: '#/components/schemas/RelatedLink'
DocsSection:
type: object
required:
- heading
- content
properties:
heading:
type: string
content:
type: string
RelatedLink:
type: object
required:
- label
- href
properties:
label:
type: string
href:
type: string
pattern: ^/(|en/).+