Portal
The portal site — draft, publishing and versions of its pages, and the file library it shows — and its configuration: branding, domain, custom domains and sign-in providers.
Families on this page
| Family | Tools | read | write | destructive |
|---|---|---|---|---|
portal-builder — Portal builder | 9 | 2 | 3 | 4 |
assets — Assets | 7 | 3 | 3 | 1 |
portal-settings — Portal settings | 7 | 2 | 3 | 2 |
portal-custom-domains — Custom domains | 5 | 2 | 1 | 2 |
portal-oauth-providers — Sign-in providers | 5 | 1 | 2 | 2 |
portal-builder
| Tool | Kind | Permission | Endpoint | What it does |
|---|---|---|---|---|
dashboards_portal_builder_get | read | portal-config.view | GET /v1/portal_builder | Read the portal builder of the workspace: portal identity, the draft (pages with their badge against the live version, revision, dirty), the live version number, the published versions, the theme and the SEO defaults. |
dashboards_portal_builder_draft_save | write | portal-config.update | PUT /v1/portal_builder/draft | Save the whole portal draft (pages in menu order, editor state, optional theme and SEO defaults), guarded by revision. |
dashboards_portal_builder_publish | destructive | portal-config.update | POST /v1/portal_builder/publish | Save the draft as sent and publish it as the next portal version — visitors see it immediately. |
dashboards_portal_builder_versions_get | read | portal-config.view | GET /v1/portal_builder/versions/:number | Fetch one published portal version by number, with the pages it froze. |
dashboards_portal_builder_versions_rollback | destructive | portal-config.update | POST /v1/portal_builder/versions/:number/rollback | Put a published version back on the air as the next version number — visitors see it immediately. |
dashboards_portal_builder_seal_secret | write | portal-config.update | POST /v1/portal_builder/secrets | Encrypt a value a block keeps in the page JSON (e.g. |
dashboards_portal_builder_og_image_upload | write | portal-config.update | POST /v1/portal_builder/og_image | Upload an og:image (PNG, JPEG or WebP, base64, at most ~1.5 MB) for a page or the portal defaults. |
dashboards_portal_builder_form_submissions_create | destructive | portal-config.update | POST /v1/portal_builder/form_submissions | Test a form block from your draft: really sends the configured e-mail (or fires the chosen webhook), marked as a preview. |
dashboards_portal_builder_action_runs_create | destructive | portal-config.update | POST /v1/portal_builder/action_runs | Test an action-button block from your draft: really sends its webhook request (POST/PUT/PATCH to an https URL), marked as a preview. |
assets
| Tool | Kind | Permission | Endpoint | What it does |
|---|---|---|---|---|
dashboards_assets_list | read | portal-config.view | GET /v1/assets | List the files of the workspace library (images and documents), newest first by default. |
dashboards_assets_get | read | portal-config.view | GET /v1/assets/:id | Fetch one file of the library: name, link, visibility, type, size and alternative text. |
dashboards_assets_download | read | portal-config.view | GET /v1/assets/:id/download | Get the bytes of a file, whatever its visibility. |
dashboards_assets_presign | write | portal-config.update | POST /v1/assets/presign | Get a short-lived signed URL to PUT a file straight to storage (for files over ~1.5 MB). |
dashboards_assets_create | write | portal-config.update | POST /v1/assets | Add a file to the library: either the key of a file sent through dashboards_assets_presign, or the file itself in content_base64 (small files). |
dashboards_assets_update | write | portal-config.update | PATCH /v1/assets/:id | Rename a file, change its alternative text or its visibility (making it public opens its storage URL to anyone; private or restricted closes it). |
dashboards_assets_delete | destructive | portal-config.update | DELETE /v1/assets/:id | Remove a file from the library. |
portal-settings
| Tool | Kind | Permission | Endpoint | What it does |
|---|---|---|---|---|
dashboards_portal_settings_get | read | portal-config.view | GET /v1/portal_settings | Read the workspace portal's configuration: branding (company name, title, logos, theme colors), languages, address (signup_slug, portal_slug/portal_domain), login and SSO options, notification settings and sender identity, and site settings (security headers, SEO, tracking/chat integrations, custom code). |
dashboards_portal_settings_update | write | portal-config.update | PATCH /v1/portal_settings | Update the workspace portal's configuration. |
dashboards_portal_settings_logo_upload | write | portal-config.update | POST /v1/portal_settings/logo | Upload a portal image — the logo, the dark-background logo or the favicon — sent inline as base64. |
dashboards_portal_settings_logo_delete | destructive | portal-config.update | DELETE /v1/portal_settings/logo | Remove a portal image (logo, dark-background logo or favicon); the portal falls back to its default. |
dashboards_portal_settings_domain_update | write | portal-config.update | PATCH /v1/portal_settings/domain | Set the portal's platform address https://{slug}.{domain} (domain must be one of available_domains from dashboards_portal_settings_get), or clear it with both null. |
dashboards_portal_settings_check_slug | read | portal-config.view | GET /v1/portal_settings/domain/check_slug | Check whether a portal address slug.domain is free for this workspace. |
dashboards_portal_settings_verify_sender_identity | destructive | portal-config.update | POST /v1/portal_settings/sender_identity | Request or re-check the AWS SES verification of the notification sender e-mail. |
portal-custom-domains
| Tool | Kind | Permission | Endpoint | What it does |
|---|---|---|---|---|
dashboards_portal_custom_domains_list | read | portal-config.view | GET /v1/portal_custom_domains | List the custom domains of the workspace's portal, each with its status, certificate dates and the dns_records the customer must publish. |
dashboards_portal_custom_domains_create | write | portal-config.update | POST /v1/portal_custom_domains | Register a custom domain (e.g. |
dashboards_portal_custom_domains_delete | destructive | portal-config.update | DELETE /v1/portal_custom_domains/:id | Remove a custom domain from the portal, tearing down its CloudFront tenant and certificate when provisioned. |
dashboards_portal_custom_domains_verify | destructive | portal-config.update | POST /v1/portal_custom_domains/:id/verify | Check the DNS of a custom domain and provision it on AWS (certificate + CloudFront tenant) while pending, or refresh its status once provisioned. |
dashboards_portal_custom_domains_dns_status | read | portal-config.view | GET /v1/portal_custom_domains/:id/dns_status | Read-only DNS probe of a custom domain: whether the ownership TXT (_dashmagico-verify.{hostname}, ownership_ok) and the routing and certificate-validation CNAMEs (routing_ok, validation_ok) are in place, and what is wrong when not. |
portal-oauth-providers
| Tool | Kind | Permission | Endpoint | What it does |
|---|---|---|---|---|
dashboards_portal_oauth_providers_list | read | portal-config.view | GET /v1/portal_oauth_providers | List the portal's OpenID Connect login providers (name, issuer, client id, scopes, enabled). |
dashboards_portal_oauth_providers_create | write | portal-config.update | POST /v1/portal_oauth_providers | Add an OpenID Connect login provider to the portal. |
dashboards_portal_oauth_providers_update | write | portal-config.update | PATCH /v1/portal_oauth_providers/:id | Update an OpenID Connect login provider. |
dashboards_portal_oauth_providers_delete | destructive | portal-config.update | DELETE /v1/portal_oauth_providers/:id | Remove an OpenID Connect login provider from the portal; its login button disappears and its users can no longer sign in through it. |
dashboards_portal_oauth_providers_test | destructive | portal-config.update | POST /v1/portal_oauth_providers/test | Pre-flight check of an OIDC issuer URL: fetches its discovery document from the third-party issuer and returns its endpoints (ok: true) or why it failed (ok: false). |
The fields of each resource are in the API reference and in dashboards_schemas_get.
A tool you cannot run is not listed by tools/list at all. If one from this page is missing, see Authentication.