Cloud Portal — Page Reference
The cloud portal lives at https://docs.fabric-monorepo.geris.nl. Every page listed here is gated by the FP GER Develop Entra group. All writes run server-side under the platform-admin SPN — no local tooling is required for cloud actions.
/dashboard
Live grid of every active feature environment: slug, branch, profile, workspace names, detected timestamp. Auto-refreshes every 5 seconds. This is the default landing page after sign-in.
Primary action: click any slug to navigate to its detail page at /feature-envs/detail?slug=<slug>.
See Developer Dashboard for the full Day 0→4 journey.
/feature-envs
Paginated list of feature env workspace pairs (Semantic + Reports) discovered from Fabric. Each row shows the slug, workspace names, and a link to the detail page. New environments appear automatically once provisioned.
Primary action: click New feature env (or navigate to /feature-envs/new) to open the provision form.
/feature-envs/new
Dedicated provision form for creating a new Fabric feature environment. Separate route from the list page — bookmarkable, and the target of the New feature env button in the nav.
Fields:
| Field | Description |
|---|---|
| Feature slug | Short kebab-case identifier, e.g. traders-q1. Used as workspace name suffix. |
| Profile | local / model / bronze / full. See Feature Provisioning Profiles. |
| Seed strategy | bronze (copy from DEV Bronze) or uat (copy from UAT Bronze). Only relevant for full profile. |
| Developers | One or more UPNs (you@geris.nl) who get Contributor rights on the new workspaces. |
| Data refresh | auto (default) / force / none. Controls whether Bronze data is seeded during provision. |
What happens on submit: the portal calls POST /api/feature-envs which starts a background run. A run ID is returned immediately; progress appears in /operations/runs. The workspaces are ready when the run reaches success. Provisioning takes approximately 90 seconds for a full profile.
/feature-envs/detail?slug=<slug>
Per-environment management page. Routed via query string because output: export static builds cannot prerender one URL per dynamic slug.
Sections and actions:
| Section | Action | Notes |
|---|---|---|
| Header | Shows slug, workspace IDs, workspace names, detected timestamp. | Read-only. |
| Deploy | Select scope (Semantic only / Reports only / Both), click Deploy. | Runs fabric-cicd cloud-side. A run ID is returned; log tail streams in-page from the run until success or failed. |
| Teardown | Check optional flags, type the slug to confirm, click Teardown. | Destructive. Flags: dry_run (preview what would be deleted), keep_branch (skip feature branch deletion), check_blackout (abort if a blackout window is active). Dry-run result shows workspace names that would be removed. |
| Semantic models | Per-item Refresh button triggers a Fabric dataset refresh via the Fabric REST API. | Shows item name, type, and GUID. |
| Reports | Read-only list of report items in the Reports workspace. | Name + GUID displayed. |
| Connections (collapsed) | Bind SCC connections button. | Binds all semantic models in this env to their shared cloud connection. Run this after initial deploy or if Power BI shows "Data source missing credentials". |
| Add Bronze shortcut (collapsed) | Five-field form: shortcut name, path, target workspace ID, target item ID, target path. | Creates a OneLake shortcut inside feat-<slug>-Bronze/Lakehouse_Bronze. Useful when your feature needs data from a workspace not in the default shortcut set. |
Sync operations (flush / pull / PR check) are not available from the cloud portal — they require local git access. Use the tray app's
fabric-dev://scheme or runscripts/fabric_sync.pydirectly.
/cherry-picks
Two-column queue board showing merged PRs that have not yet reached release/uat (left column) or release/prod (right column).
Primary action: click Promote on any row to cherry-pick that merge commit onto the target release branch and open a PR in Azure DevOps. You must still vote + autocomplete the resulting PR in ADO.
Edge case: if a commit is not in the queue (predates the last 50 merged PRs, or you need a specific non-merge commit), expand Manual cherry-pick by SHA at the bottom of the page and enter the SHA directly.
/sandboxes
List of self-service sandbox workspaces in Fabric. Each sandbox is a single workspace (no Reports counterpart) for ad-hoc exploration or demo purposes.
Actions:
- New sandbox form: enter a name; the portal provisions the workspace under the platform-admin SPN. A run ID is returned; progress in /operations/runs.
- Grant Build access (per-sandbox): enter one or more UPNs to grant Fabric Viewer + semantic model Build permission.
To deploy a semantic model into a sandbox, run scripts/provision_sandbox.py locally after the workspace is created.
/tools
Developer utility cards. All cards that trigger local operations do so via fabric-dev:// deep links handled by the tray app.
| Card | Action | Runs where |
|---|---|---|
| Cascade check | Enter a column name; finds all dbt models, TMDL columns, DAX measures, and report visuals that reference it. | Tray app (local) via fabric-dev://cascade-check?column_name=<name> |
| Refresh Gold (cloud) | Select a feature env and optional dbt model selector; triggers a cloud-side dbt Gold build. | Cloud portal → background run |
| Sync Gold local | Select a feature env; runs fabric dev push-gold to push DuckDB output to the feature Warehouse. | Tray app (local) |
| Refresh Bronze local | Select a feature env and seed strategy; downloads Bronze Parquet snapshots for local DuckDB. | Tray app (local) |
/operations/health
Per-environment health snapshot: commit age, idle time, last deploy status, and workspace IDs. Cards auto-refresh every 30 seconds.
Status colours: green = healthy, yellow = idle ≥ 7 days, red = idle ≥ 14 days or last deploy failed.
No actions on this page — it is read-only.
/operations/runs
Paginated log of all long-running cloud operations: provision, teardown, deploy, sandbox creation. Paginated by month. Auto-refreshes every 10 seconds.
Primary action: click a run ID to open its detail at /operations/runs/detail?id=<run_id>.
Columns: run ID, action, target slug, initiating UPN, status, started timestamp, ended timestamp.
/operations/runs/detail?id=<run_id>
Full log viewer for a single run. Streams log_tail and error_message from the run record. Same ?id= query-string pattern as feature-env detail — no static prerender per run.
Status badge reflects the live status field: queued / running / success / failed.
/operations/agents
Live table of developer tray agents that have heartbeated within the last 90 seconds. Polled every 5 seconds.
Columns: developer UPN, reported activity (e.g. "running dbt on traders-q1"), last heartbeat timestamp.
No actions — read-only observability for the platform team and leads.
/operations/audit
Every privileged portal action is written here with the calling UPN, action type, target, and timestamp. Paginated by month. Filterable by month or UPN.
No actions — read-only compliance log.
/operations/rbac
Form for assigning a Fabric workspace role to a user, group, or service principal.
Fields:
| Field | Description |
|---|---|
| Workspace ID | Fabric workspace GUID (from the detail page or health page). |
| Principal ID | Entra objectId of the user, group, or SPN. UPN lookup is not yet available. |
| Role | Admin / Member / Contributor / Viewer. |
Submits to POST /api/rbac/grant. The action is logged to /operations/audit.