Skip to main content

Publication Tracks implemented

The first portal is internal and the track model is already active in the page metadata and portal checker. The content model carries visibility metadata so the same architecture can later publish sanitized tracks.

Tracks

TrackAudienceDefault accessExamples
PublicProspective users, external developers, public API consumersunauthenticatedProduct overview, selected getting-started docs, public API overview, App SDK quickstarts
CustomerCustomers, tenant admins, customer reviewerscustomer-authenticated or review packUser docs, tenant/project docs, billing, safe security model, customer-safe runbooks
PartnerPartner app developers and integration teamspartner-authenticatedApp SDK, manifest contracts, app promotion, API/SDK references, integration guides
InternalGPUaaS team, operators, product, security, architecture, infra, app developersauthenticated internalRelease gates, internal runbooks, environment profiles, sensitive evidence, agent coordination
OpsOperators, SRE, infra, release engineersauthenticated operatordeploy runbooks, diagnostics, tool access, smoke evidence
GovernanceArchitecture, security, product governance, reviewersauthenticated governance/reviewreview gates, publication policy, evidence quality, change-control rules

The metadata field is still named visibility, but the allowed values now model publication tracks: public, customer, partner, internal, ops, and governance.

Review Gates

TrackRequired reviewAPI playground postureEvidence posture
PublicProduct and security, plus legal/comms when neededmock by defaultno internal evidence
CustomerProduct, security, architectureapproved customer sandbox onlycurated evidence only
PartnerProduct, developer experience, securityapproved partner sandbox onlySDK and integration evidence only
InternalContent ownerdev/UAT targets allowedcomplete internal evidence allowed
OpsOps plus security when secrets, access, or network posture is involveddev/UAT targets allowedfull operational evidence allowed with redaction
GovernanceGovernance plus owning domainmock or internal only unless a publication decision approves moredecision evidence, review records, and policy rationale

The track model follows the platform-foundation Phase 5 contract: portal pages publish from portal-native metadata, not directly from raw doc/** files. External tracks require source-doc review, redaction review, and freshness metadata before publication.

Current Publication Decision

The selected first iteration is an internal static portal published through Cloudflare Pages. This is the default operating model until a later task introduces filtered external tracks or an authenticated internal-only variant.

Why this shape:

  • it keeps the portal build static and cheap to maintain;
  • it avoids binding the first release to product auth or runtime coupling;
  • it supports internal product, architecture, security, IAM, infra, and ops audiences immediately;
  • it preserves the later option to add filtered public/customer/partner builds from the same source-doc model.

Internal publication does not mean dumping raw internal files. The portal still uses page-level audience, review, and visibility metadata so later external filtering does not require a redesign.

Current short-term access rule

The first internal portal should sit behind Cloudflare Access using one-time email passcodes with this coarse allowlist:

  • @core42.ai
  • @g42.ai
  • subahsram@gmail.com

This is an operational convenience model, not a long-term role boundary. The portal content still needs publication-track discipline because domain-level allow access is broader than the intended initial sharing set.

First Publication Recommendation

Publish the internal static artifact first. Use that to validate navigation, source links, ownership, and audience fit. After that, add filtering or separate builds for public/customer/partner tracks.

Use the Publication Filtering model for the concrete track rules, redaction posture, API playground behavior, and future checker direction. Use the deployment runbook as the operating path for the current internal static publication.

Deterministic Gate

make docs-portal-check runs packages/docs/scripts/check-source-docs.mjs. That check now enforces the first publication-track guard:

GuardTracks
Allowed metadata values include all six tracksall
Non-internal pages include content review metadatapublic, customer, partner, ops, governance
Customer pages route to product, security, or ops reviewcustomer
Partner pages route to app-developer or architecture reviewpartner
Public/customer pages reject unresolved readiness statuspublic, customer
Public/customer pages reject internal-only source pathspublic, customer
Public/customer/partner pages reject private URLs, local file paths, raw key material, and token/secret textpublic, customer, partner
Non-internal visual pages require architecture, product, security, or frontend reviewpublic, customer, partner, ops, governance

This is intentionally conservative. The checker does not prove that a page is publication-ready; it prevents the common unsafe cases from entering the portal without review.

External Readiness

Before publishing any external track, complete the External Publication Readiness checklist and review the draft External Viewer Paths.

Security Review Rules

  • Public and partner pages must avoid internal environment names, sensitive ops evidence, break-glass details, and private infrastructure paths.
  • Customer pages may include security posture and operational commitments, but only after source docs are reviewed for shareability.
  • Internal pages remain the complete operating view.