Publishing
Prepare a Data App for publishing and embedding through Semaphor.
Publishing makes a Data App available through Semaphor so your team or customers can open it from the Semaphor-hosted experience.
This page focuses on what a Data App should satisfy before publishing. The exact publishing command or UI can depend on your workspace setup.
Before Publishing
Run through this checklist:
- Every visual has loading, empty, and error states.
- Every query uses governed semantic builders unless SQL is explicitly required.
- Tables use bounded limits or server-side pagination.
- Inputs fetch option lists server-side.
- Relationship-aware filters and projections return expected diagnostics.
- The app does not include project secrets or dashboard secrets in client code.
- The app builds without TypeScript errors.
- The app has been tested with the same token scope that users will have.
Runtime Token
Published Data Apps can receive a runtime token from Semaphor. Local apps can pass a token directly to SemaphorDataAppProvider.
<SemaphorDataAppProvider token={token}>
<App />
</SemaphorDataAppProvider>Inside Semaphor's hosted runtime, the provider can read the injected runtime token when available.
Embedding
Data Apps should follow the same customer expectation as dashboards: a published app should be embeddable through Semaphor's governed hosting and token model.
Keep these principles:
- Users should not need a different security model for Data Apps than dashboards.
- The hosted app should use governed Semaphor execution for all data queries.
- Embedded users should not see development-only observability unless explicitly enabled for authoring.
Development Observability
During development, it is useful to know which query drives each visual. A good Data App should make this inspectable without showing internal details to embedded end users.
Recommended development-only details:
- view id and title;
- query kind;
- source and fields;
- input bindings;
- pagination and row limits;
- relationship diagnostics;
- generated SQL when Semaphor returns it and the user is allowed to inspect it.
Do not expose secrets or raw tokens in development panels.