Skip to content

Add Marketplace app manifest (app/manifest.yaml) - #3

Open
deepbasu123 wants to merge 1 commit into
mainfrom
add-marketplace-manifest
Open

Add Marketplace app manifest (app/manifest.yaml)#3
deepbasu123 wants to merge 1 commit into
mainfrom
add-marketplace-manifest

Conversation

@deepbasu123

Copy link
Copy Markdown
Collaborator

What

Adds app/manifest.yaml — the Databricks Apps manifest required to publish Quest to Databricks Marketplace (per the "List internal content in Databricks Marketplace" SOP, step 3). It sits next to the existing app/app.yaml.

Why

The Marketplace checklist requires a valid manifest.yaml for publishing. The repo had app.yaml (runtime config: command/env) but no manifest (metadata + declared resource dependencies). This adds it without touching any runtime behaviour.

What it declares

Two resources the app binds to the installer's own workspace at install time:

Resource Spec Permission Why
sql-warehouse sql_warehouse_spec CAN_USE Reads Quest's scored tables from Unity Catalog; backs the warehouse data-backend and the runtime Admin → Data Backend toggle. Always required.
database postgres_spec CAN_CONNECT_AND_CREATE Lakebase/Postgres read model for the default low-latency backend.

No user_api_scopes: Quest runs as its own service principal (app auth), does not call user-scoped APIs, and never handles a user token — consistent with the Marketplace "MUST NOT store user PAT tokens" requirement.

One field to confirm

The Lakebase resource uses postgres_spec because that is what the current Apps manifest SDK schema (AppManifestAppResourceSpec) models and it is guaranteed to validate (also used by the appkit-lakebase / appkit-all-in-one official templates). Some official templates instead use database_spec for a provisioned instance — which is what Quest actually creates (fixed CU_1). If the Marketplace publisher tooling prefers database_spec, swap the key; the permission value is unchanged. This is called out inline in the file.

Verification

  • Field names and permission values checked against databricks/app-templates and the databricks-sdk-py AppManifest* classes.
  • YAML validated (parses to version: 1, resources sql-warehouse + database).
  • No runtime files changed; this is metadata only.

This pull request and its description were written by Isaac.

Adds the Databricks Apps manifest required to publish Quest to Databricks
Marketplace (SOP step 3). Declares the two resources the app binds at install
time — a SQL warehouse (CAN_USE) and a Lakebase/Postgres database
(CAN_CONNECT_AND_CREATE) — with no user_api_scopes, since Quest runs as its
own service principal and never handles a user token.

Field names and permission values verified against databricks/app-templates
and the databricks-sdk-py AppManifest* schema. See the inline note on the
database resource: the SDK schema models it as postgres_spec (used here), while
some official templates use database_spec for provisioned instances — one field
to confirm with the Marketplace team.

Co-authored-by: Isaac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant