Development Documentation
View as:

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:

FieldDescription
Feature slugShort kebab-case identifier, e.g. traders-q1. Used as workspace name suffix.
Profilelocal / model / bronze / full. See Feature Provisioning Profiles.
Seed strategybronze (copy from DEV Bronze) or uat (copy from UAT Bronze). Only relevant for full profile.
DevelopersOne or more UPNs (you@geris.nl) who get Contributor rights on the new workspaces.
Data refreshauto (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:

SectionActionNotes
HeaderShows slug, workspace IDs, workspace names, detected timestamp.Read-only.
DeploySelect 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.
TeardownCheck 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 modelsPer-item Refresh button triggers a Fabric dataset refresh via the Fabric REST API.Shows item name, type, and GUID.
ReportsRead-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 run scripts/fabric_sync.py directly.

/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.

CardActionRuns where
Cascade checkEnter 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 localSelect a feature env; runs fabric dev push-gold to push DuckDB output to the feature Warehouse.Tray app (local)
Refresh Bronze localSelect 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:

FieldDescription
Workspace IDFabric workspace GUID (from the detail page or health page).
Principal IDEntra objectId of the user, group, or SPN. UPN lookup is not yet available.
RoleAdmin / Member / Contributor / Viewer.

Submits to POST /api/rbac/grant. The action is logged to /operations/audit.