Apply platform-domain decision (2026-05-18). No services touched; docs/config only. Refs: M1.1
This commit was merged in pull request #5.
This commit is contained in:
+19
-19
@@ -279,7 +279,7 @@ Products that ship custom styling must respect the `theme` attribute and the pre
|
||||
|
||||
```
|
||||
Product publishes a bundle at:
|
||||
https://cdn.yourplatform.com/products/{name}/{version}/element.js
|
||||
https://cdn.breakpilot.com/products/{name}/{version}/element.js
|
||||
|
||||
Portal loads it lazily via dynamic import when the user navigates to /[tenant]/products/{name}.
|
||||
Portal caches the bundle URL per product version (declared in tenant_products.config).
|
||||
@@ -343,12 +343,12 @@ The product ships NO frontend code. The portal renders a generic management UI f
|
||||
│ CODE SAMPLES │
|
||||
│ ──────────────────────────────────────────────────── │
|
||||
│ [curl] [JS] [Python] │
|
||||
│ curl -X POST https://notetaker-api.yourplatform.com/v1 │
|
||||
│ curl -X POST https://notetaker-api.breakpilot.com/v1 │
|
||||
│ -H "Authorization: ApiKey k_xxx" │
|
||||
│ -H "X-Tenant: acme" │
|
||||
│ -d '{...}' │
|
||||
│ │
|
||||
│ DOCS ► developers.yourplatform.com/products/notetaker │
|
||||
│ DOCS ► developers.breakpilot.com/products/notetaker │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
@@ -394,7 +394,7 @@ An MCP (Model Context Protocol) server exposes the product's capabilities as too
|
||||
|
||||
```
|
||||
1. ONE MCP server per product
|
||||
Endpoint: https://mcp.{product}.yourplatform.com (or unified mcp.yourplatform.com/{product})
|
||||
Endpoint: https://mcp.{product}.breakpilot.com (or unified mcp.breakpilot.com/{product})
|
||||
|
||||
2. Authentication via SCOPED API KEY
|
||||
Customer IT Admin generates API key in /[tenant]/settings/api-keys.
|
||||
@@ -438,7 +438,7 @@ Enterprise customers automatically get MCP enabled. Starter/Pro customers see "A
|
||||
|
||||
## 7. Documentation Contract
|
||||
|
||||
A product ships five required documents. They are published at `developers.yourplatform.com/products/{name}/`.
|
||||
A product ships five required documents. They are published at `developers.breakpilot.com/products/{name}/`.
|
||||
|
||||
```
|
||||
1. README What does it do? Value prop in 200 words.
|
||||
@@ -763,16 +763,16 @@ product:
|
||||
vendor: breakpilot # we; future third-parties will use their slug
|
||||
contract_version: "1.0"
|
||||
product_version: "1.4.2"
|
||||
repo: git.yourplatform.com/sharang/certifai
|
||||
repo: git.breakpilot.com/sharang/certifai
|
||||
|
||||
catalog:
|
||||
# Renders in /[tenant]/catalog and /backstage/products
|
||||
category: "AI Infrastructure" # AI Infrastructure | Compliance | Productivity | Security | Data
|
||||
tagline: "GDPR-compliant LLMs without leaving the EU"
|
||||
hero_image: https://cdn.yourplatform.com/products/certifai/hero.png
|
||||
hero_image: https://cdn.breakpilot.com/products/certifai/hero.png
|
||||
screenshots:
|
||||
- https://cdn.yourplatform.com/products/certifai/dashboard.png
|
||||
- https://cdn.yourplatform.com/products/certifai/agents.png
|
||||
- https://cdn.breakpilot.com/products/certifai/dashboard.png
|
||||
- https://cdn.breakpilot.com/products/certifai/agents.png
|
||||
pricing_summary: "From €X/seat/month — included on Professional and Enterprise plans"
|
||||
available_on_plans: [trial, professional, enterprise] # 'trial' opt-in for self-serve
|
||||
trial_days: 14
|
||||
@@ -784,7 +784,7 @@ catalog:
|
||||
|
||||
demo:
|
||||
supported: true # MUST be true unless explicitly waived
|
||||
seed_data_url: https://cdn.yourplatform.com/products/certifai/demo/seed-v3.tar.gz
|
||||
seed_data_url: https://cdn.breakpilot.com/products/certifai/demo/seed-v3.tar.gz
|
||||
reset_endpoint: /v1/tenants/demo/reset # called nightly by portal cron
|
||||
persona_hints: # for sales rep talk track
|
||||
- "GDPR officer at a 200-person SaaS"
|
||||
@@ -807,7 +807,7 @@ identity:
|
||||
frontend:
|
||||
type: interactive # interactive | widget | headless
|
||||
tag: certifai-dashboard
|
||||
bundle_url: https://cdn.yourplatform.com/products/certifai/{version}/element.js
|
||||
bundle_url: https://cdn.breakpilot.com/products/certifai/{version}/element.js
|
||||
bundle_size_kb: 380
|
||||
routes:
|
||||
- path: /
|
||||
@@ -828,7 +828,7 @@ backend:
|
||||
mcp:
|
||||
enabled: true
|
||||
required_plan: enterprise
|
||||
endpoint: https://mcp.yourplatform.com/certifai
|
||||
endpoint: https://mcp.breakpilot.com/certifai
|
||||
tools:
|
||||
- name: list_ai_agents
|
||||
description: "Returns AI agents configured for the tenant"
|
||||
@@ -864,7 +864,7 @@ backup:
|
||||
retention_days: 30
|
||||
|
||||
infra:
|
||||
image: registry.yourplatform.com/certifai-dashboard
|
||||
image: registry.breakpilot.com/certifai-dashboard
|
||||
vm: vm-certifai
|
||||
replicas: 1
|
||||
resource_limits:
|
||||
@@ -909,7 +909,7 @@ The example above shows an `interactive` product. Headless and widget products d
|
||||
frontend:
|
||||
type: widget
|
||||
tag: status-monitor-widget
|
||||
bundle_url: https://cdn.yourplatform.com/products/status/{version}/widget.js
|
||||
bundle_url: https://cdn.breakpilot.com/products/status/{version}/widget.js
|
||||
bundle_size_kb: 38
|
||||
dimensions:
|
||||
width: 400
|
||||
@@ -954,7 +954,7 @@ frontend:
|
||||
- language: curl
|
||||
title: "Create a session"
|
||||
snippet: |
|
||||
curl -X POST https://notetaker-api.yourplatform.com/v1/sessions \
|
||||
curl -X POST https://notetaker-api.breakpilot.com/v1/sessions \
|
||||
-H "Authorization: ApiKey k_xxx" \
|
||||
-H "X-Tenant: acme" \
|
||||
-d '{"audio_url": "...", "language": "en"}'
|
||||
@@ -963,7 +963,7 @@ frontend:
|
||||
snippet: |
|
||||
import requests
|
||||
requests.post(
|
||||
"https://notetaker-api.yourplatform.com/v1/sessions",
|
||||
"https://notetaker-api.breakpilot.com/v1/sessions",
|
||||
headers={"Authorization": "ApiKey k_xxx", "X-Tenant": "acme"},
|
||||
json={"audio_url": "...", "language": "en"},
|
||||
)
|
||||
@@ -986,7 +986,7 @@ Products can call each other directly. Auth is via short-lived service tokens is
|
||||
1. Compliance product needs to list AI agents for an AI Act assessment.
|
||||
|
||||
2. Compliance backend requests a service token:
|
||||
POST https://auth.yourplatform.com/realms/breakpilot-prod/protocol/openid-connect/token
|
||||
POST https://auth.breakpilot.com/realms/breakpilot-prod/protocol/openid-connect/token
|
||||
Body: grant_type=client_credentials
|
||||
client_id=compliance-svc
|
||||
client_secret=<from Infisical>
|
||||
@@ -1135,7 +1135,7 @@ A product is "ready to ship to a customer" when all boxes are ticked.
|
||||
☐ All tools tenant-scoped and audited
|
||||
|
||||
☐ Documentation
|
||||
☐ README published at developers.yourplatform.com/products/{name}
|
||||
☐ README published at developers.breakpilot.com/products/{name}
|
||||
☐ API reference auto-generated and live
|
||||
☐ Integration guide for customer IT
|
||||
☐ Operational runbook for us
|
||||
@@ -1220,7 +1220,7 @@ Effort estimate: 3-5 weeks of focused work
|
||||
```
|
||||
- Design tokens package (@breakpilot/design-tokens) — needs to exist before web components ship
|
||||
- CDN for product bundles — pick provider (Hetzner Object Storage + Cloudflare?)
|
||||
- MCP gateway — single mcp.yourplatform.com vs. per-product subdomains
|
||||
- MCP gateway — single mcp.breakpilot.com vs. per-product subdomains
|
||||
- Third-party manifest signing — defer until first real third-party conversation
|
||||
- Inter-product event bus — explicitly deferred; service tokens cover the use cases for now
|
||||
- Contract testing — automate manifest + openapi validation in Gitea Actions
|
||||
|
||||
Reference in New Issue
Block a user