# Blueprintr Docs: full content > Every public documentation page from Blueprintr Docs as raw markdown. --- # Continuum Integrations: Overview URL: https://docs.blueprintr.io/foliums/continuum-integrations > What each Continuum product connects to, which licence it needs, and where its credentials sit. Continuum connects a diagram or a stratum to the systems it describes, so the drawing can be regenerated and the detail on it comes from the source. Continuum Cloud, Continuum Link and Continuum Local are licensed separately and do different things. | | Continuum Cloud | Continuum Link | Continuum Local | | --- | --- | --- | --- | | Connects to | AWS and Azure | 29 monitoring, ITSM, on-call, uptime and source control platforms | 10 on-premise monitoring, IP address management and backup systems | | Puts data on strata | Yes | Yes | Yes | | Draws on a canvas | Yes | No | No | | Licence | Teams | Enterprise | Enterprise | | Permission | `cloud_connections.manage` | `continuum_integrations.manage` | `continuum_integrations.manage` | | Where credentials sit | A read-only role in your own account | Encrypted by Blueprintr | On your own agent. Blueprintr never stores them | Continuum Local is the on-premise half of Continuum Link rather than a product of its own. It shares Link's gate and its connectors. ## Choosing one Generate a diagram from an AWS account or Azure subscription with [Continuum Cloud](/foliums/continuum-integrations/continuum-cloud). Put live operational data beside something already drawn with [Continuum Link](/foliums/continuum-integrations/continuum-link). Reach an on-premise system that cannot be called from the internet, or keep its credentials inside your network, with [Continuum Local](/foliums/continuum-integrations/continuum-local). ## What Continuum does not do > [!IMPORTANT] > Continuum Link never writes to a canvas. Only Continuum Cloud draws. Scheduled polling is unavailable on every plan. Continuum Cloud syncs when you ask it to, and a Continuum Link tab refreshes when an editor presses refresh. Nothing updates on a timer. Blueprintr evaluates no conditions, holds no thresholds and pages nobody. It reads state from the systems that do. ## Before you publish Both products write into strata, and a stratum follows the blueprint's own visibility. On a public blueprint, that means anonymous readers. Continuum Cloud strata carry account ids, resource ids, regions, addresses and a raw payload. Continuum Link panels are reader-visible for every connector except Datadog, LogicMonitor, Auvik, Rootly, ServiceNow, GitHub and NetBox, which default new connections to blueprint editors, and Infoblox and Veeam Backup & Replication, whose panels are always for editors only. Review what a diagram carries before publishing it publicly. Changing an audience later applies to subsequent refreshes and cannot recall copies already shared. --- # Continuum Integrations: Continuum Cloud URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-cloud > Reading an AWS account or Azure subscription read-only, and drawing what is there onto a Vellum canvas. Continuum Cloud reads an AWS account or Azure subscription and draws what it finds onto a Vellum canvas, with each resource's detail attached as a stratum. It needs a Teams licence and `cloud_connections.manage` on the organisation or team that owns the connection. Free and Premium have no Continuum surface, and creating a connection below Teams refuses with "Continuum is a Teams-plan feature." ## What it produces One Continuum tab in a blueprint, backed by a private Vellum document named after the tab. | Artefact | What it holds | | --- | --- | | Shapes on a canvas | Resources the layout draws, nested inside the boundaries in the source: accounts, regions, VPCs and subnets, resource groups | | A stratum per resource | Identity, configuration, per-type tables, tags, related strata, and the raw payload in a collapsed `Raw data` disclosure | | A poll run per scope, per sync | What was found, what changed, and every read that failed | > [!IMPORTANT] > A stratum is a blueprint file, so it follows the blueprint's own visibility. On a public blueprint, anonymous readers see every discovered resource's account id, resource id, region, addresses and the `Raw data` payload. Review what a Continuum diagram carries before publishing it publicly. Resources that describe relationships rather than occupy space, such as route tables, security groups, network ACLs, IAM and KMS, get a stratum with no shape. They are filed under a `(Context)` folder in the Files sidebar and cross-linked from the resources they affect. A resource collapsed into a group shape, such as Auto Scaling members or a Lambda name family, also gets a stratum with no shape of its own. Those sit alongside the drawn resources rather than under `(Context)`. ## What is discovered Continuum discovers 77 AWS resource types and 75 Azure resource types. Of those, 53 AWS types and 52 Azure types are drawn as shapes by default. The rest are read for their relationships, for the containers they define, or for stratum context. > [!NOTE] > A scope narrows by place and by tag, never by service. There is no resource-type picker. ## Permissions Every action on the settings page checks `cloud_connections.manage` on the owning organisation or team. Built-in owners and admins hold it; anyone else needs it granted through a custom role. `integration.manage` is a different permission, for embedding Blueprintr content in SharePoint and Confluence. Holding it opens the settings page but grants nothing in Continuum. ## Limits | | Team | Enterprise | | --- | ---: | ---: | | Cloud connections per owner | 3 | Unlimited | | Scopes per diagram | 3 | Unlimited | `Team settings → Plan & limits` also shows **Resources per integration** as 200 on Teams. Nothing enforces that figure today, and a sync is not truncated at 200 resources. ## Syncing is manual Open the tab's settings cog and choose `Sync now` to re-discover every scope, or `Re-sync` one scope from `Settings…`. > [!IMPORTANT] > Scheduled syncing does not work on any plan. The `Auto-sync` picker offers Off, Every 1h, 4h, 12h and 24h, but choosing any cadence returns "Scheduled polling is not available yet - Continuum runs one-time scans." That is not a plan gate and no upgrade lifts it. ## Views on the same canvas The canvas carries a `View` switcher. Base topology is the default; the others recolour the same shapes to answer one question each: Routing, Security groups, Cost (est.), IP addresses, Public exposure, Availability zone and Tag coverage. Views authored on the diagram appear in the same list. ## Setting one up [Connecting an AWS account](/foliums/continuum-integrations/continuum-cloud/connecting-an-aws-account) covers the role, the verify step and the first scan. [Connecting Azure](/foliums/continuum-integrations/continuum-cloud/connecting-azure) covers the app registration and the Reader grant. [Scopes and syncing](/foliums/continuum-integrations/continuum-cloud/scopes-and-syncing) covers what a diagram covers and how to keep it current. [Keeping diagrams true](/foliums/continuum-integrations/continuum-cloud/keeping-diagrams-true) covers what a sync preserves and what the shape outlines mean. --- # Continuum Integrations: Connecting an AWS account URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-cloud/connecting-an-aws-account > Creating the read-only role, verifying the connection, and scoping the first sync. Connecting an AWS account takes four steps: create the connection, create a read-only role in AWS, verify it, then scope a diagram. You need a Teams licence and `cloud_connections.manage` on the owning organisation or team. Below Teams the action refuses with "Continuum is a Teams-plan feature." > [!IMPORTANT] > Set the connection scope correctly at the start. `Single account` and `AWS Organization` stay changeable only while the connection is a draft, by going Back in the wizard. Once a role has been recorded the choice is fixed: "This connection already has a role, so its scope can't be changed. Create a new connection instead." > [!STEPS] > > === Create the connection > > Open `Settings → Continuum` on the organisation or team, select the AWS card, then choose `New connection`. Enter the 12-digit `AWS account number`, choose `Single account` or `AWS Organization`, pick the region to discover, and give it a display name. > > Single account creates one read-only role in one account. AWS Organization creates a management role that enumerates the organisation plus a StackSet member role in every account, including accounts created later. > > === Create the role in AWS > > The connection page shows the stack name, the role name and the external ID. Choose `Launch with CloudFormation` to open the AWS console with those values filled in. To deploy it yourself instead, open `Or do it manually - AWS console or CLI` for the same template and parameters. > > An AWS Organization connection uses the org StackSet template, launched from the management or delegated-admin account. It needs trusted access between AWS Organizations and CloudFormation StackSets, enabled once per organisation. > > === Verify > > Blueprintr watches the account and picks the role up on its own once the stack finishes. To finish immediately, paste the role ARN into `Or paste the role ARN` and choose `Verify`. The header changes to `Verified` and the page reports that the role assumed and responded. > > === Scope a diagram > > In the blueprint, open the `+` menu in the tab bar and choose `Continuum`. Select the connection, name the tab, confirm the account and regions, then choose `Create`. Narrow it first with `Refine VPCs / subnets` or a tag filter. Regions are fixed when you create the connection: one region in single-account mode, a set of regions in AWS Organization mode. There is no region control on the connection afterwards, so covering a new region means a new connection. ## What the role can do The template grants list and describe actions. Nothing in it changes infrastructure, and Continuum never writes to your cloud account. The external ID stops another Blueprintr tenant assuming your role, so do not omit it. On the current template it is filled in for you. Reading Terraform state is not included. Adding a state backend to this connection also needs `s3:GetObject` on the state object added to the role policy. ## If a sync will not start An `AWS Organization` connection needs the org StackSet role. Pointing one at a single-account role fails to load the account list, because the single-account template grants no `organizations:` permissions. Create a `Single account` connection instead, or deploy the StackSet. A finished sync reports what it could not read, under `Adapter errors`. Read that list before concluding a resource was decommissioned. Reaching the connection cap refuses with "Connection cap reached (3 per org)", or "(3 per team)". Blueprintr first reclaims your own drafts that have sat untouched for a day with no credential and nothing referencing them; drafts from the last 24 hours, and anyone else's, are left alone. ## Next [Scopes and syncing](/foliums/continuum-integrations/continuum-cloud/scopes-and-syncing) covers what a diagram covers and how to keep it current. --- # Continuum Integrations: Connecting Azure URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-cloud/connecting-azure > Registering an Entra application, granting it Reader, and verifying the connection. An Azure connection covers a set of subscriptions through one Entra application granted read-only access. You need a Teams licence and `cloud_connections.manage` on the owning organisation or team. > [!STEPS] > > === Register an application > > In Entra, register an application and create a client secret on it. Azure shows the secret value once. > > === Grant Reader > > Assign the built-in **Reader** role to that application at subscription scope, on every subscription you want visible. Where policy forbids built-in Reader, the wizard offers a narrower custom role definition to create instead. > > === Enter the three values > > Open `Settings → Continuum`, choose `New connection`, then Azure. Enter the **Directory (tenant) ID**, the **Application (client) ID** and the **Client secret value**. The secret value, not the secret id. > > === Verify > > Blueprintr authenticates, lists the subscriptions the application can see, and reads one resource group. The **Federation** tile beside **Client secret** is marked roadmap and cannot be selected yet, so the client-secret path is the only one available. ## Secret lifetime You create the secret in Azure, so Azure decides how long it lives. The copy-and-run script the wizard offers creates it with a two-year life. The portal click-path leaves Azure's own default, so check it before relying on the connection. Blueprintr encrypts the secret at rest and never returns it to the browser. Replace it later from the connection's detail page rather than by rebuilding the connection. ## If verification fails A connection whose application has no Reader grant fails outright: "The connection authenticated but no subscriptions are visible to it. Assign the Reader role at subscription scope." Grant Reader, then verify again. Discovery only runs on a connection that has verified, so verify after any credential change. ## Terraform state A Terraform backend can be set on an Azure connection's detail page, but drift reconciliation works on AWS connections only. The form is not provider-gated, so an Azure connection accepts a backend and returns nothing from it. ## Next [Scopes and syncing](/foliums/continuum-integrations/continuum-cloud/scopes-and-syncing) covers choosing subscriptions and locations, and running the first sync. --- # Continuum Integrations: Scopes and syncing URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-cloud/scopes-and-syncing > Choosing what a Continuum diagram covers, and running the sync that builds it. A **scope** is what one Continuum diagram covers. On AWS it is one account paired with one region. On Azure it is one subscription paired with one location. A diagram can carry several, but they must all come from the same provider. Adding an Azure scope to an AWS tab is refused: "This Continuum tab was created from a different cloud provider. Add the scope to its own Continuum tab instead." ## Choosing scopes Pick accounts or subscriptions, then regions. Every combination becomes its own scope, so three accounts and two regions is six scopes. The picker shows the running total. Two optional narrowings apply on top: | Control | Provider | Default | | --- | --- | --- | | `Refine VPCs / subnets` | AWS | Every VPC in the scope | | `Refine resource groups` | Azure | The whole subscription | | `Tag filter` | Both | No filter | A resource is imported when every tag listed matches. The filter applies to all selected scopes. > [!IMPORTANT] > The tag filter fails open. A resource whose payload carries no tag data is imported anyway, so untagged resources, and resources whose list API returns no tags at all such as route tables and log groups, still appear. EC2 instances are the exception, because AWS filters them server-side, so an untagged instance is dropped. Do not use the tag filter to keep anything out of a shared diagram. > [!NOTE] > There is no resource-type picker. Continuum discovers the types it supports and you narrow by place and by tag, not by service. > [!TIP] > Scope to the thing you are explaining, not to the account. An unscoped account produces a diagram of everything in it, which nobody can read. One commit fans out to at most 12 scopes on AWS and 4 on Azure, and the picker says so when you go over. On Teams the plan cap of three scopes per diagram bites first, and the picker does not know your plan. A selection of four or more still shows as valid and the server refuses it after you press create. Narrow the selection, or add the rest as extra scopes afterwards. ## Adding, re-syncing and removing scopes Open the Continuum tab's settings cog and choose `Settings…`. Each scope has `Re-sync`, and `+ Add another scope` adds more. Every control here needs edit access on the blueprint plus `cloud_connections.manage` on each scope's connection. Without the permission the buttons do not appear. > [!IMPORTANT] > `Remove` drops that scope's resources from the diagram and deletes the strata attached to them. Other scopes are untouched, and the deletion cannot be undone. The confirmation dialog says so. `Remove` is disabled on the last remaining scope: "Cannot remove the last scope. Delete the Continuum tab instead." ## Syncing is manual `Sync now` from the cog re-discovers every scope and reports the result, for example "Synced, +3 added, 1 changed, 0 missing." > [!IMPORTANT] > Scheduled syncing does not work on any plan. The `Auto-sync` picker offers Off, Every 1h, 4h, 12h and 24h, but choosing any cadence returns "Scheduled polling is not available yet - Continuum runs one-time scans." That is not a plan gate and no upgrade lifts it. Turning it Off is always accepted. ## Reading a sync Each scope's discovery is recorded as its own **Poll run**, reachable from the history list in `Settings…`, so one `Sync now` across three scopes produces three runs. Removing a scope writes one too. A run reports what it found, what changed since the last one, and an `Adapter errors` section listing every read that failed. Check that section before concluding something was decommissioned. A permission error produces a smaller diagram with an explanation, not a silent gap. Once the permission is fixed, choose `Sync now` again. The ten most recent runs are listed. There is no view that compares two runs side by side. --- # Continuum Integrations: Keeping diagrams true URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-cloud/keeping-diagrams-true > What a sync preserves, what the shape outlines mean, and how new resources reach the diagram. Once a scope has been discovered, Continuum puts the results on a canvas and mints a stratum for every resource it found. ## Shapes and strata Resources the layout draws become shapes, nested inside the boundaries that exist in the source: accounts, regions, VPCs and subnets, resource groups. Resources that describe relationships rather than occupy space get a stratum with no shape. Route tables, security groups, network ACLs, IAM and KMS are filed under a `(Context)` folder in the Files sidebar and cross-linked from the resources they affect. A resource collapsed into a group shape, such as Auto Scaling members or a Lambda name family, also gets a stratum with no shape of its own. Those sit alongside the drawn resources rather than under `(Context)`. A Continuum stratum's body tab is labelled `Continuum` rather than Overview. It holds a Resource table, a Details table, per-type tables, Tags, links to related strata, and the full payload in a collapsed `Raw data` disclosure. A Terraform drift tab joins it where state is reconciled. ## What a sync preserves > [!IMPORTANT] > After the first draw, the canvas you saved is the authority on geometry. Your positions, sizes, labels, styling, groups, notes and connector routes are kept. Only new shapes are laid out. Containers can grow to make room for additions without moving what is already inside them. Where a container is boxed in by authored content, Continuum places the addition in free canvas space and keeps its resource membership rather than moving your work. A label or membership you have not customised follows the source. Anything you overrode wins. Managed shapes you deleted stay deleted once the diagram has recorded a refresh baseline. Older diagrams without that baseline preserve customisations conservatively, because a deletion made before the baseline cannot always be inferred. ## New resources wait for you A resource discovered after the first sync is not added to the diagram straight away. It is drawn on the notes layer with a green outline, and the settings cog's menu shows a running delta such as "+3 new". Choose `Promote N new resources` from the cog to move them onto the blueprint layer. Until then they sit alongside the diagram rather than in it. ## What the outlines mean | Outline | Meaning | | --- | --- | | Default | Active | | Red | The source reports the resource offline | | Dashed grey | Pending removal | | Red solid, on the notes layer | Removal confirmed | | Red dashed, on the notes layer | Referenced from outside the scopes you sync, labelled "out of scope" | | Yellow dashed, on the notes layer | In Terraform state but not found in the cloud, labelled "in tf, not in aws" | | Green, on the notes layer | Newly discovered, awaiting promotion | | Amber | Live configuration has drifted from Terraform state | Drift takes precedence over lifecycle. These outlines come from cloud discovery only. A linked monitoring platform never changes a shape. ## Changing the reading direction Reading direction is not a control on the tab. Ask the AI assistant to reorder the diagram top down or left to right. It proposes the change and applies it only after you confirm. > [!IMPORTANT] > Confirming lays out every managed shape again and discards the positions you moved them to. It is the one action on this page that does. Ordinary syncing, additions and promotion all preserve your layout. ## Version restore is refused Once a blueprint carries Continuum-managed content, restoring an older version of it is refused. A version snapshot never captured the connections and bindings behind those tabs and strata, so a restore would delete them with nothing to rebuild from. Remove the Continuum component and unbind those strata first. ## Binding one shape instead A shape you drew yourself can be tied to a single live resource. Add a stratum to it, open `+ Add tab` and choose `Continuum`, then pick a connection, a region or location, and one resource. `Pull now` re-reads it. AWS and Azure connections can both be bound. A Terraform-state connection cannot: "Only AWS and Azure connections can back a live stratum." The control appears only for a signed-in editor on a Teams plan or above, on a rich stratum in a saved blueprint. Binding also needs `cloud_connections.manage` on the organisation or team that owns the connection; without it the picker reports no usable connections. Readers never see it. --- # Continuum Integrations: Continuum Link URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link > Attaching a dated snapshot from a monitoring, ITSM or on-call platform to the stratum that explains it. Continuum Link attaches a saved snapshot from an operational platform to a stratum, as its own read-only tab. Alert state, service ownership and change context sit beside the thing on the diagram they refer to. It needs an Enterprise licence, edit access to the blueprint, and `continuum_integrations.manage` on the organisation or team that owns the connection. Below Enterprise the engine refuses with "Continuum integrations are an Enterprise feature." This is a separate gate from the Teams licence Continuum Cloud uses; holding one does not grant the other. > [!IMPORTANT] > Continuum Link never draws on a canvas. It cannot add, move, recolour or delete anything on a diagram. To generate a diagram from infrastructure, use [Continuum Cloud](/foliums/continuum-integrations/continuum-cloud). ## Connect a platform Open `Settings → Continuum` on the organisation or team, find `Operational integrations`, and choose `New integration`. The form asks for a `Type`, a `Name`, whatever non-secret fields that connector declares, and one credential. Choosing `Connect & verify` stores the credential and runs a handshake against the platform in one step. Jira Cloud and Jira Service Management Operations replace that button with `Connect with Atlassian` and sign you in instead. Most other connectors take a pasted token or key, GitHub and GitLab included. Two groups store no credential here. AWS CloudWatch reuses a verified AWS cloud connection: pick that connection and a region, and widen that connection's role with the CloudWatch and Logs actions the form lists. The ten on-premise connectors keep their credential on the [Continuum Local](/foliums/continuum-integrations/continuum-local) agent, and Blueprintr never stores it. Credentials are encrypted at rest, are never returned to the browser, and are never written into a snapshot. To replace one, enter the new value; there is no way to read the old one back. ## Link an object to a stratum Save the blueprint, open a stratum, and choose `Continuum Link` from its `+ Add tab` menu. Search across every verified connection you can use, review the candidate's identity, then choose `Link object`. The first snapshot is fetched before the binding is saved, so a link that would have failed never lands. One connection holds one linked object per stratum. Selecting a different object from the same connection replaces that connection's binding. A stratum can carry 20 linked tabs; a twenty-first is refused with "This stratum already has the maximum of 20 integration tabs." Two aids propose candidates instead of you searching. `Suggest integrations…` on a shape's right-click menu scores matches from that shape's own identifiers. `Scan for integrations` does the same across a whole blueprint, reading titles, tab bodies, file content and diagram shape labels, up to 200 identifiers per scan. Neither writes anything: Scan attaches only what you tick and apply. ## Refreshing is manual Opening a tab shows its saved snapshot and contacts nothing. Nothing polls, and no schedule exists. Each linked row has two icon buttons with no visible text. The circular-arrows icon re-fetches, and its tooltip reads "Re-fetch this integration's data". The broken-link icon removes the tab, with the tooltip "Remove this integration tab", and asks you to confirm. A banner above every saved tab states which of these applies: | Banner | Meaning | | --- | --- | | Saved snapshot | The last fetch succeeded and is still considered fresh | | Snapshot needs a refresh | Older than the connector's freshness window | | Incomplete snapshot | Some sections could not be read; counts are lower bounds | | Last refresh failed | The previous snapshot is still shown, unchanged | | Refresh paused | The connection is suspended | Only nine connectors declare a freshness window: PagerDuty, incident.io, Rootly, Datadog, LogicMonitor, Auvik, Jira Cloud, Jira Service Management Operations and ServiceNow. Most set five minutes. Jira Cloud work items set fifteen, Jira Service Management on-call coverage sets two, and ServiceNow sets one day. > [!IMPORTANT] > The other nineteen connectors never report a snapshot as needing a refresh. A months-old Grafana or GitHub tab still reads "Saved snapshot". Check the fetch time on the tab rather than trusting the banner. A failed read never becomes a healthy-looking zero. Missing sections are marked unavailable or partial, and a failed refresh keeps the previous snapshot. ## Who can read a saved panel This depends on the connector, so check it before linking. | Connector | Default audience for a new connection | | --- | --- | | Datadog, LogicMonitor, Auvik, Rootly, ServiceNow, GitHub, NetBox | Blueprint editors only | | Infoblox, Veeam Backup & Replication | Blueprint editors only, with no setting to widen it | | Every other connector | Everyone who can read the stratum | A connector in the last row has no audience setting, so its panel reaches every reader of the blueprint. On a public blueprint that includes anonymous readers, embeds and exports. The seven connectors in the first row offer a reader-visible option, labelled `All Blueprint readers`. > [!IMPORTANT] > A connection created before those settings existed keeps its historical behaviour, which is reader-visible and detailed, until an administrator opens `Configure` and saves. Check old connections rather than assuming the newer defaults apply. An audience change applies to later fetches. It does not rewrite snapshots already saved, and it cannot recall versions, templates, exports, embeds or AI answers that already carry the data. Unlinking a tab and revoking a credential cannot recall them either. ## Managing a connection | Control | What it does | | --- | --- | | `Configure` | Edits the connection's non-secret settings, including audience and detail | | `Verify` | Re-runs the handshake, including optional capabilities | | `Suspend` and `Resume` | Stops and restarts search and refresh. Saved snapshots stay readable | | `Rotate token` or `Replace credentials` | Reveals a field, then `Verify & replace` swaps the credential only if the new one verifies | | `Remove token…` | Clears the stored credential and suspends the connection | Deleting a connection is refused while tabs are still bound to it: "This integration has N stratum tab(s) bound to it. Remove those first." If the plan lapses, the section stays open in a cleanup-only mode: suspending, inspecting, unlinking and disconnecting still work. Adding or refreshing data needs Enterprise again. ## Which platforms 39 connectors are registered. 29 work directly, and 10 more need [Continuum Local](/foliums/continuum-integrations/continuum-local) for systems Blueprintr cannot reach. The [connector reference](/foliums/continuum-integrations/continuum-link/connector-reference) lists all of them with what each one asks for and shows. Eight have a guide of their own: > [!TILES 3] > > === [PagerDuty](/foliums/continuum-integrations/continuum-link/pagerduty) > > Service ownership, incident state and on-call coverage. > > === [incident.io](/foliums/continuum-integrations/continuum-link/incident-io) > > Catalog services and the incidents attached to them. > > === [Rootly](/foliums/continuum-integrations/continuum-link/rootly) > > Incident response and follow-up progress. > > === [Jira](/foliums/continuum-integrations/continuum-link/jira) > > Work items, and alerting from Service Management Operations. > > === [Datadog](/foliums/continuum-integrations/continuum-link/datadog) > > Hosts, monitors, catalog services and reliability objectives. > > === [LogicMonitor](/foliums/continuum-integrations/continuum-link/logicmonitor) > > Devices, DataSource instances and resource groups. > > === [Auvik](/foliums/continuum-integrations/continuum-link/auvik) > > Network device context and recent alert history. > > === [ServiceNow CMDB](/foliums/continuum-integrations/continuum-link/servicenow-cmdb) > > The configuration item, its relationships and its open work. --- # Continuum Integrations: Connector reference URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/connector-reference > Every Continuum Link connector, what it asks for when you connect it, and what its saved panel shows. 39 connectors are registered. 29 connect directly and 10 need [Continuum Local](/foliums/continuum-integrations/continuum-local). All of them need an Enterprise licence and `continuum_integrations.manage`, and none of them draws on a canvas. Every connector can be found by free-text search when linking a stratum. Where a credential field has no label of its own, the form calls it `API token`. ## Alerting and on-call | Connector | Credential | Other fields | Panel | | --- | --- | --- | --- | | [PagerDuty](/foliums/continuum-integrations/continuum-link/pagerduty) | API token | PagerDuty region, Imported content | Service identity, open incidents, incident coverage, ownership, on-call coverage, related services | | [incident.io](/foliums/continuum-integrations/continuum-link/incident-io) | API key | Catalog types, relationship fields, attributes, history days, remediation counts | Catalog entry and related incidents, or one incident with durations and follow-ups | | [Rootly](/foliums/continuum-integrations/continuum-link/rootly) | API key | Content audience, ownership context, on-call coverage, action item counts | Service response and history, or one incident's lifecycle | | [Jira Service Management Operations](/foliums/continuum-integrations/continuum-link/jira) | Atlassian sign-in | Site, counts-only | Alert scope with open, unacknowledged and snoozed counts, or an on-call schedule | | FireHydrant | API key | None | Service tier and active incidents, or one incident | | Splunk On-Call | API credentials (JSON) | None | One incident, paged teams and state transitions | | xMatters | Password | Instance URL, Username | A group, a person or an event, with recent events | ## Observability | Connector | Credential | Other fields | Panel | | --- | --- | --- | --- | | [Datadog](/foliums/continuum-integrations/continuum-link/datadog) | Datadog credentials | Datadog site, content audience, saved detail, approved tag keys, Software Catalog, SLOs, default SLO window | Host, monitor, catalog service or reliability objective | | New Relic | User API key | Region (optional) | Entity identity, alert severity, reporting state and tags | | Dynatrace | API token | Environment URL | Entity identity and open problems by category, with a timeline | | Elastic Observability | API key | Kibana URL | Alert rule identity, active count and execution status | | Splunk Observability Cloud | Access token | Realm | Detector state, active incidents by severity, current signals | | SolarWinds Observability SaaS | API token | Data centre | Entity identity, health state, maintenance and telemetry age | | Grafana Alerting | Service account token | Grafana URL | Firing alerts for a label matcher, or one alert rule's state | > [!IMPORTANT] > Every cloud connector reaches its provider from Blueprintr over HTTPS and is blocked from private, loopback, link-local, carrier-NAT and metadata addresses. Any URL field in these tables must name a publicly reachable host: Grafana, Alertmanager, Kibana, Dynatrace environment, self-hosted GitLab, xMatters and ServiceNow included. An internal host needs one of the on-premise connectors below, and Grafana, Alertmanager, Elastic, Dynatrace and GitLab are not among them. ## Monitoring | Connector | Credential | Other fields | Panel | | --- | --- | --- | --- | | [LogicMonitor](/foliums/continuum-integrations/continuum-link/logicmonitor) | Bearer token | Company, content audience, saved detail, group scope, maintenance context, instance datapoints | Device, DataSource instance or resource group | | [Auvik](/foliums/continuum-integrations/continuum-link/auvik) | API key | Region, Username, site scope, audience, saved detail, alert history period, optional sections | Device context and recent alert history | | AWS CloudWatch | None | A verified AWS cloud connection and a region | An alarm with recent state changes, or a log group with event volume | | Azure Monitor | Client secret | Tenant ID, Client ID, Subscription ID | Resource identity, alerts by severity, recent alerts | | Google Cloud Monitoring | Service account key (JSON) | Project ID | Alert policy and its conditions | | Prometheus Alertmanager | Password | Alertmanager URL, Username (optional) | Alert counts for a matcher, top labels, firing since | CloudWatch is the one cloud connector that stores no credential of its own. It reuses a verified [cloud connection](/foliums/continuum-integrations/continuum-cloud), so the form offers a connection and region picker instead of a token field. That connection's role needs nine CloudWatch and Logs actions the discovery role does not grant. The form lists them under `Required IAM actions for the backing role`; add them before expecting alarm or log-group data. On an organisation-mode connection the form also asks for a 12-digit member account id. Alertmanager always requires a secret to save the connection. For an unauthenticated instance, leave `Username` blank and type any placeholder in `Password`. It is never sent without a username. Google Cloud Monitoring shows alert-policy configuration only. Its panel states "Open incidents unavailable". ## Uptime and synthetics | Connector | Credential | Other fields | Panel | | --- | --- | --- | --- | | Pingdom | API token | None | Check identity, uptime percentage, average response, state changes | | Better Stack Uptime | API token | None | Monitor identity, SLA and incident counts, active incidents | | UptimeRobot | API key | None | Monitor identity, recent health and window totals | | Checkly | API key | Account ID | Check identity, sampled results, latest runs | | Site24x7 | OAuth credentials (JSON) | OAuth client ID, Data centre (optional) | Monitor state, account-wide fleet status, current problem monitors | ## Service management and source control | Connector | Credential | Other fields | Panel | | --- | --- | --- | --- | | [Jira Cloud work items](/foliums/continuum-integrations/continuum-link/jira) | Atlassian sign-in | Site, counts-only | One work item, a saved filter or a JQL scope | | [ServiceNow CMDB](/foliums/continuum-integrations/continuum-link/servicenow-cmdb) | Password | Instance URL, Username, Snapshot audience, Saved detail, Open work | Configuration item with lifecycle, environment, ownership groups and discovery dates; relationships from the CI's side with the total; optional open incident and change counts | | GitHub | Fine-grained access token | Verification repository, optional organisation, enabled reads, audience and detail | Repository context scoped by branch/workflow, labels, environment and path; separate work and CI, optional deployment, commit and release evidence | | GitLab | Access token | Instance URL (optional) | Project identity, activity, recent issues and pipelines | > [!NOTE] > GitHub and GitLab take a pasted access token. There is no sign-in button on the Continuum connection form; Jira is the only connector that signs you in. ## On-premise, through the local agent These ten appear in the connector list but cannot be selected until the organisation has an enrolled agent online that can serve them. Until then the option is disabled and its label says why: set up an agent, the agent is offline, or upgrade the agent. Blueprintr never stores their credentials. Set in the agent's own configuration, a credential never leaves your network; sent from the Continuum Local panel instead (the agent must allow it), it passes through Blueprintr to the agent without being saved. The connection form has no credential field, and shows the account each product needs under its notice. | Connector | Credential parts in the agent config | Other fields | Panel | | --- | --- | --- | --- | | SolarWinds Orion | `username` and `password` | Orion server URL | Node identity, health metrics, active alerts, interfaces, volumes | | Zabbix | `token` | Zabbix frontend URL | Host identity, unresolved problems, current problems | | PRTG Network Monitor | `token` | PRTG server URL | Device identity, sensor counts, unhealthy sensors | | Checkmk | `username` and `password` | Checkmk URL, Site | Host identity, service states, current problems | | Icinga 2 | `username` and `password` | API URL | Host identity, service states, active problems | | ManageEngine OpManager | `token` | OpManager URL | Device identity, active alarms | | WhatsUp Gold | `username` and `password` | WhatsUp Gold URL | Device identity and active monitor counts | | NetBox | `token` | NetBox URL, Custom fields to show, Snapshot audience | Device or virtual machine identity, primary addresses, interfaces with MACs, addresses and cabled peers, and the listed custom fields | | Infoblox | `username` and `password` | Grid Manager URL, WAPI version, Extensible attributes to show | A host, an address or a network: DNS records, IPAM state, DHCP leases and fixed addresses, network utilization and the listed extensible attributes | | Veeam Backup & Replication | `username` and `password` | Backup server URL, REST API version, Restore point target | Protection verdict, age of the last good restore point, jobs protecting the machine and their last result, recent failures | For SolarWinds Orion, Checkmk, Icinga 2 and Infoblox the username is part of the agent's credential, so the connection form does not ask for it. It shows what that account needs instead; set the username with the password, in the agent config or from the Continuum Local panel. Each one wants a dedicated account that can only read, on a known port, and most need a certificate given to the agent. A port in the connector's URL replaces the default. [Certificates](/foliums/blueprintr-user-guide/continuum/local-agent#certificates) in the Continuum Local guide explains the certificate column. | Connector | Least-privilege account | Default port | Certificate | | --- | --- | --- | --- | | SolarWinds Orion | No administrator, node management or unmanage rights | 17774 | Self-signed on install | | Zabbix | Role type User, Read on the host groups to show | 443 | Depends on the install | | PRTG Network Monitor | API key with Read access, Read-only user | 443 | Self-signed on install | | Checkmk | Role copied from Guest, plus Read access to all hosts and folders | 443 | Depends on the install | | Icinga 2 | ApiUser with `objects/query/Host` and `objects/query/Service` only | 5665 | Icinga's own CA | | ManageEngine OpManager | API key with Read access only | 8060. Write it in the URL: without a port, the connector uses 443 | Self-signed on install | | WhatsUp Gold | Read-only user that can read the Entire Network group | 9644 | Depends on the install | | NetBox | View on devices, interfaces, IP addresses, VMs and VM interfaces only; Write enabled off | 443 | Depends on the install | | Infoblox | Own admin group with API access and read-only permissions, no superuser | 443 | Issued to www.infoblox.com: replace it first | | Veeam Backup & Replication | Veeam Backup Viewer role only | 9419 | Self-signed on install | ### NetBox Supports NetBox 4.0 and later; verify refuses an older release, because before 4.0 NetBox ignores the list of fields Blueprintr asks for and would send config contexts. Enter the token alone, without the word Token or Bearer. v1 tokens are 40 characters; v2 tokens (NetBox 4.5 and later) begin `nbt_` and include the part after the dot. Either works. Blueprintr never asks for config contexts or comments. It asks for custom fields only when you list some under Custom fields to show; left blank, or set to `none`, no custom field value leaves NetBox. NetBox cannot send only some custom fields, so while any are listed, NetBox sends Blueprintr every custom field value on the device or virtual machine: panels show only the listed ones, and the rest are deleted with the request within minutes. A custom field named like a credential is never shown, even when listed. If you keep secrets in custom fields, leave the list blank. The panel is for Blueprint editors unless you choose all Blueprint readers. ### Infoblox Leave the WAPI version blank on NIOS 8.6 and later (2.12). The certificate NIOS installs with is issued to www.infoblox.com, so replace it with one for the Grid Master's address before giving it to the agent as `caFile`; [Certificates](/foliums/blueprintr-user-guide/continuum/local-agent#certificates) has the steps. While any extensible attributes are shown, the grid sends Blueprintr all of an object's extensible attributes: panels show only the listed ones, and the rest are deleted with the request within minutes. Enter `none` and Blueprintr never asks for them. If you keep secrets in extensible attributes, use `none`. Panels are for Blueprint editors only, since leases and MAC addresses can identify people on client networks. ### Veeam Backup & Replication Needs version 12 or later and agent 0.2.0 or later, which keeps Veeam's access token on the agent. On 12.0, set the REST API version to `1.1-rev0`. The build number in the verify message needs the Backup Administrator role, and is left out for a Backup Viewer. The tab measures a restore point's age on the backup server's own clock. A job that includes a machine through a folder, tag or cluster is found through the machine's restore points, not through the job definition. Panels are for Blueprint editors only. ## Reading any panel Whatever the connector, the same rules hold. - Data is fetched with the connection's credential, not the reader's. A source link opens the provider, which applies its own permissions. - A panel is a named projection of the provider's response. The raw upstream object is never stored as-is. - A failed read never becomes a zero. Sections are marked unavailable or partial, and partial counts are lower bounds. - A provider that cannot be reached leaves the saved snapshot in place. The tab keeps its last successful body and the banner reads "Last refresh failed". A first link that cannot fetch is refused, so no tab is created. - A saved panel reaches everyone who can read the blueprint unless its connector has an audience setting or keeps its panels for editors. Datadog, LogicMonitor, Auvik, Rootly, ServiceNow, GitHub and NetBox have the setting, and Infoblox and Veeam Backup & Replication panels are always for Blueprint editors only. On a public blueprint every other panel is visible to anonymous readers, embeds and exports. - Counts describe what was retrieved at the stated time. They are not a statement that the component is healthy now. --- # Continuum Integrations: PagerDuty URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/pagerduty > Service ownership, open incident state and on-call coverage beside the component they belong to. Link a PagerDuty technical service to the stratum for the component it covers. The saved tab shows who owns the service, what is open against it, and whether the primary escalation level had cover when it was fetched. Responding to incidents stays in PagerDuty. A PagerDuty technical service is the only object that can be linked. Business services appear inside a service's panel as related rows, and cannot be linked on their own. ## Connect 1. You need an Enterprise licence, edit access to the blueprint, and `continuum_integrations.manage` on the connection's organisation or team. 2. In PagerDuty, create a dedicated read-only REST API key under `Integrations → Developer Tools → API Access Keys`. An Events API integration key will not work here. If you paste one, Blueprintr sends it and PagerDuty rejects it with "PagerDuty services read failed (HTTP 401). Check or replace the REST API key." 3. In Blueprintr, open `Settings → Continuum` on the organisation or team, go to `Operational integrations`, choose `New integration`, and select PagerDuty as the `Type`. 4. Give the connection a `Name`, set the two options below, paste the key into `API token`, and choose `Connect & verify`. Without a name the form refuses with "Give this integration a name." ### Connection options Both dropdowns open on `Use default`, which stores nothing and behaves as the first real option. | Field | Options | Effect | | --- | --- | --- | | `PagerDuty region` | Use default, United States (US), Europe (EU) | Chooses the API host. Use EU for accounts whose address ends in `eu.pagerduty.com`. Default is US | | `Imported content` | Use default, Summary (recommended), Detailed: include titles and description | Detailed adds incident titles and the service description. Default is Summary | Verification makes two list calls, one for services and one for incidents. Both may return nothing and still verify, so a successful check proves the key reads those collections, not that the account has content. On-call coverage and service dependencies are not exercised at verification time, so they may still fail when a service is linked. ## Link a service Open the stratum and choose `Continuum Link`, then search by any of these. PagerDuty has no prefix syntax. | What you type | What happens | | --- | --- | | A service name | Searches service names, up to about 300 services | | A service ID (6 to 32 uppercase letters and digits) | Looked up directly. If PagerDuty returns 404, the same text is searched as a name | | A PagerDuty service URL | The ID is read out of `/service-directory/` or `/services/`. The URL itself is never called | A URL from the other region is refused rather than looked up: "This PagerDuty service URL belongs to a different region. Choose the matching connection." ## What the panel shows | Section | Contents | | --- | --- | | Service | Service, Service ID, Region, Incident posture, Meaning, Owning team, Escalation policy, and the description in Detailed mode | | Open incidents | Counts of reported open, high-urgency, low-urgency, unknown urgency and unknown status | | Incident coverage | Retrieval, time range, content mode, how many incidents are shown, and a consistency row when the two reads disagree | | Open incident details | Up to 20 incidents, newest first | | Ownership in PagerDuty | Links to the escalation policy and the owning team | | On-call coverage | Whether the primary level had cover, when to recheck, and a privacy note | | Service relationships | Retrieval state, then a table of related services | The headline restates PagerDuty's service status: "No open incidents reported", "Acknowledged incidents", "Triggered incidents", "Maintenance · new incidents suppressed" or "Disabled · new incidents suppressed". The Meaning row spells out the limit of that reading: "PagerDuty incident and notification state; not a measurement of component availability." If the service read and the incident read disagree, the headline is replaced with "Service and incident state disagree · refresh to recheck" rather than showing a healthy state. ### Counting and its limits Open incidents are those PagerDuty reports as triggered or acknowledged, with no creation-date cutoff. Retrieval stops after five pages of up to 100, so roughly 500 incidents. When that cap is reached, the section title gains "partial retrieval", every count gains a trailing plus sign, and the Retrieval row reads "Partial: stopped after 5 pages; counts are lower bounds." On-call coverage is computed over one hour starting at the fetch, filtered to the service's escalation policy. If those pages could not all be read, coverage reads Unknown rather than claiming a gap: "Coverage retrieval is partial; absence does not establish a coverage gap." A service with no escalation policy makes no on-call call at all. Related services are limited to six detail lookups. Business services never carry a state, showing "Business impact not retrieved", because the connector does not infer business impact. ## What is never imported Responder names, user IDs, email addresses and schedule names are excluded in both content modes. So are incident bodies, assignees, acknowledgers, conference-bridge numbers, service integration keys and business-service points of contact. Detailed mode adds exactly two fields: the incident title, truncated to 250 characters, and the service description, truncated to 1000 characters. Only `pagerduty.com` HTTPS links reach the panel, with query strings and fragments stripped. ## Audience PagerDuty declares no audience setting, so its saved panel is visible to everyone who can read the stratum. On a public blueprint that includes anonymous readers, embeds and exports. Service names, team names and relationships are visible even in Summary mode. Choose `Detailed` only when incident titles and the service description are appropriate for that audience. Reducing detail later applies to subsequent refreshes and does not recall copies already shared. ## Changing the region later Changing the region is refused while any binding predates the region setting: "Remove the existing legacy bindings before changing PagerDuty region, then link services from the new region." If every binding does carry a region, the change is allowed, and each of those services then fails on refresh with "This service was linked in a different PagerDuty region. Unlink it and choose the service again." The new region is verified with the existing credential before it saves, so a US-only key fails the switch to EU and the previous setting is kept. ## Refreshing and recovery Snapshots become due for refresh after five minutes, which is a reminder rather than automatic polling. A failed service or incident read keeps the previous snapshot and adds a warning; it never becomes a healthy zero. A failed on-call or dependency read marks only that section unavailable and still saves the panel. --- # Continuum Integrations: incident.io URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/incident-io > Catalog service context and the incidents attached to it, beside the component on the diagram. Link an incident.io Catalog entry to the stratum for a service or component, and the tab shows the incidents that named it. Link an incident instead, and the tab explains one response: its lifecycle, severity, measured durations and follow-up state. Responding and writing up stay in incident.io. ## Connect 1. You need an Enterprise licence, edit access to the blueprint, and `continuum_integrations.manage` on the connection's organisation or team. 2. In incident.io, create a dedicated key under `Settings → API keys` with `View data` (`viewer`) and `View catalog` (`catalog_viewer`). Leave write permissions and `View all incident data` (`global_access`) disabled. 3. In Blueprintr, open `Settings → Continuum`, go to `Operational integrations`, choose `New integration`, and select incident.io as the `Type`. 4. Give the connection a `Name`, paste the key into `API key`, set any of the optional fields below, and choose `Connect & verify`. Verification reads the key's identity, one incident, the Catalog type list, one Catalog entry, the custom-field list when relationship fields are configured, and one follow-up when remediation counts are on. All requests are reads against `api.incident.io`. ### Optional connection settings Every field can be left blank. The three list fields accept up to 50 comma-separated IDs each. Ask your incident.io administrator for the stable IDs. | Field | Blank behaviour | What it changes | | --- | --- | --- | | `Catalog types to search` | Searches available types within the retrieval budget | Restricts search to the service or component types your diagrams use | | `Incident relationship fields` | An incident counts if it selects the entry in any custom field | Counts an incident only when it selects the entry in the listed fields, such as Affected services | | `Catalog details to share` | No attributes are shown at all | Adds selected structured attributes, such as owning team or tier, visible to every blueprint reader | | `Recent incident history (days)` | 30 | The window for the "created in the last N days" count. Accepts 1 to 90 | | `Include remediation counts` | Off | Adds aggregate follow-up state. Needs the `actions.view` permission and the matching incident.io entitlement | Active, triage and paused incidents are checked regardless of age, so the history window only bounds the recent-history count. ## Link an object Open the stratum, choose `Continuum Link`, and search. Once an incident.io connection is in play, an `incident.io objects` selector appears with `Catalog and incidents`, `Catalog records` and `Incidents`. Search a name, a stable ID, an INC number or an incident link. | What you type | What it finds | | --- | --- | | A name | Catalog entries, incidents, or both, depending on the selector | | `INC-1042` or a bare number | That incident directly, including one older than the history window | | A 26-character ULID or a UUID | That record directly | | An `app.incident.io` incident link | That incident directly | Typing `catalog:` or `incident:` in front of a query narrows it the same way the selector does. ## What is always excluded Blueprintr applies its own filter before anything reaches a panel, whatever the key is permitted to read. - An incident appears only when incident.io marks it organisation-visible and its mode is standard or retrospective. Private, test, tutorial and stream incidents never appear. Linking one returns "incident.io incident is private, unavailable, or a test record and cannot be linked." - A Catalog type that represents people or customers is dropped, whether by its category or by user, person, customer, contact or employee appearing as a word in its name. Linking an entry of that type fails, but the reason is not shown: the editor sees the generic "incident.io could not be reached", so check the type's category and name before suspecting the connection. - Only three shapes of Catalog attribute can be shared: numeric, boolean, and a relationship to a team, service or product-feature type. Free text is excluded. An attribute whose name suggests a secret, a token, an email address or a phone number is excluded even when its type is numeric, and selecting it fails verification. Approved attribute values are clamped further: at most 10 records per attribute, numbers must parse as numbers, and a relationship label must be 160 characters or fewer with no line break and nothing shaped like an email address. ## What a Catalog panel shows | Section | Contents | | --- | --- | | Catalog entry | Name, Type, ID, External ID, Catalog state, Updated | | Related incidents | Active, Triage, Paused, created in the last N days, Coverage, Relationship | | Approved Catalog relationships and metadata | The attributes you selected, or nothing when none are configured | | Related incident details | Up to 10 incidents, open first and then newest first | The Coverage row states the limit of the reading: "Organization-visible standard and retrospective incidents only; private records are excluded. A related incident does not by itself establish component health." The headline is one of: "Archived Catalog entry", "Related incident coverage incomplete", a count of related active incidents, a triage and paused count, or "No related active incidents in available scope". ## What an incident panel shows Reference, lifecycle, status, severity, whether a lead is assigned, and created and updated times. The lead row reads Assigned, Unassigned or Unknown, and never names the person. Below that sit measured durations with their availability, the incident's timestamps, and links out to the incident, the postmortem and any linked issue. With remediation counts on, a `Follow-ups` section adds outstanding, completed, not-doing and unknown-status totals. Descriptions and assignees are not imported. ## Partial results Retrieval is bounded. When a page limit or budget is reached, counts are prefixed "At least", the panel adds a coverage-incomplete section, and the snapshot is marked partial. A count from a partial read is a lower bound, never a total. Common messages an editor sees: - "incident.io needs Catalog read access. Ask the connection owner to enable catalog_viewer and Verify in Settings → Integrations." - "incident.io needs actions.view access for remediation counts. Enable that read permission or turn off remediation counts, then Verify." - "incident.io results are incomplete. Narrow the Catalog types or search scope, then retry; open incident.io for the full view." - "incident.io request limit reached. Wait a minute, then retry." ## Audience and refreshing incident.io declares no audience setting, so its saved panel reaches everyone who can read the stratum, including anonymous readers of a public blueprint. Incident references, names, severities and any approved Catalog attributes are visible to them. In incident.io, organisation-visible does not mean suitable for the public, so review a record before linking it. Snapshots become due for refresh after five minutes, as a reminder rather than automatic polling. A failed refresh keeps the previous snapshot with a warning. Changing a setting applies to later fetches and does not rewrite copies already saved or shared. --- # Continuum Integrations: Jira URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/jira > Jira work items and Jira Service Management Operations alerting, connected through Atlassian sign-in. Blueprintr connects to Atlassian three separate times, for three separate jobs. | Connection | What it reads or writes | Gate | | --- | --- | --- | | Jira Cloud work items | Work items, saved filters and JQL scopes, on a stratum | Enterprise, `continuum_integrations.manage` | | Jira Service Management Operations | Alerts, Operations teams and on-call schedules, on a stratum | Enterprise, `continuum_integrations.manage` | | Jira follow-up destination | Creates an issue from a stratum | `webhook.manage` on the organisation, no plan gate | The first two are Continuum Link connectors. The third is a write path and is covered at the end of this page. ## Connecting Both read connectors are created only through Atlassian sign-in. On the `New integration` form, choosing either provider hides the Name field, the config fields and the secret field, and offers `Connect with Atlassian` instead. Pasting a token is refused: "Connect this integration through Atlassian sign-in." After consent you choose an Atlassian site, name the connection, and decide the counts-only setting. Only sites that granted every required scope are offered. If none did, you see "No Jira Cloud site granted the required access. Check the app's permissions and your Jira membership, then reconnect." Scopes requested are fixed per connection: | Connection | Atlassian scopes | | --- | --- | | Jira Cloud work items | `offline_access`, `read:jira-work` | | Jira Service Management Operations | `offline_access`, `read:ops-alert:jira-service-management`, `read:ops-config:jira-service-management` | | Jira follow-up destination | `offline_access`, `read:jira-work`, `write:jira-work` | Blueprintr verifies the connection with a read before saving it, and creates no test issue. A connection's site cannot be edited afterwards: the row offers `Reconnect with Atlassian` rather than `Configure`, and reconnecting is pinned to the original site. > [!NOTE] > These connections need an Atlassian OAuth app configured on the Blueprintr deployment. Where that is missing, connecting fails and tells you to ask your Blueprintr administrator. ## Counts-only A checkbox on the site-selection page reads "Import counts and operational state only. Omit work item summaries, alert subjects and query details from blueprint snapshots." > [!IMPORTANT] > Counts-only is one way. Once set, the checkbox is disabled and no path turns it back off. Reconnecting cannot clear it either. It removes the free text from both the rendered tab and the stored payload: | Object | Removed | Kept | | --- | --- | --- | | Work item | Key and summary, type, project, parent, components, target versions, related work | Status, status category, priority, resolution, due date, updated time | | Query or filter | The JQL, the saved-filter name, and the per-item list | Match count, audience, search consistency, status-category counts | | Alert scope | The query text, the matching line, the Operations team, both alert lists | Open, unacknowledged and snoozed counts, coverage, recent history, per-priority counts | | On-call schedule | Schedule name and owning team | Counts, timezone, checked-at | Candidate titles also become neutral, such as "Jira work item" and "JSM alert scope", which is what a stratum minted by Scan is named. ## Searching Jira Cloud work items The syntax hint appears on the connection row in settings, not in the stratum search box: "Link a work item, filter:123, epic:PROJ-123, or jql: followed by a query." | What you type | What it does | | --- | --- | | `PROJ-123` | Links that work item | | A `/browse/KEY-123` URL on the connected site | Links that work item | | `filter:12345` | Binds the saved filter by ID. Its JQL is re-read on every refresh, so editing it in Jira changes the tab | | `epic:APP-42` | Work under that epic | | `jql:` followed by a query | That query | | Anything else | Searched as a quoted phrase against summaries, never as raw JQL | Queries are capped at 2,000 characters. A link from a different Atlassian site is refused without making a request: "This Jira link belongs to a different site. Choose that site's integration." A query panel reads at most 250 work items. Past that, the count is a lower bound and the panel says "Showing at most 250 matching work items. Open Jira for the full result." A bound work item shows work item, type, project, status, status category, priority, resolution, due date and last update, plus parent, components, target versions and related work when present. A missing value reads "Not set or unavailable" rather than a healthy default. Descriptions, comments, assignee and reporter are never fetched. > [!TIP] > A work item marked Done does not mean the service it refers to is healthy. ## Searching Jira Service Management Operations The hint on that connection row reads "Search entity or subject text, query: for an Operations query, team: or schedule:." | What you type | What it does | | --- | --- | | Plain text | Matches entity or message text | | `query:` followed by an Operations expression | Uses that expression | | `team:` followed by text | Finds an Operations team | | `schedule:` followed by text | Finds an on-call schedule | > [!IMPORTANT] > Operations query syntax is not JQL. Sending a JQL string returns "JSM Operations rejected this query (HTTP 400|422). Check the Ops search syntax; Jira JQL is not supported here." Queries are capped at 1,000 characters. An alert panel makes two independent reads on each refresh: current open alerts matching the saved query, up to 500, and a separate newest-15 history page. A large volume of newer closed alerts therefore cannot hide an older open one. The headline follows a strict order. Any open P1 or P2 makes it critical. An unknown priority or an incomplete read makes it "open alerts · status incomplete". Zero open alerts reads "No open alerts in this query" only when retrieval was complete, every priority was known and nothing else warned; otherwise it reads "No open alerts · recent history unavailable". Partial results never read as an all-clear: the Coverage row says "Partial retrieval; this is not an all-clear" and counts are prefixed "At least". An on-call schedule panel reports schedule, owning team, counts of current people on call, current team and escalation routes, next people on call, timezone and when it was checked. Individual responder identities and contact details are never returned or stored. Where routing is by team or escalation only, the status reads "On-call routing configured; person coverage unconfirmed" rather than naming anyone as on call. ## Freshness and audience | Snapshot | Marked due for refresh after | | --- | --- | | Jira work item or query | 15 minutes | | JSM alert scope | 5 minutes | | JSM on-call schedule | 2 minutes | Neither connector sets an audience, so both panels reach everyone who can read the blueprint, including anonymous readers of a public blueprint, embeds and exports. Counts-only is the control for that exposure, and it applies from the next refresh onward rather than rewriting saved snapshots. ## Creating a Jira follow-up from a stratum Configure a Jira destination on the organisation's `Settings → Continuum` page. Choose `+ New webhook`, set the destination to Jira, then choose `Connect Jira account` to sign in with Atlassian a second time and grant `write:jira-work`. > [!IMPORTANT] > A connection made for Continuum Link holds read access only. It is listed as "(read access only)" and cannot be chosen. The write connection is a separate sign-in. Pick the project, work type and required fields, then use `Verify without creating a work item` before saving. The work type must have Description on its Jira creation screen, or the destination is refused. Every required field on that screen without a Jira default must also be given a value here. The `Jira follow-up` button then appears in the stratum tab strip for an author who can edit the blueprint and holds `webhook.manage` on the owning organisation. A blueprint with no owning organisation never shows it. The dialog is titled `Create Jira follow-up` and asks for a destination, a summary of up to 240 characters prefilled as "Follow up: ", and what needs to happen, up to 12,000 characters. `Create Jira issue` submits it. Your own submission is the approval step; nobody else reviews it. The text is recorded durably before Jira is contacted, so a retry cannot create a second issue, and reusing a request with different text is refused. The created issue links back to the stratum. Its key can then be linked through the Jira Cloud connector to follow progress. New destinations create follow-ups manually only. Automatic creation is opt-in and limited to four events: a blueprint being published, and a workflow run being submitted, approved or rejected. > [!NOTE] > The write connection has no plan gate. An organisation holding `webhook.manage` can create follow-ups without Enterprise, even though it cannot use Continuum Link to read Jira back. --- # Continuum Integrations: Rootly URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/rootly > Incident response, service context and follow-up progress beside the component they explain. Connect a Rootly service to the stratum for a system component, or link an incident to the stratum explaining a failure or recovery process. Readers can understand the response in the diagram's context and open Rootly for the full incident record. Blueprintr reads information; incident management stays in Rootly. ## Connect and choose an object 1. You need an Enterprise licence, edit access to the blueprint, and `continuum_integrations.manage` on the connection's organisation or team. 2. In Rootly, open `Organization Settings → API Keys → Generate New API Key`. Prefer a dedicated `Global API key` assigned read-only Incident Response and, only if needed, On-Call roles. Personal keys inherit their creator's access; Team keys inherit Team Admin permissions. See [Rootly's API-key guide](https://docs.rootly.com/api-reference/overview). 3. In Blueprintr, open `Settings → Continuum` on the organisation or team, go to `Operational integrations`, and choose `New integration`. Select `Rootly` as the `Type`, give the connection a `Name`, enter the `API key`, review the audience and optional settings, then choose `Connect & verify`. Verification checks service and incident reads. There is no separate enable step. 4. Save the blueprint, open the relevant stratum, and choose `Continuum Link` from its `+ Add tab` menu. Search for the service or incident and review its identity before linking. `Suggest integrations…` on a shape and `Scan for integrations` across the blueprint both propose Rootly matches, and attach nothing until you apply them. Blueprintr uses Rootly's hosted API at `api.rootly.com`. This connection does not provide an alternative regional or self-hosted endpoint. ## Choose the information and audience | Setting | Default | What it changes | | --- | --- | --- | | Rootly content audience | Blueprint editors | Keeps saved Rootly details visible to blueprint editors. Choose the reader-visible option, `All Blueprint readers`, only after approving the information for everyone who can read the blueprint. Its full label adds "approved metadata". | | Service ownership and context | On | For linked services, adds related services, teams, environments, repository names and deployment names. Turn it off to omit optional context reads. | | On-call coverage | Off | For linked services, adds [on-call coverage](https://docs.rootly.com/api-reference/oncalls/list-on-calls) when the key and Rootly account support it. Individual responders and their contact details are omitted. | | Incident action item counts | On | For linked incidents, adds aggregate task and follow-up progress from [incident action items](https://docs.rootly.com/api-reference/incidentactionitems/list-incident-action-items). Task descriptions and assignees are omitted. | The baseline key needs read access to `services and incidents`. Context may also require team and environment reads; follow-up summaries need incident action-item reads. On-call coverage needs access to Rootly's on-call data and the relevant product entitlement. These are permissions on the key's assigned roles, not OAuth scope strings. Disable an optional capability instead of granting unrelated administrative access. Rootly incidents marked private, or without a reliable privacy designation, are excluded from selection and saved incident data under either audience setting. Rootly's non-private designation does not itself make an incident appropriate for the public. Review titles, service names and relationships before switching to the reader-visible audience. > [!NOTE] > Under the editor audience, a candidate is offered under a generic title such as "Rootly service" or "Rootly incident INC-42" rather than its real name, because a candidate title can become a stratum filename and a filename sits outside the audience gate. A stratum minted from one of these is named accordingly. ## Read the snapshot A service panel separates active response from recent history and maintenance. Normal incidents and sub-incidents are distinguished by kind; test incidents do not count as production incidents. The active view is independent of the 30-day history window, so an older unresolved incident can still be relevant. Maintenance has its own state and planned window when available; it does not become an outage merely because it is in progress. Rootly documents these filters in its [incident API](https://docs.rootly.com/api-reference/incidents/list-incidents). An incident panel shows response state, severity, related services and lifecycle times when available. `Mitigated` means impact has been reduced or halted; it does not mean response work is complete. Follow-up progress helps distinguish incident resolution from outstanding improvement work. Open Rootly to read descriptions, communicate with responders or change the record. Opening a tab displays saved data. Re-fetch with the circular-arrows icon on the linked row, whose tooltip reads "Re-fetch this integration's data". Rootly snapshots indicate that another refresh is needed after five minutes; this is a freshness warning, not automatic polling. On-call coverage is limited to the time checked. Incident counts describe retrieved records, not a guarantee that the system is healthy. ## Missing information and recovery An unavailable incident list, incomplete pagination or unreadable optional section is shown as unavailable or partial, rather than as zero incidents or no outstanding work. If a whole refresh fails, the prior snapshot remains with a warning. Check the key's role and expiry; for rate limits, wait for the stated retry interval before refreshing again. Rotate a credential with `Rotate token`, then `Verify & replace`, which swaps it only if the new key verifies. `Suspend` stops search and refresh while leaving saved snapshots readable, and `Resume` restarts it. The broken-link icon on the linked row removes the binding. The connection can be deleted after its bindings have been removed. ## Copies and rollout checks New snapshots restricted to editors use Blueprintr's existing audience controls for readers, embeds, viewer exports and search or AI indexing. Editor exports and backups retain the source. Approved reader-visible snapshots follow the blueprint's audience, including anonymous readers of a public blueprint. Settings apply to subsequent fetches. Restricting the audience does not rewrite panels already saved: refresh each linked tab successfully, or unlink it, before treating existing Rootly content as editor-only. Changing the audience also does not rename existing strata or link labels, or remove authored notes outside the managed panel. Templates, version history, exports and other existing copies are not retroactively rewritten or recalled by an audience change, key revocation or unlink. Before operational rollout, verify the connection against your Rootly account: service membership, a known older active incident, maintenance, private-incident exclusion, optional permissions and on-call coverage. Local fixture tests do not establish your account's entitlements or replace this live check. --- # Continuum Integrations: Datadog URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/datadog > Monitor conditions, service ownership and selected reliability objectives beside the component they explain. Connect Datadog to the stratum for a component on your diagram. Use a host to explain telemetry reporting, a monitor to explain an evaluated condition, a catalog service to explain ownership and dependencies, or an SLO to show performance against an objective. Open the linked Datadog record for detailed investigation and operational changes. ## Connect 1. You need an Enterprise licence, edit access to the blueprint, and `continuum_integrations.manage` on the connection's organisation or team. 2. Create a dedicated Datadog service account with read permissions. Follow Datadog's [key setup](https://docs.datadoghq.com/account_management/api-app-keys/) or [Service Access Token guide](https://docs.datadoghq.com/account_management/service-access-tokens/). 3. In Blueprintr, open `Settings → Continuum` on the organisation or team, go to `Operational integrations`, choose `New integration`, select `Datadog` as the `Type`, enter a `Name`, and choose the `Datadog site`. If you use a custom Datadog domain, find the underlying site in `My Preferences`. See [Datadog sites](https://docs.datadoghq.com/getting_started/site/). 4. Under `Datadog credentials`, set `Credential type` to `API key and application key`, or to `Service Access Token` and fill that field. A Service Access Token pasted into the application-key box is rejected. 5. Review the information and audience settings, then choose `Connect & verify`. Blueprintr stores credentials encrypted and never displays them after saving. Hosts and monitors require `hosts_read` and `monitors_read`. Enable optional capabilities only when needed: | Capability | Additional permission | Information saved | | --- | --- | --- | | Service Definitions, schema v2.2 and earlier | `apm_service_catalog_read` | Service ownership and structured operating links | | Software Catalog, schema v3 | `apm_service_catalog_read` | Supported catalog entities, owners and declared or discovered relationships | | Reliability objectives | `slos_read` | Selected SLO target, performance, observation window and error budget | Catalog versions use distinct APIs. Choose the one your account uses and verify availability on your site. Datadog sites are independent and product availability differs. The connection reads existing information; it does not create monitors, SLOs, public dashboards or new telemetry instrumentation. Your existing Datadog entitlements and API limits still apply. ## Choose the component's operational context Save the blueprint, open its stratum, and choose `Continuum Link` from the `+ Add tab` menu. Search by host or monitor name, paste a Datadog monitor, SLO or infrastructure source link, or use one of these forms: | Search | Use | | --- | --- | | `monitor:12345` | Select an exact monitor | | `service:checkout env:production` | Find the catalog service for this deployment | | `slo:0123456789abcdef0123456789abcdef` | Select an exact SLO | | `slo-id:objective-id` | Explicitly select an SLO by its exact ID, including other supported ID formats | | `slo:Checkout availability` | Find a named objective | Review the connection, stable identity and source preview before linking. Catalog and SLO searches require the corresponding connection option. Linking a Datadog `service` requires its exact `env` tag value, without spaces or wildcards. For other Catalog entity kinds the field reads `Environment (optional)` and may be left blank. The service identity and deployment environment serve different purposes; changing a deployment's `version` tag does not make it a new service. [Unified service tagging](https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging/) explains Datadog's `service`, `env` and `version` relationships. Add an explicitly selected SLO ID to a service and choose its window. Check that the objective describes this service and environment: a similar name is not proof of that relationship. Standalone SLO selection also lets you choose 7, 30 or 90 days, where supported by the objective. For a multi-alert monitor, optionally copy the exact Datadog group string to show that group's state. Without a group, the panel describes the monitor's aggregate state. One monitor may cover many hosts or environments; its aggregate alert is not proof that every component is affected. `Suggest integrations…` and `Scan for integrations` offer matches for review. Use manual search when you want to choose an environment, SLO or monitor group. Each connection has one managed tab per stratum; choosing a different object explicitly replaces its binding. Authored prose and diagram content stay intact. ## Read the saved information Host reporting means whether Datadog received the expected metrics. Missing telemetry is not proof that a host is down. Hosts outside Datadog's available inventory window can become unavailable. Monitor panels retain distinct alert, warning, no-data and other provider states; these are evaluated conditions, not a general guarantee of system health. Catalog v3 separates declared relationships from those Datadog discovers through APM or Universal Service Monitoring. If provenance cannot be established, it is labelled unknown. These relationships are catalog-wide; the selected monitor environment does not filter this topology. The earlier Service Definitions API supplies ownership and links, with no relationship retrieval. Catalog navigation opens your regional Software Catalog; use the displayed entity identity to locate the component. Structured operating links may include documentation, runbooks and dashboards recorded on the selected entity. Blueprintr does not discover every dashboard or publish dashboard contents. SLO panels show the objective's target and calculated performance for the selected window. Error budgets retain their units and may be negative when the budget is exhausted. Blueprintr never substitutes 100% for an unavailable calculation. Datadog's own no-data rules still apply: monitor SLOs follow the underlying monitors' settings, and time-slice SLOs count no-data periods as uptime. The panel explains these limits. See Datadog's [SLO history](https://docs.datadoghq.com/api/latest/service-level-objectives/get-an-slos-history/) and [monitor details](https://docs.datadoghq.com/api/latest/monitors/get-a-monitors-details/). Opening a tab displays its saved snapshot. Re-fetch with the circular-arrows icon on the linked row ("Re-fetch this integration's data"). Snapshots show their retrieval time and become due for refresh after five minutes; this is a freshness warning, not automatic polling. Incomplete retrieval is labelled partial. Counts from a partial list are lower bounds; an unavailable section does not mean zero. A failed refresh keeps the previous snapshot with a warning. ## Information and audience New connections default to `Blueprint editors` and `Summary`. Summary retains the identity and operational measures while keeping monitor detail to a minimum. Detailed mode can include monitor names and approved tag values; new connections approve only `service`, `env` and `version` tag keys initially. Enter `none` to omit tags; clearing a configured list also omits tags on the next refresh. Monitor messages, notification recipients and raw telemetry are omitted. Choose the reader-visible option, `All Blueprint readers`, whose full label adds "approved metadata", only after reviewing the information for that audience. A public blueprint can have anonymous readers who do not authenticate to Datadog. Host identities, service names, ownership, links and even selected tag values may be confidential. > [!IMPORTANT] > A connection created before these settings existed has no stored value for audience, saved detail or approved tag keys. Each absent value resolves to its legacy behaviour: blueprint readers, detailed, and every tag key up to 30, excluding keys whose name suggests a secret. Such a connection publishes monitor names and all tag values to everyone who can read the blueprint. > > Opening `Configure` and saving unchanged keeps that behaviour, because the form pre-selects the legacy values. Select `Blueprint editors` under `Datadog content audience`, choose `Summary` under `Saved detail`, set `Approved tag keys` or enter `none`, choose `Verify & save settings`, then refresh each linked tab. Settings affect subsequent successful refreshes; they do not rewrite existing snapshots. Editor-only panels follow the shared reader, embed, viewer-export and search or AI audience controls. Editor exports and backups can retain the source data. Names in authored notes or link labels outside the managed panel need separate review. Unlinking, reducing detail, revoking credentials or changing audience does not recall saved versions, templates, exports, AI answers or copies already shared. ## Recovery and disconnection Verification checks the required reads and enabled optional capabilities. Host and monitor reads must pass. If an enabled Catalog or SLO check fails, the connection stays usable for hosts and monitors and the verification notice shows which optional access needs attention. After reloading settings, use `Verify` to recheck optional availability; the stored verified status alone does not establish it. If access is denied, check the site's selection, credential expiry and exact read permissions. Scoped keys do not inherit extra permissions. Newly created keys can take a few seconds to propagate. For rate limits, wait for the stated retry interval before refreshing; see [Datadog's rate-limit guidance](https://docs.datadoghq.com/api/latest/rate-limits/). Use `Rotate token`, then `Verify & replace`, for credentials. Replacing an application key while keeping the same API key preserves links. Changing the API key or Service Access Token requires reviewing and linking objects again, because Blueprintr cannot assume the new credential addresses the same account. Changing sites also requires relinking. Older bindings must be unlinked before these changes. A failed credential verification preserves the previous credential. `Suspend` stops search and refresh while retaining snapshots, and `Resume` restarts it. The broken-link icon on the linked row removes the binding and its managed tab. Remove all bindings before deleting a connection. Remove its stored credential and revoke it in Datadog when access should end. Before operational rollout, validate your site's permissions, known host and monitor groups, missing telemetry, large result sets, SLO calculations, optional Catalog availability and regional source links against your own account. Local fixtures do not establish live product availability or account entitlements. --- # Continuum Integrations: LogicMonitor URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/logicmonitor > Resource, instance and group monitoring context beside the component your diagram explains. Link a LogicMonitor device, DataSource instance or resource group to the stratum for the component it describes. A server can show the conditions affecting it; a circuit can show the exact monitored interface; a site can show the observed state of its group members. Investigation, alert acknowledgement and configuration changes remain in LogicMonitor. ## Connect your portal 1. You need an Enterprise licence, blueprint edit access and `continuum_integrations.manage` on the connection's organisation or team. 2. In LogicMonitor, create a dedicated [API-only user](https://www.logicmonitor.com/support/adding-an-api-only-user). Assign a role with `Resources View` on only the resource groups Blueprintr should read. Device, group, alert, instance, metric and scheduled downtime reads use resource permissions. Write, alert acknowledgement and Collector settings permissions are unnecessary. See [Resources role permissions](https://www.logicmonitor.com/support/resources-role-permissions). 3. Create a `Bearer` [API token](https://www.logicmonitor.com/support/api-tokens-2) for that user. This connector accepts Bearer tokens. LogicMonitor also supports LMv1 authentication, but an LMv1 access ID and key pair cannot be pasted into this connector's Bearer field. 4. In Blueprintr, open `Settings → Continuum` on the organisation or team, go to `Operational integrations`, choose `New integration`, select `LogicMonitor` as the `Type`, and enter a `Name`, `Company` and `Bearer token`. For `https://acme.logicmonitor.com`, enter `acme` as the company. 5. Review the content audience, saved detail and optional settings below, then choose `Connect & verify`. Verification checks resource and alert reads with the supplied credential. A successful check with no visible devices is explained separately: review the user's resource-group access or add monitored resources. Verification does not establish complete coverage or verify every optional read. Save the blueprint before adding a link. This connection uses REST v3 on commercial `logicmonitor.com` portals. The portal host is always built as `.logicmonitor.com`, so LMforGov portals and custom API hosts cannot be reached. No local agent is required. Credentials are encrypted and are not displayed again after saving. LogicMonitor documents the supported authentication methods in its [REST authentication guide](https://www.logicmonitor.com/support/rest-api-authentication). ## Choose the object your diagram describes Open the stratum for your server, interface or site and choose `Continuum Link` from its `+ Add tab` menu. Only a rich stratum can host a linked tab. Search its name, hostname or IP, or paste a current UIv4 device or group resource URL from the portal. Review the connection, company, object type, stable ID and instance lineage before choosing `Link object`, especially when names repeat. A successful first fetch is required before the binding is saved. One connection can have one linked object on a stratum; selecting another explicitly replaces that connection's previous link. | What the stratum describes | How to select it | What to check | | --- | --- | --- | | A server or network device | Search a name, hostname or IP, or use `device:42` for an exact device ID. | Confirm the company and device identity; the same display name can exist more than once. | | An interface or monitored component | Find its device, choose `Browse instances`, then select the instance. `instances:42` also lists instances on device 42. | Confirm the device, device-specific DataSource and instance. A DataSource's global ID is different from its device-specific DataSource ID. | | An exact known instance | Use `instance:42:123:456`: device ID 42, device DataSource ID 123, instance ID 456. | Retain all three IDs; an instance name or portal instance URL alone does not establish its complete identity. | | A site or service group | Search a group name or use `group:London` or `group:7`. | Confirm the group path and displayed direct or descendant scope. Membership describes an administrative monitoring group, not an architectural dependency. | | A device within a group | Choose `Browse members` or use `members:7`. | This lists direct members. Browsing changes the search; it does not save a link. | `Suggest integrations…` and `Scan for integrations` can help match diagram identifiers. Every suggestion still needs your review. Search results are limited to what the dedicated LogicMonitor user can read; no match does not prove that the object does not exist. Resolve any reported search or coverage warning before relying on absence. ## Choose detail, scope and audience These settings belong to the connection. Detail, audience, maintenance and datapoint changes apply to subsequent fetches. The group scope is saved with the selected object: review and relink a group to change its scope. | Setting | New connection default | What it changes | | --- | --- | --- | | LogicMonitor content audience | Blueprint editors | Restricts the saved provider panel to blueprint editors. Choose the reader-visible option, `All Blueprint readers`, whose full label adds "approved metadata", only after approving the content for everyone who can read the blueprint. | | Saved detail | Summary | Keeps object identity, operational states, counts and coverage with less monitoring detail. `Detailed` adds the affected monitoring names and member context. | | Resource group scope | Direct members | `Include descendant groups` also includes resources within child groups when selecting a group. Duplicate memberships do not represent separate resources. | | Maintenance context | Include maintenance windows | Adds available scheduled downtime context. Disable it to skip optional maintenance window reads. Alert downtime flags can still appear in Detailed snapshots. | | Instance datapoints | Blank | Optionally enter up to three exact comma-separated datapoint names copied from the chosen DataSource instance. Metrics are fetched only for instance links and only when this field is populated. | Existing connections keep their historical reader-visible detailed behaviour until an administrator chooses otherwise. Existing settings with no maintenance option do not enable additional maintenance reads. Alert messages, acknowledgement comments, arbitrary resource properties and Collector configuration are not imported. Summary information still includes resource identity and operational metadata: it is not anonymous. Datapoint names and availability vary by DataSource; choose names meaningful to the interface or component rather than assuming every instance provides the same metrics. The [instance API](https://www.logicmonitor.com/support/getting-datasource-instance-details) and [data API](https://www.logicmonitor.com/support/getting-data) describe this resource hierarchy. ## Read the saved observation The panel distinguishes active alert severity, collection availability and maintenance. Detailed snapshots also show acknowledgement and the affected DataSource, instance and datapoint. Acknowledgement means someone has acknowledged an alert; it does not mean the condition has recovered. Scheduled downtime can suppress notifications while monitoring continues. A Collector problem means the resource's current observations may be unavailable. None of these states should be read as a general guarantee of system health. See [LogicMonitor's scheduled downtime rules](https://www.logicmonitor.com/support/sdt-tab). Alerting flags describe the object's local setting. The panel does not resolve every inherited group or DataSource alert-suppression rule; check the provider when deciding whether notifications should be sent. Maintenance windows on an instance panel describe its parent device and can include other monitoring scopes; they are not all specific to the selected instance. A group panel reads schedules for the selected group, without individually retrieving schedules for every member device or child instance. Use each alert's downtime flag and the portal for precise maintenance scope. Counts describe the active alerts and resources retrieved within the connection's permissions and selected scope. If pagination cannot be completed, the panel marks its coverage as partial; do not treat a lower bound as the full total. Unknown, missing or unreadable information is not zero. Last NetFlow receipt, if displayed, describes NetFlow specifically and does not establish the freshness of all monitored data. Optional instance metrics request the past hour and show the latest 12 samples per selected datapoint, together with the requested and returned windows, sample interval and missing-data information. Summary mode uses generic metric labels; Detailed mode includes the selected datapoint names. > [!NOTE] > Metric samples are never labelled with a unit. The value column is headed "Value (unit unspecified)" and the Units row reads "Unit not supplied by LogicMonitor; untransformed provider values". Blueprintr shows the raw numbers without inferring a unit, converting the value or deriving a rate. Consult the DataSource definition in LogicMonitor to interpret the sample correctly. Opening the stratum displays a saved snapshot and does not call LogicMonitor. Re-fetch with the circular-arrows icon on the linked row ("Re-fetch this integration's data"). After five minutes, the snapshot indicates that another refresh is needed. This is a freshness reminder, not automatic polling. Each metric has its own sample time; fetching a panel now does not make an older provider sample current. Use the source link to continue investigating the selected device, group or instance in LogicMonitor. A link does not grant access: the provider still applies the signed-in user's own permissions. Extended graphs, alert messages, acknowledgement and configuration remain in the portal. ## Recover from failures and disconnect A failed required read does not become an empty, healthy observation. A failed refresh keeps the previous snapshot and shows a warning. An optional section that cannot be retrieved is marked unavailable or partial. Check resource permissions and token expiry, then verify the connection again. For rate limits, wait before retrying; repeated browsing and refreshes consume the portal's API capacity. Use `Rotate token`, then `Verify & replace`, to rotate a token. The replacement is verified before it replaces the working credential. `Suspend` stops search and refresh while saved snapshots stay readable; `Resume` restarts it. The broken-link icon on the linked row removes the current binding; delete the connection after its bindings have been removed. Moving to a different portal requires reviewing and relinking object identities; device IDs are not portable between companies. ## Sharing and retained copies Provider data is fetched with the connection's credential. Readers are governed by the configured Blueprintr audience, not their individual LogicMonitor permissions. Approved reader-visible content can reach anonymous readers of a public blueprint, embeds, exports and configured search or AI features. Editor-only panels use Blueprintr's existing audience controls for those reader surfaces; editor exports and backups retain the source. Changing a setting affects later successful fetches. Restricting the audience does not rewrite panels already saved: refresh each linked tab successfully, or unlink it, before treating existing LogicMonitor content as editor-only. It does not redact independent versions, templates, exports or copies already shared. Unlinking, suspending or revoking a token cannot recall those copies. Authored stratum names, link labels and notes remain your content and need a separate audience review. ## Validate before operational rollout Automated tests exercise simulated provider responses; they do not establish that a particular LogicMonitor tenant grants the expected access. Before relying on this integration operationally, verify a least-privilege token, duplicate names, an exact instance, direct and descendant group membership, multi-page results, special-character searches and a permission-denied read in a representative portal. Confirm metric units and gaps, scheduled downtime, source links, freshness reminders and the published-reader audience. Check rate limits and any feature entitlements with that tenant. The integration does not import LogicMonitor topology or create monitoring configuration. --- # Continuum Integrations: Auvik URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/auvik > Network device context and alert history beside the component they explain. Link an Auvik Network Management device to the stratum for a switch, firewall, server or other component in your diagram. The saved panel helps readers identify the device, understand its network context and review recent alert events. Open Auvik for its current dashboards, detailed investigation and operational actions. Continuum Link does not redraw the diagram. This connection uses `Auvik Network Management`. It does not import Auvik SaaS Management applications, users, licences or security logs. ## Connect and select sites 1. You need an Enterprise licence, edit access to the blueprint and `continuum_integrations.manage` on the connection's organisation or team. 2. Create a dedicated Auvik service account with a custom API-only role and access to the intended sites. Give it read access to `API – Device info`, `API – Alerts` and `API – Tenants`. Auvik's built-in `Read Only` role does not grant these API permissions, and its built-in `API Access Only` role grants unrelated reads and tenant editing. Build a custom role with only the reads listed above. See [Auvik's service-account guidance](https://support.auvik.com/hc/en-us/articles/48529381648660-API-Access-Only-Role-and-Service-Account-Configuration-in-Auvik). 3. In Auvik, open `My Profile → Manage API Credentials` and generate the key. In Blueprintr, open `Settings → Continuum` on the organisation or team, go to `Operational integrations`, choose `New integration`, and select `Auvik` as the `Type`. Give the connection a `Name`, then enter `Region`, `Username` and the API key. 4. Review `Auvik snapshot audience`, `Saved detail` and the optional sections, then choose `Connect & verify`. To restrict the connection to named sites, select `Configure` on its row afterwards and open `Auvik site scope`. Clear `Include every accessible site`, choose `Load Auvik sites`, tick the sites, then choose `Verify & save settings`. Ticking a site does not save it on its own. `Exact site IDs` accepts up to 25 comma-separated leaf-site IDs instead. Changing the region or username requires saving and verifying again before the site list will load. 5. Save the blueprint and open the relevant stratum's `Continuum Link` controls from its `+ Add tab` menu. Search by device name, IP address, serial number or stable Auvik API ID and review the site, identity and matching evidence before linking. `Suggest integrations…` on a shape and `Scan for integrations` across the blueprint both offer candidates; selecting one is still an editor decision. > [!IMPORTANT] > `Region` is the cluster label in your Auvik API hostname, `auvikapi..my.auvik.com`, for example `us1` or `eu1`. It is not your customer domain and it is not a URL. Entering a URL is refused with "Enter the Auvik cluster region, such as us1; do not enter a URL." `Include every accessible site` includes current and future sites accessible to the Auvik service account. Clear it and select exact sites to keep a connection focused on one customer or environment. The list uses Auvik's site labels or domain prefixes alongside stable IDs. Selecting a parent organisation is not a substitute for selecting its leaf sites. Device names and private IP addresses can repeat across sites: check the site and stable device ID before attaching a panel. Verification checks inventory and alert access for each explicitly selected site. Optional capabilities are checked on one representative site; the result names that site. The first fetch and later refreshes check the actual linked device and available data, so a verified connection can still have unavailable optional observations on another device or site. ## Choose the saved information | Setting | Default | What it changes | | --- | --- | --- | | Auvik snapshot audience | Blueprint editors | Keeps the imported panel visible to blueprint editors. Choose `All Blueprint readers` only after approving the information for everyone who can read the blueprint. Unlike Datadog, LogicMonitor and Rootly, Auvik's reader option carries no "approved metadata" suffix. | | Saved detail | Summary | Keeps device and site identity, monitoring state, hardware, firmware and event counts. Detailed mode also permits internal IP addresses, serial numbers, network identities and alert names; review the resulting preview before sharing it. | | Interfaces and connected peers | Off | Adds counts of disabled or impaired interfaces and history for up to two selected enabled interfaces with known peers. Detailed mode also shows up to 12 important interfaces with available peer and network relationships. Requires read access to `API – Interface info`. | | Maintenance context | Off | Adds available running-configuration backup metadata and lifecycle context. Requires the corresponding device-detail and hardware-lifecycle reads. Configuration bodies are not imported. | | Performance summary | Off | Adds device availability and outage plus interface utilisation and discard observations over the previous 24 complete UTC hours. The Auvik account must expose the statistics and the service account must be permitted to read them. | | Alert history period | 7 days | Chooses a 1, 7 or 30-day history window. This does not define which alerts are currently active. | Optional sections can be unavailable because of account permissions, discovery coverage or product availability. They do not require write access. Ask the Auvik administrator to grant the specific read permission or leave the section off; granting an administrative role is unnecessary. ## Read the panel in context The device status is Auvik's observation at the fetch time. An online device can still have a fault, and a device marked unmanaged is not evidence of monitoring coverage. Missing information means unknown or unavailable, not healthy. Alert history contains events that Auvik recorded during the selected window. Created, resolved, paused and unpaused events retain their meanings. A created event is not presented as proof that its alert is still active. Dismissal and dispatch are separate properties. Use the event's source link to check the current record in Auvik when using Detailed mode; Summary retains event counts and the device's dashboard link. The detailed timeline shows the most recent 20 retrieved events, and the scope states which interfaces were included. Detailed mode also caps the network membership table at 20 networks and the address list at 12, each with a coverage row stating what was omitted. Interfaces distinguish whether a port is administratively enabled from its observed operational state. An administratively disabled port is different from a failed uplink. Peer and network relationships describe Auvik's discovered inventory; they do not establish that a route is reachable or that redundancy will work. Maintenance information helps prepare a replacement or change. A backup timestamp does not prove that a restore will succeed. Lifecycle information can include Auvik's information provider, confidence and source links; review those sources before treating a predicted end-of-support date as a vendor commitment. Performance observations cover the previous 24 complete UTC hours with hourly samples. The panel states its period and units; missing hours remain gaps, and an hourly average is not an instantaneous measurement or a service availability guarantee. ## Refresh and recover Opening the tab shows its saved snapshot. Re-fetch with the circular-arrows icon on the linked row ("Re-fetch this integration's data"). After five minutes the snapshot is due for refresh; this is a reminder, not automatic polling. A failed refresh retains the previous snapshot with a warning. An unreadable or incomplete optional section is labelled rather than turned into zero alerts or a successful check. If access fails, check the account's API role, selected sites and region. An Auvik account move can require a new region. Unlink every linked Auvik device before changing it: "Unlink existing Auvik devices before changing region, then review and link their identities in the new region." For a rate limit, wait before refreshing again. Choose `Rotate token` on the connection's row, then `Verify & replace`, which verifies a replacement credential before it swaps. A replacement is refused when more than 50 linked Auvik identities need checking; move some links to another verified connection first. `Suspend` stops search and refresh while leaving snapshots readable, and the broken-link icon removes the current binding. Delete a connection after removing its bindings. Site or credential changes must preserve access to existing links. If a new scope excludes a linked site, keep it selected or unlink that device first. Older links without a saved site identity need to be reviewed and linked again before their scope or credential identity can change. ## Sharing and retained copies The panel is fetched with the service account's access. Readers do not need their own Auvik account to see an approved reader-visible snapshot. Opening a source link still requires their own Auvik access. Editor-only panels use Blueprintr's existing audience controls for readers, embeds, viewer exports and search or AI indexing. Approved reader-visible content follows the blueprint's audience, including the public on a public blueprint. Editor exports and backups can retain the source information. Settings apply to later fetches. Restricting the audience does not rewrite panels already saved: refresh each linked tab successfully, or unlink it, before treating existing Auvik content as editor-only. Settings do not retract previous exports, version history, templates or other independent copies, or redact authored titles and notes outside the managed panel. Revoking a key, suspending a connection or unlinking does not recall existing copies. Before operational use, compare a known device and its history with your own Auvik account, confirm the selected sites and optional permissions, and check the reader view. Some Auvik API capabilities are documented as beta. Local tests do not establish your account's access or live data completeness. --- # Continuum Integrations: ServiceNow CMDB URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-link/servicenow-cmdb > The configuration item behind a shape, its relationships and its open work, beside the stratum that explains it. Link a ServiceNow configuration item (CI) to the stratum for the component it records. The saved tab shows what the CMDB believes about that component: its class, lifecycle, environment, the groups that own and support it, when Discovery last saw it, how it relates to other CIs and, if you choose, the open incidents and changes recorded against it. Changing the record stays in ServiceNow. Any record in `cmdb_ci` or a class that extends it can be linked: servers, network gear, application services, business applications. IP-address and network-adapter records are found too, but rank below the device with the same name. ## Connect 1. You need an Enterprise licence, edit access to the blueprint, and `continuum_integrations.manage` on the connection's organisation or team. 2. In ServiceNow, create a dedicated integration user. Give it the `cmdb_read` role, which reads every CMDB table. If the instance enables the REST API ACL, add `snc_platform_rest_api_access` as well. Tick `Web service access only` on the user, and keep it out of any policy that demands interactive multi-factor authentication: the connection signs in with the password on every call and cannot answer a prompt. 3. In Blueprintr, open `Settings → Continuum` on the organisation or team, go to `Operational integrations`, choose `New integration`, and select ServiceNow CMDB as the `Type`. 4. Enter the `Instance URL` (`https://acme.service-now.com`, reachable from the public internet), the `Username`, and the password, set the options below, and choose `Connect & verify`. ### Connection options Each dropdown opens on `Use default`, which stores the first option. | Field | Options | Effect | | --- | --- | --- | | `Snapshot audience` | Blueprint editors (recommended), All Blueprint readers | Who can read the saved tab. Readers includes anonymous readers, embeds and exports on a public blueprint | | `Saved detail` | Detailed (default), Summary | Summary withholds the IP address, FQDN, MAC address, serial number, asset tag, location and description from the tab and from its saved data | | `Open work` | Not imported (default), Open incidents and changes | Adds open incident and change counts for the CI, with the five newest task numbers and links to the filtered lists | Verification reads one record from each table the connection will use: `cmdb_ci`, `cmdb_rel_ci`, and with open work switched on, `incident` and `change_request`. A table the user cannot read fails verification with its name and the role that grants it, for example "The ServiceNow account cannot read cmdb_rel_ci (HTTP 403 Forbidden). Grant cmdb_read, plus snc_platform_rest_api_access when the REST API ACL is enabled." Open work needs `sn_incident_read` and `sn_change_read` from the ITSM Roles plugin, or `itil`. Those roles may count as a fulfiller licence on your instance; check with your account team before granting them. On a domain-separated instance the user sees only its own domain, and so does the tab. ## Link a configuration item Open the stratum and choose `Continuum Link`, then search by any of these. | What you type | What happens | | --- | --- | | A name, FQDN, serial number or asset tag | Substring match on those four columns, up to 20 results | | An IP address | Exact match on the CI's IP address column, plus a name match | | A MAC address, with colons or hyphens | Exact match on the MAC address column in either form | | A 32-character sys_id | The record itself | Each result shows its class, IP address, location and lifecycle, so two records with the same name can be told apart, and its sys_id in the preview. `Scan` and `Suggest` resolve hostnames, FQDNs, IP addresses, serial numbers and MAC addresses from the diagram. Identifiers of one kind are folded into a single query of up to 50, so a full site drawing costs a handful of reads. ## What the panel shows | Section | Contents | | --- | --- | | Configuration item | Name, class, environment, classification, lifecycle stage, install status, operational status, model, manufacturer, and in Detailed mode the location, FQDN, IP address, MAC address, serial number, asset tag and description, then the record's last update in UTC | | Ownership | Support group, managed-by group and change group. People are never imported | | Discovery and attestation | When Discovery last and first saw the record and from which source, or "Never", and the attestation status and date | | Open work | With open work switched on: open incident and change counts, then the five newest of each with priority, state and a link | | Relationships | Up to 25 relationships as seen from this CI ("Depends on", "Used by", "Located in"), with the other CI's name and class, and the total when there are more | | In ServiceNow | Links to the record's own form, the Dependency Views map and, with open work on, the filtered incident and change lists | The headline reads the install status and operational status together, for example "Installed · Operational". ServiceNow keeps the two fields independently, so a record retired through install status is shown with a warning even while its operational status still says Operational. On order, in stock, in maintenance, repair, standby and ready states are shown as informational. The CSDM lifecycle stage appears as its own row. Environment is the record's own environment field. Older records that only set the legacy "Used for" field show that value instead. Dates come from the stored value and are labelled UTC. If an instance returns only display values, the date is shown as ServiceNow formatted it, without a zone label. ### Counting and its limits Relationships stop at 25; the section title then reads "Relationships (25 of 61)". Open incidents and changes are read up to 25 each; the count states how many were retrieved when the total is higher. ## What is never imported Person fields (owned by, managed by, assigned to, attested by), comments, work notes, incident and change descriptions, and any custom column. Only the named columns are requested, and the saved data is projected from them, so a column the instance returns anyway never reaches the blueprint. ## Audience New connections save snapshots for blueprint editors only. Choose `All Blueprint readers` only when the class, ownership, relationships and, in Detailed mode, the addresses and serials are appropriate for everyone who can read the blueprint. Changing the audience applies to later refreshes and does not recall copies already shared, exported or answered by AI. ## Refreshing and recovery Snapshots become due for refresh after one day, which is a reminder rather than automatic polling. A failed CI read keeps the previous snapshot and adds a warning. A relationship read or task read that fails marks the panel incomplete and says which table could not be read; the rest of the panel still saves. A rate limit answered by ServiceNow with `Retry-After` is reported with the number of seconds and is never retried in a loop. --- # Continuum Integrations: Continuum Local URL: https://docs.blueprintr.io/foliums/continuum-integrations/continuum-local > The on-premise agent that lets Continuum Link read monitoring systems Blueprintr cannot reach. Continuum Local is an agent you run inside your own network. It lets [Continuum Link](/foliums/continuum-integrations/continuum-link) read on-premise systems that are not exposed to the internet, and it can sweep your network for SNMP devices. The [Continuum Local guide](/foliums/blueprintr-user-guide/continuum/local-agent) in the Blueprintr user guide covers installing, configuring and running it. It is the on-premise half of Continuum Link and sits behind the same gate: the organisation that owns the agent needs an Enterprise plan (a team's agent uses its parent organisation's plan), and you need `continuum_integrations.manage` on that organisation or team. > [!IMPORTANT] > Continuum Local is separate from [Continuum Cloud](/foliums/continuum-integrations/continuum-cloud). It discovers no cloud resources and never draws on a canvas. It serves connector panels on strata and runs network sweeps. ## What it serves SolarWinds Orion, Zabbix, PRTG Network Monitor, Checkmk, Icinga 2, ManageEngine OpManager, WhatsUp Gold, NetBox, Infoblox and Veeam Backup & Replication. Each appears in the connector list and stays disabled until an agent that can serve it is online. The [connector reference](/foliums/continuum-integrations/continuum-link/connector-reference) lists what each one asks for and what its panel shows. ## How it connects The agent dials out over HTTPS on port 443 to `blueprintr.io` and `agents.blueprintr.io`, directly or through a proxy. Nothing connects inward, so no inbound firewall rule is needed. It suits private and firewalled networks, not air-gapped ones: a host with no outbound path to Blueprintr cannot run it. [Network requirements](/foliums/blueprintr-user-guide/continuum/local-agent/network-requirements) lists every connection and port. ## Credentials Blueprintr never stores a credential for an on-premise system. By default each credential is in the agent's `config.json`, or in an environment variable or file it refers to, and never leaves your network. If the agent's configuration allows it, credentials can also be sent from the Continuum Local panel instead: they pass through Blueprintr to the running agent, which must be connected to `agents.blueprintr.io` at the time, and are kept only on the agent. The agent relays only requests it recognises as reads for each product, and only to the hosts its configuration lists. The [security model](/foliums/blueprintr-user-guide/continuum/local-agent/security) says what the agent enforces, and what Blueprintr stores, who can see it and how long it is kept. ## Getting and registering it Download the agent from the [Continuum Local download page](https://blueprintr.io/download/continuum-local) while signed in to an account on an Enterprise plan. It comes as Debian and RHEL packages, a Windows installer, a container image, a Helm chart and a single file for a host with Node.js 24, and every release is signed. Register it from **Settings → Continuum → Continuum Local** on the organisation or team. Choose **Add an agent**, copy the enrolment token, which is shown once and expires after 24 hours, and put it in the agent's configuration. [Installing Continuum Local](/foliums/blueprintr-user-guide/continuum/local-agent/install) has the steps for each platform. ## Network sweeps With a `discovery` block in its configuration, an agent sweeps the address ranges you allow for SNMP devices, over SNMP v1, v2c or v3. Start or schedule a sweep from **Network sweeps** below the Continuum Local panel. Blueprintr can narrow a sweep to some of the agent's ranges but never widen it, and the SNMP credentials stay on the agent. Blueprintr keeps sweep results for 90 days, and each agent's latest complete sweep until a newer one completes. [Network discovery](/foliums/blueprintr-user-guide/continuum/local-agent/network-discovery) says what a sweep reads. ## The full guide > [!TILES 3] > > === [Installing](/foliums/blueprintr-user-guide/continuum/local-agent/install) > > Prerequisites, sizing, each platform, and enrolling the agent. > > === [Network requirements](/foliums/blueprintr-user-guide/continuum/local-agent/network-requirements) > > Outbound connections, ports, proxies and TLS inspection. > > === [Configuration reference](/foliums/blueprintr-user-guide/continuum/local-agent/configuration) > > Every setting in `config.json`, secret references and the check command. > > === [Security model](/foliums/blueprintr-user-guide/continuum/local-agent/security) > > What the agent enforces, and what Blueprintr stores, who sees it and for how long. > > === [Network discovery](/foliums/blueprintr-user-guide/continuum/local-agent/network-discovery) > > What an SNMP sweep reads, its limits, and running and reviewing sweeps. > > === [Releases and verification](/foliums/blueprintr-user-guide/continuum/local-agent/releases) > > Versions, signatures, SBOMs and which releases are supported. > > === [Upgrading and removing](/foliums/blueprintr-user-guide/continuum/local-agent/upgrade-and-uninstall) > > Upgrades, rollbacks, credential rotation and uninstalling. > > === [Troubleshooting](/foliums/blueprintr-user-guide/continuum/local-agent/troubleshooting) > > Logs, error codes and common failures. > > === [Questions and limitations](/foliums/blueprintr-user-guide/continuum/local-agent/faq) > > Air-gapped networks, redundancy, a lapsed plan and other limits. --- # Blueprintr User Guide: Welcome URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide > Blueprintr publishes documentation with a diagram at the centre of it, and keeps the two attached. Blueprintr publishes documentation built around a diagram rather than beside one. You draw the system, attach the detail to the parts of the drawing it describes, and publish the result as one thing. > [!TILES 3] > > === [Publish in ten minutes](/foliums/blueprintr-user-guide/start/publish-in-ten-minutes) > > Sign in, draw something, publish it, in one pass. > > === [The vocabulary](/foliums/blueprintr-user-guide/start/vocabulary) > > Blueprint, stratum, vellum, folium, podium, atrium: what each one is. > > === [Where content lives](/foliums/blueprintr-user-guide/start/where-content-lives) > > Personal, team or organisation, chosen at creation. ## Pick a starting point | You want to | Go to | | --- | --- | | Draw a diagram and publish it | [Your first blueprint](/foliums/blueprintr-user-guide/start/your-first-blueprint) | | Attach detail to parts of a diagram | [Strata](/foliums/blueprintr-user-guide/strata) | | Build a documentation site like this one | [Documentation sites](/foliums/blueprintr-user-guide/foliums) | | Present a diagram to a room | [Podium](/foliums/blueprintr-user-guide/sharing/podium) | | Put a diagram in someone else's page | [Embedding](/foliums/blueprintr-user-guide/sharing/embedding-blueprints) | | Set up a workspace for a team | [Setting up an organisation](/foliums/blueprintr-user-guide/teams/setting-up-an-organisation) | | Keep a cloud diagram matching live infrastructure | [Continuum](/foliums/blueprintr-user-guide/continuum) | | Drive Blueprintr from code or an agent | [Developers](/foliums/blueprintr-user-guide/developers) | ## What the pieces are A **blueprint** is the published unit: one or more diagram tabs, the prose around them, and the files they reference. A **stratum** is detail bound to a single shape, opened by clicking that shape. **Vellum** is the diagram editor. A **folium** is a multi-page documentation site. This guide is one. --- # Blueprintr User Guide: Start URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/start > From an empty account to a published page, with the vocabulary you need on the way. Read the first two pages if you are in a hurry. > [!TILES 2] > > === [Publish in ten minutes](/foliums/blueprintr-user-guide/start/publish-in-ten-minutes) > > The whole loop, once. > > === [The vocabulary](/foliums/blueprintr-user-guide/start/vocabulary) > > Seven words that everything else is built from. > > === [Your first blueprint](/foliums/blueprintr-user-guide/start/your-first-blueprint) > > The three-step editor in detail. > > === [Where content lives](/foliums/blueprintr-user-guide/start/where-content-lives) > > Personal, team or organisation, and how to move something later. > > === [The dashboard](/foliums/blueprintr-user-guide/start/dashboard) > > What each rail item is for. --- # Blueprintr User Guide: Publish in ten minutes URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/start/publish-in-ten-minutes > Sign in, draw something, publish it. The whole loop once, from account to live page. One complete pass through Blueprintr, from registration to a published page. Walk it as slides first. Five screens, with the control under discussion ringed on each: ![blueprint:josh/publishing-your-first-blueprint](https://blueprintr.io/embed/josh/publishing-your-first-blueprint?exclude=cmtp5f2me0002cp57fc6rmk9m&hideTabBar=1#h=620) Then the same loop in writing: > [!STEPS] > > === Sign in and finish your profile > > Register at [blueprintr.io](https://blueprintr.io/register) or sign in with > an existing account. New accounts are sent to **Complete your profile** > first: a handle and a few interests. The handle becomes the first segment > of every URL you publish, so pick one you can live with. > > === Start a blueprint > > From the dashboard, choose **Create blueprint**. You land in step 1, > **Content**. > > === Give it a title and draw > > Type a title, then draw on the canvas. The first tab of a blueprint must be > a diagram. Vellum is the default editor; [other engines](/foliums/blueprintr-user-guide/vellum/draw-io-excalidraw-and-mermaid) are available from > the engine menu. > > === Attach detail to a shape > > Right-click any shape and choose **Add Stratum…**, then write a couple of > sentences. Do it on the first pass rather than saving it for later. > > === Move to Resources & Strata > > Step 2 collects everything alongside the diagram: strata, further diagrams, > and uploads. It can be skipped entirely on a first blueprint. > > === Publish > > Step 3 is **Publish**: tags, visibility, and pre-flight checks. Choose > **Public** if you want a shareable link, **Private** to keep it to yourself. > Fix anything the pre-flight flags, then publish. Your blueprint is now at `blueprintr.io//`. ## What to do next > [!TILES 3] > > === [Your first blueprint](/foliums/blueprintr-user-guide/start/your-first-blueprint) > > The same three steps, in detail, with the parts this page skipped. > > === [Strata](/foliums/blueprintr-user-guide/strata) > > The layered-detail model in full. > > === [Embedding](/foliums/blueprintr-user-guide/sharing/embedding-blueprints) > > Put what you just published inside another page. --- # Blueprintr User Guide: Vocabulary URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/start/vocabulary > Blueprint, stratum, vellum, folium, podium, atrium and portfolio are the seven words the rest of the product is built from. Blueprintr uses a small number of made-up words. They are all names for ordinary things. ![blueprint:josh/how-blueprintr-fits-together](https://blueprintr.io/embed/josh/how-blueprintr-fits-together#h=540) | Word | What it is | | --- | --- | | **Blueprint** | The published unit. One or more tabs, at least one of which is a diagram, plus the prose and files around it. | | **Vellum** | The diagram editor. Also the default engine for any new diagram. | | **Stratum** | Detail bound to one shape on a diagram. Click the shape, the detail opens. | | **Folium** | A multi-page documentation site with a nav tree and an automatic contents list. This guide is a folium. | | **Podium** | A diagram presented as slides. | | **Atrium** | An organisation's searchable homepage: its blueprints, foliums and people in one place. | | **Portfolio** | A folder for related content. Portfolios hold blueprints, diagrams, links, notes, and other portfolios. | ## How they relate You draw in **Vellum**. The drawing becomes a diagram tab inside a **blueprint**. Shapes on that diagram carry **strata**. The blueprint is filed in a **portfolio** and published once. The same content is then readable on your profile, in an **Atrium**, embedded in a **folium**, or presented as a **podium**. > [!NOTE] > A diagram does not have to be a blueprint. Standalone diagrams sit under > **Dashboard → Diagrams** and can be embedded anywhere a blueprint can. ## Compendium and Continuum **Compendium** is the [template library](/foliums/blueprintr-user-guide/blueprints/templates-and-the-compendium). [**Continuum**](/foliums/blueprintr-user-guide/continuum) connects a diagram to a live cloud account so the drawing can be checked against what exists. --- # Blueprintr User Guide: Your first blueprint URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/start/your-first-blueprint > What each of the three editor steps is for, and what it will not let you skip. The blueprint editor has three steps. Move between them in any order; only publishing is gated. | Step | What it is for | | --------------------- | --------------------------------------------------------- | | 1. Content | The title, and the tabs. The first tab must be a diagram. | | 2. Resources & Strata | Strata, further diagrams, and uploaded files. | | 3. Publish | Tags, visibility, and pre-flight checks. | ## Step 1: Content A blueprint is a set of **tabs**. The first is always a diagram; after that, add Rich Text tabs for prose, Raw tabs for code or config, and further diagram tabs. Use tabs for separate views of the same subject: a logical view and a physical view, or one per environment. Do not use them as chapters of an essay; that is what [strata](/foliums/blueprintr-user-guide/strata) and [foliums](/foliums/blueprintr-user-guide/foliums) are for. > \[!TIP] > Clicking a shape while in step 1 offers to add a stratum to it. You do not > have to wait for step 2. ## Step 2: Resources & Strata Everything that sits alongside the diagram: > \[!FIELDS] > > > \[!FIELD Strata|per shape|optional] > > > > Detail bound to shapes, on any diagram in the blueprint, including > > diagrams embedded inside rich text. > > > \[!FIELD Diagrams|any engine|optional] > > > > Further diagrams that are not tabs, referenced from prose or from a > > stratum. > > > \[!FIELD Files|upload|optional] > > > > Images and attachments, organised in folders. ## Step 3: Publish **Tags** are suggested from your content and can be edited. They drive discovery and the related-content rail. **Visibility** is one of three values: | Value | Who can read it | | -------- | -------------------------------------------- | | Public | Anyone, and it can be indexed | | Unlisted | Anyone with the link | | Private | You, and anyone the blueprint is shared with | **Pre-flight checks** run last. They catch the things that make a published blueprint look unfinished: an empty canvas, a tab with no content, a missing title. Publishing is blocked until they pass. > \[!NOTE] > Publishing sets a version. Later edits are drafts against that version, and > readers keep seeing the published one until you publish again. See > [versions and history](/foliums/blueprintr-user-guide/blueprints/versions-and-history). --- # Blueprintr User Guide: Where content lives URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/start/where-content-lives > Every blueprint belongs to you, a team, or an organisation. Choosing at creation time saves a move later. Everything you create is owned by exactly one of three things: **you**, a **team**, or an **organisation**. The choice sets who can edit it, where it appears, and what its published URL looks like. | Owner | Edited by | Published at | | --- | --- | --- | | You | You, plus anyone you share with | `blueprintr.io//` | | A team | The team's members, subject to their role | The team's page inside its organisation | | An organisation | Members with the right role | The organisation's Atrium, and its subdomain if it has one | ## Choosing at creation The wizard's **Publish to** selector sets the owner. It is seeded from whichever workspace you were looking at when you started. > [!IMPORTANT] > Ownership is not the same as visibility. An organisation blueprint can still > be public, and a personal blueprint can still be private. See > [the visibility model](/foliums/blueprintr-user-guide/sharing/visibility-model). ![blueprint:josh/three-independent-choices](https://blueprintr.io/embed/josh/three-independent-choices#h=640) ## Moving something later Reassigning an owner changes the published URL. Filing the same blueprint in a different [portfolio](/foliums/blueprintr-user-guide/organise/portfolios-and-folders) changes neither ownership nor the URL. > [!TIP] > If you are on your own and unsure, publish to yourself. A personal blueprint > can be moved into an organisation later; the reverse is harder because > permissions and audit history come with it. --- # Blueprintr User Guide: Dashboard URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/start/dashboard > What each item in the left rail is for, and which workspace you are looking at. The dashboard is scoped to **one workspace at a time**. The switcher at the top of the left rail decides whether you are looking at your own content, a team's, or an organisation's. It also seeds the **Publish to** selector when you start something new. ![blueprint:josh/finding-your-way-around-the-dashboard](https://blueprintr.io/embed/josh/finding-your-way-around-the-dashboard?exclude=cmtpwcfrt000t11r4bbzvglpj&hideTabBar=1#h=620) If you cannot find a blueprint, check that switcher. It may belong to a different workspace. ![The workspace switcher at the foot of the rail, showing Personal / Personal workspace](/api/folium-assets/cmtozqm4p0005ykw4e7kxl8c0/raw) ## The rail | Item | What is there | | --- | --- | | Dashboard | Recent and pinned content for the current workspace | | Blueprints | Every blueprint you can see in this workspace | | Vellum diagrams | Standalone diagrams, not attached to a blueprint | | Foliums | Documentation sites | | Portfolios | Your folders. **Main** is created automatically and cannot be deleted | | Bookmarks | Things you saved from anywhere on the platform | | Compendium | The template library | | Analytics | Views and engagement across the workspace | | Libraries | Icon packs and stencils available to your diagrams | | Licensing & Billing | Plan, seats, credits and invoices | | Settings | Account, security, and workspace preferences | **Customize sidebar** at the foot of the rail decides which of these are pinned, so your own rail may show fewer of them. ## The three buttons ![Create blueprint, Draw with Vellum and Import, stacked at the foot of the rail](/api/folium-assets/cmtozqlty0003ykw474bepv2l/raw) **Create blueprint** opens the three-step editor. **Draw with Vellum** creates a standalone diagram with no blueprint around it. **Import** opens the [import wizard](/foliums/blueprintr-user-guide/organise/importing-content) for content coming from Confluence, Notion, SharePoint, or a set of files. > [!TIP] > Start from a team or organisation workspace and anything you create there is > owned by it. See [where content lives](/foliums/blueprintr-user-guide/start/where-content-lives). --- # Blueprintr User Guide: Blueprints URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints > Tabs, strata, files and metadata, what a blueprint is made of, and which parts are required. A blueprint is one published thing made of several parts. Only the first is mandatory. | Part | Required | What it is | | --- | --- | --- | | Diagram tab | Yes, at least one | The drawing. Must be the first tab. | | Further tabs | No | More diagrams, prose, code, or an embedded folium or video. | | Strata | No | Detail bound to individual shapes. | | Files | No | Uploads, in folders. | | Tags | No | Discovery and the related-content rail. | | Version | Set on publish | What readers see while you edit the next draft. | ## Why a diagram is mandatory A blueprint without a diagram is a document, and there are better tools for documents. Requiring one in first position means every blueprint opens with a picture, and every reader gets orientation before prose. ## Tabs Tabs are separate views of the same subject, not chapters: a logical view and a physical view, one per environment, or the architecture and the sequence. Six kinds are available: | Kind | Holds | | --- | --- | | Diagram | A canvas, in any supported engine | | Rich text | Markdown with the full component library | | Raw | Code or config, line-numbered | | Folium | A live, browsable documentation site | | Video | A YouTube, Vimeo, Loom or direct video URL | | Source embed | Content pulled from a connected Confluence, Notion or SharePoint | > [!NOTE] > Continuum-managed components exist too, but they are written by > [Continuum](/foliums/blueprintr-user-guide/continuum) rather than by hand. > [!TILES 3] > > === [The editor](/foliums/blueprintr-user-guide/blueprints/editor) > > The three steps, and what each gates. > > === [Diagram tabs](/foliums/blueprintr-user-guide/blueprints/diagram-tabs) > > Adding, ordering and naming tabs. > > === [Publishing](/foliums/blueprintr-user-guide/blueprints/publishing-and-visibility) > > Visibility, pre-flight checks and versions. --- # Blueprintr User Guide: Editor URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/editor > Content, Resources and Strata, and Publish. The editor's three steps, and the checks that gate publishing. Open the editor with **Create blueprint** on the dashboard, or by editing an existing blueprint. The three steps can be visited in any order; only publishing is gated. ![blueprint:josh/the-editor-s-three-steps](https://blueprintr.io/embed/josh/the-editor-s-three-steps?exclude=cmtpw850a001klduybth3p0r1&hideTabBar=1#h=620) ## 1. Content Title and tabs. The first tab must be a diagram. The canvas fills most of the step. The engine menu switches between Vellum, draw.io, Excalidraw and Mermaid; Vellum is the default unless you have changed it in **Settings → General**. Right-clicking a shape offers **Add Stratum…** here, so detail can be written before the diagram is finished. ## 2. Resources & Strata Everything alongside the diagram: strata, further diagrams that are not tabs, and uploaded files organised into folders. Skippable on a first pass. ## 3. Publish > [!STEPS] > > === Review the suggested tags > > Generated from your content. Correct them: they drive discovery and the > related-content rail. > > === Set visibility > > [Public, unlisted, or private](/foliums/blueprintr-user-guide/blueprints/publishing-and-visibility). > > === Clear the pre-flight checks > > Empty canvases, empty tabs and missing titles are blocked here rather than > shipped. Each item in the list links to the thing to fix. > > === Publish > > Sets a version. Readers see that version until you publish again. > [!TIP] > **Preview** shows the reader's view without publishing, including strata and > tab chrome. Use it before the first publish rather than after. --- # Blueprintr User Guide: Content blocks URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/content-blocks > The component library available in every rich text surface, including callouts, steps, tabs, accordions, tiles and fields. Rich text in Blueprintr is markdown plus a component library. The same components work in a blueprint's Rich Text tabs, in a stratum's Rich tab, and on every folium page, including this one. Every component is written as a blockquote whose first line is a marker. That format survives the visual editor, and degrades to a readable quote in any plain markdown renderer. ## Callouts ```markdown > [!NOTE] > Ordinary supporting detail. ``` Available kinds: `NOTE`, `TIP`, `IMPORTANT`, `INFO`, `FAQ`, `TLDR`, `QUOTE`. > [!TIP] > A callout can link to a stratum: `> [!NOTE|stratum:abc123] Title`. ## Procedures ```markdown > [!STEPS] > > === Install the CLI > > Run the installer. > > === Authenticate > > Then sign in. ``` Steps are numbered automatically. A plain ordered list inside `[!STEPS]` works too. ## Panels and grids `=== Label` on its own line separates panels in every multi-panel component. | Marker | Renders | | --- | --- | | `[!TABS]` | Tabbed panels | | `[!CODETABS]` | Tabbed code blocks, one fence per panel | | `[!ACCORDIONS]` | Collapsible `
`, no JavaScript | | `[!COLUMNS n]` | An n-column responsive grid | | `[!TILES n]` | A tile grid, for navigation | | `[!CARDS]` | A card grid built from a markdown list | | `[!PANEL] Title` | An aside | ## API and reference ```markdown > [!FIELDS] > > > [!FIELD userId|string|required] > > > > The caller's user id. > > > [!RESPONSE createdAt|datetime] > > > > When the record was written. ``` ## Inline pieces | Marker | Renders | | --- | --- | | `[!BADGE green] Stable` | A small label. Colours: gray, blue, green, amber, red, purple, teal, pink | | `[!ICON rocket] Ship it` | A Lucide glyph, optionally labelled | | `[!TOOLTIP hint text]` | A term with a hover and focus hint | | `[!BANNER warning]` | A page-level banner. Types: info, warning, success, error | | `[!TREE]` | A file tree, from a nested markdown list | | `[!UPDATE v2.1.0\|2026-09-05]` | A dated changelog entry | | `[!FRAME]` | A decorative frame | | `[!DETAILS] Summary` | One collapsible block. `[!DETAILS\|open]` starts expanded | ## Audience splitting ```markdown > [!VISIBILITY agents] > > Notes for an AI agent reading this page. ``` Content marked `agents` is removed before the HTML reaches a human reader, and content marked `humans` is removed for an agent. Use it for machine-readable hints you do not want on the page. > [!IMPORTANT] > A malformed marker degrades to an ordinary blockquote rather than being > dropped. If a component renders as a plain quote, the marker line is wrong. ## Embeds | Syntax | Embeds | | --- | --- | | `![diagram:vellum](url)` | A diagram from an uploaded source | | `![blueprint:handle/slug](embed-url)` | Another blueprint | | `![video](url)` | A video | Diagram embeds can be resized by dragging their corners; the size is written back into the markdown. --- # Blueprintr User Guide: Diagram tabs URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/diagram-tabs > Adding, naming and ordering the tabs across the top of a blueprint. Tabs run across the top of a published blueprint and are the reader's main navigation. The first is always a diagram. ## Adding **Add tab** in step 1 offers the six kinds. The choice is fixed once content exists in the tab. ## Naming Tab names are the labels on the strip. Short nouns work: *Logical*, *Physical*, *Runtime*, *Data*. Avoid restating the blueprint title in every tab. > [!TIP] > A tab strip is easy to miss. If a later tab holds something essential, say > so in the first tab's prose. ## Ordering Drag to reorder. The first tab must remain a diagram: the editor will not let you drag a prose tab into first position. ## Engines Each diagram tab has its own engine, and a blueprint can mix them: a Vellum context diagram, a Mermaid sequence diagram, and an imported draw.io network diagram in one document. [draw.io, Excalidraw and Mermaid](/foliums/blueprintr-user-guide/vellum/draw-io-excalidraw-and-mermaid) covers the non-Vellum engines. ## Limits There is a hard ceiling on tabs per blueprint. If you are close to it, split the content into several blueprints in a [portfolio](/foliums/blueprintr-user-guide/organise/portfolios-and-folders), or move it into a [folium](/foliums/blueprintr-user-guide/foliums). --- # Blueprintr User Guide: Discussion and change requests URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/discussion-and-change-requests > Comment threads on a blueprint, and the proposal flow for changing one you cannot edit. A published blueprint has a place to talk about it, and a way to propose changing it. ## Discussion The **Discussion** tab holds topics. Anyone who can read the blueprint can open one; replies thread underneath. It is for questions and context: "why is this queue here", "is this still true after the migration". Discussion never changes the blueprint. ## Change requests A change request proposes an edit to a blueprint you do not have edit rights on. It is the analogue of opening a pull request against someone else's repository. ![blueprint:josh/change-request-lifecycle](https://blueprintr.io/embed/josh/change-request-lifecycle#h=520) | Status | Meaning | | --- | --- | | Open | Submitted, awaiting a decision | | Approved | Accepted, not yet applied | | Merged | Applied to the blueprint | | Rejected | Declined | | Withdrawn | Retracted by whoever raised it | > [!NOTE] > The AI docs agent files a change request rather than writing to a page > directly. A person still has to merge it. ## Reviews Organisations can require review before publishing. Where that is configured, a publish becomes a submission and the blueprint waits in [Reviews](/foliums/blueprintr-user-guide/teams/reviews-and-approvals) until someone with the right role approves it. --- # Blueprintr User Guide: Files and folders URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/files-and-folders > Uploads that belong to a blueprint, the size ceilings and storage quotas, and how an over-quota account recovers. Step 2 of the editor holds a column view for everything uploaded alongside the blueprint: images used in prose, attachments readers can download, and diagram sources. ## Folders Files have a folder path rather than sitting in actual directories, so reorganising never breaks a reference. Create a folder, drag files into it, rename freely. ## Referencing a file An uploaded image is inserted into rich text as an ordinary markdown image; other files become links. Both keep resolving after a move, a rename, and a publish. A file's URL is keyed on the **file's** id, not the blueprint's, because publishing reparents a draft's files onto the published blueprint and deletes the draft row. A blueprint id baked into a link would dangle after one publish. The URL also re-resolves storage on every request, so a reference that outlives a signed URL's expiry still works. ## Visibility > [!IMPORTANT] > Files inherit the blueprint's access, checked on every read against the > blueprint that owns the file *now*, never against one supplied by the caller. > A file on a private blueprint is not readable by an anonymous visitor even > with a direct URL, and a password gate covers the files too. > > Unlisted is not secret. Anyone with the link has the attachments. ## Ceilings | | | | --- | ---: | | One uploaded file | 20 MB | | One diagram document, including its thumbnail | 5 MB | The 5 MB document cap exists because the request body ceiling above it is 6 MB. A document that passed would fail on the way out. ## Quotas Storage is counted per owner, not per blueprint: | Owner | Quota | | --- | ---: | | Personal, free | 500 MB | | Personal, premium | 5 GB | | Team | 20 GB | | Organisation | 20 GB | | Organisation, enterprise | 100 GB | The total counts diagram documents and their thumbnails, externalised diagram images, attachments, blueprint asset files and custom icon packs. A draft and its published sibling share the same stored objects, so a published blueprint is not charged twice. It does not yet count inline markdown, version snapshots, templates, folium assets, podium assets, avatars and covers. The figure therefore runs below actual usage. > [!TIP] > A write that reduces your total is never rejected, whatever your quota says, > because deleting is how an over-quota account recovers. If you are blocked, > delete something and carry on. The limit does not need raising first. Both figures are shown on [billing and usage](/foliums/blueprintr-user-guide/account/billing-and-usage). --- # Blueprintr User Guide: Publishing and visibility URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/publishing-and-visibility > Draft and published states, the three visibility values, and what the pre-flight checks block. **Status** and **Visibility** are independent properties. Status is whether the blueprint has ever been published. Visibility is who may read it once it has been. ![blueprint:josh/publishing-states](https://blueprintr.io/embed/josh/publishing-states#h=500) ## Status A new blueprint is a **draft**: only you and anyone you share it with can see it, whatever its visibility says. Publishing makes the current content the live version. Editing afterwards creates a new draft against that version, so readers keep seeing the last published state until you publish again. ## Visibility | Value | Who can read it | Indexed | | --- | --- | --- | | Public | Anyone | Yes | | Unlisted | Anyone with the link | No | | Private | You, and anyone it is shared with | No | > [!IMPORTANT] > An unlisted URL is unguessable, not protected. Anything that would matter if > it leaked should be private. ## Pre-flight checks Publishing is blocked until these pass: - an empty diagram canvas - a tab with no content - a missing title - a rich tab containing only whitespace Each finding links to the thing to fix. ## Ownership and classification **Publish to** sets the owner: you, a team, or an organisation, as described in [where content lives](/foliums/blueprintr-user-guide/start/where-content-lives). Organisations can apply a [**classification**](/foliums/blueprintr-user-guide/teams/policies) that constrains what visibility a blueprint is allowed to have. Where a classification is set, you cannot publish above the ceiling it defines. --- # Blueprintr User Guide: Versions and history URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/versions-and-history > Every publish snapshots the blueprint, and restoring a snapshot replaces the current content. Publishing writes a version. The **History** tab lists them, newest first. > [!IMPORTANT] > Version history is a **Teams** feature. Without a Teams-licensed > organisation the tab explains that rather than opening. Publishing still > snapshots, but the snapshots cannot be browsed or restored. ## What a version holds A complete frozen copy of the blueprint at publish time: tabs, diagram sources, strata and files. It is not a diff, so an old version renders as it did rather than being reconstructed. ## Comparing The panel offers four views of a version: | | | | --- | --- | | Snapshot preview | The version rendered faithfully, as it was | | Diff | What changed against the previous version | | Compare with this version | Pick any earlier version as the baseline instead | | Raw JSON | The snapshot itself, when the rendered view is not enough | Diffing against the previous version answers "what did that publish change". **Compare with this version** sets an older baseline and answers "what has changed since the release we shipped against". ## Restoring > [!IMPORTANT] > Restore **replaces the current content**. It deletes and recreates the > blueprint's tabs, strata and files from the snapshot, and anything you have > not published since is gone. Confirming takes two clicks, and the second one > says so. History is append-only, so the state you replaced is itself still a version. A restore you regret is undone by restoring the one before it. ## Pinning An [embed](/foliums/blueprintr-user-guide/sharing/embedding-blueprints) can be pinned to a version rather than tracking the latest. A blueprint quoted in a report then stays as it was on the day it was quoted. --- # Blueprintr User Guide: Analytics URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/analytics > Where a blueprint's readers came from, how on-platform arrivals are attributed, and who can open the panel. Analytics is reported at two scopes from the same data: the **Analytics** tab on the blueprint itself, and **Dashboard → Analytics**, across everything you can see in the current workspace. ## Who can see it Analytics is owner data, and access is narrower than for the tabs beside it: the author, anyone who can edit the blueprint (team and org managers, plus explicit ACL-edit), or a moderator. A reader who can open the blueprint cannot open its analytics. > [!IMPORTANT] > It is a **premium** feature, and the plan that counts is the **author's**, > not yours. On an org-owned blueprint the author is still the creator, so a > team manager on a paid plan can find analytics unavailable because the person > who wrote it is not. ## What is counted | | | | --- | --- | | Views | All-time and over the selected window | | Unique visitors | Distinct sessions, not identified people | | Views over time | The trend across the selected window | | Referrer domains | Where off-platform traffic arrived from | | Agent traffic | Crawlers and AI agents, separated from humans | | Engagement | Including the helpful / not-helpful tally | Counts only. No reader is identified: the session is hashed, and nothing in the panel resolves to a person. ## Traffic sources On-platform arrivals are attributed to the surface that produced them, in the platform's own vocabulary: | Source | Reader arrived from | | --- | --- | | Direct link | A URL someone gave them | | Explore | Browsing Explore | | Explore (featured pin) | A featured position in Explore | | For-you feed | The personalised feed | | Fresh feed | The recency feed | | Following | Following you or your organisation | | Tag page | A tag they were browsing | | Author profile | Your profile page | | Bookmarks | Their own bookmarks | | Comments | A comment thread | | Resume reading | Picking a blueprint back up | | Direct / other | Everything unattributable | The breakdown shows whether a blueprint is found because people go looking for it, or only because you sent them the link. ## Embeds Views through an [embed](/foliums/blueprintr-user-guide/sharing/embedding-blueprints) are counted and attributed to the embedding page. > [!NOTE] > Anonymous readers on the embed surface leave nothing on their device: no > cookie is written there. Counts are aggregate rather than per-person, and no > setting changes that. --- # Blueprintr User Guide: Tags and discovery URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/tags-and-discovery > Four broad categories, a curated middle layer of sub-interests, and the freeform tags you attach at publish time. Tags are set on the Publish step. They drive search ranking, the related-content rail, and the public [tag pages](https://blueprintr.io/tags). ## The three layers Discovery runs on a three-level taxonomy. > [!FIELDS] > > > [!FIELD Broad category|four, fixed|top] > > > > Technical, Data & AI, Product & Design, and Game Design. > > > [!FIELD Sub-interest|32, curated|middle] > > > > Six to eleven per broad category, and the level a reader chooses between. > > Grows slowly and additively. > > > [!FIELD Tag|freeform|leaf] > > > > What you attach to a blueprint. Tags map upward into sub-interests. | Broad category | Covers | | --- | --- | | Technical | Architecture, cloud, networking, security, DevOps, APIs, embedded, hardware, robotics | | Data & AI | Pipelines, analytics, ML systems, generative AI, agents, MLOps, data modelling | | Product & Design | User flows, IA, wireframes, service blueprints, product strategy, UX research, design systems | | Game Design | Mechanics, level design, branching narrative, economies, AI behaviour, multiplayer | A reader picks broad categories and sub-interests, and your tags are matched against them. The match fills a signed-in reader's dashboard, reaching people who never searched for the blueprint. ## Suggestions At publish time a classifier proposes tags from your content, using embeddings and a language model, each with a confidence score. You accept the right ones and delete the rest. Every attachment records how it got there: | Provenance | Means | | --- | --- | | `manual` | You typed or picked it. No confidence score | | `llm-accepted` | Proposed by the classifier, accepted by you | | `llm-suggested` | Proposed, not yet confirmed. A review candidate rather than a live tag | An unaccepted suggestion is not attached. > [!IMPORTANT] > A wrong tag is worse than a missing one. It puts your blueprint in front of > people looking for something else, who bounce, lowering its ranking for the > people who did want it. Delete a plausible but wrong suggestion before adding > more right ones. ## Checking what stuck `list_blueprint_tags` on the [MCP server](/foliums/blueprintr-user-guide/developers/mcp-server) returns each tag with its slug, label, provenance and taxonomy placement. `set_blueprint_tags` replaces the whole set, so read before you write. --- # Blueprintr User Guide: Templates and the Compendium URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/blueprints/templates-and-the-compendium > Start from a prepared blueprint, and the three scopes a template can come from. The **Compendium** is the template library. A template is a complete blueprint, including its diagram, strata and prose, that you copy and edit. ## Three scopes What you see in the Compendium comes from three places: > [!FIELDS] > > > [!FIELD Personal|visible only to you|yours] > > > > Anything you captured for your own reuse. > > > [!FIELD Organisation or team|shared|your workspaces] > > > > Templates shared into an org or team you belong to. Everyone in the > > workspace starts from the same structure. > > > [!FIELD Blueprintr defaults|shipped|everyone] > > > > Starting points that come with the product. ## Using one Pick a template and create from it. You get a **private draft**: a blueprint draft filed into your own portfolios, or for a diagram template, a private vellum in your Drafts portfolio. The original is untouched either way. Creating from a template never publishes anything, however public the template was. ## Making one Any blueprint you can edit can become a template from its admin menu, and so can a standalone Vellum diagram, which gives a diagram-only starting point rather than a whole blueprint. Sharing it beyond yourself depends on the permissions your role gives you. > [!NOTE] > Through the [MCP server](/foliums/blueprintr-user-guide/developers/mcp-server), > `create_template_from_blueprint` and `create_template_from_vellum` always > produce a **personal** template. An agent can capture a template for you; it > cannot publish one to your organisation. ## A template is a snapshot Editing the source blueprint afterwards does not change the template, and editing a copy does not change the source. `get_template` reports what a snapshot contains before you commit to it. --- # Blueprintr User Guide: Vellum URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/vellum > Blueprintr's own diagram editor, covering the canvas, the two layers and the drawing tools. Vellum is Blueprintr's diagram editor and the default engine for any new diagram. It runs inside the blueprint editor, as a standalone diagram, and as a desktop app. ![blueprint:josh/drawing-in-vellum](https://blueprintr.io/embed/josh/drawing-in-vellum?exclude=cmtpw6i3w0003lduy20wilmv1&hideTabBar=1#h=640) ## Two layers Every shape sits on one of two layers. | Layer | For | | --- | --- | | **Blueprint** | The diagram itself. Shapes here can carry strata, be linked to, and be read by Continuum. | | **Notes** | Working annotations. Stickies, questions, things to resolve. | ![The layer pills at the bottom left of the canvas: Notes, Both and Blueprint, with Both selected](/api/folium-assets/cmtozmo5h0001ykw4si3tkb4l/raw) Press W to switch which layer you draw on. The pills at the bottom left control which layers you can *see*, so you can hide the noise without deleting it. Press Shift Cmd P to promote a Notes item to the Blueprint layer. ## Getting around Cmd K searches every shape, icon and command. Cmd 0 resets the view; Cmd 1 fits everything to the viewport. ## Tools ![The Vellum toolbar: shape, connector, text, sticky, pen and icon tools, each labelled with its keyboard shortcut](/api/folium-assets/cmtozlgck00064yqzbj6v3zjs/raw) | Key | Tool | | --- | --- | | Q | Tool lock, keeping a drawing tool active so you can drop several shapes in a row | | 8 | Container, a frame you drag shapes into | | 9 | Freehand pen, for annotating over the canvas | | L | Laser pointer, a fading cursor trail for screen shares | > [!TIP] > The **Tips & shortcuts** button in the editor lists everything, always > current. The [shortcuts page](/foliums/blueprintr-user-guide/vellum/keyboard-shortcuts) > here mirrors it. > [!TILES 3] > > === [Shapes and connectors](/foliums/blueprintr-user-guide/vellum/shapes-and-connectors) > > What you can draw, and how connectors attach. > > === [Icon packs](/foliums/blueprintr-user-guide/vellum/icon-packs-and-libraries) > > Thousands of vendor icons, plus your own. > > === [Other engines](/foliums/blueprintr-user-guide/vellum/draw-io-excalidraw-and-mermaid) > > draw.io, Excalidraw and Mermaid. --- # Blueprintr User Guide: Shapes and connectors URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/vellum/shapes-and-connectors > The shape kinds, how containers nest, and how connectors attach and route. ## Shape kinds | Kind | Notes | | --- | --- | | Rectangle, ellipse, diamond | The basics | | Polygon | Any number of sides, plus star, cloud, callout and semicircle presets | | Container | A frame that owns the shapes inside it. Moving it moves them | | Group | A selection bound together without a visible frame | | Icon | A glyph from an [icon pack](/foliums/blueprintr-user-guide/vellum/icon-packs-and-libraries) or your own SVG | | Service | A labelled cloud- or platform-service block | | Table | Rows and columns of cells | | Text | A standalone label with no box | | Note | A sticky, normally on the Notes layer | | Image | A raster image | | Freehand | Pen strokes | ## The inspector Selecting a shape opens the inspector on the right: stroke and fill, fill opacity, line weight, dash, prism, corner roundness and opacity under **Appearance**; font, size and text colour under **Typography**; then the shape's **Label** and **Body** text. ![The shape inspector: Appearance with stroke, fill, line, dash, prism, roundness and opacity, then Typography, Label and Body](/api/folium-assets/cmtp047zy00087bd7wthtspt2/raw) ## Containers A container owns its children. Drag the container and everything inside moves; resize it and the children stay put. Nesting is unlimited. Use one container per boundary, whether that boundary is a VPC, a team, or a process stage. Press 8 for the container tool, then drop shapes inside it. ## Connectors Hover a shape and drag from its edge to draw a connector to another shape. The endpoints stay attached when either shape moves. | Gesture | Effect | | --- | --- | | Alt + drag | Pull an endpoint free of any shape, with no auto-snap | | Shift + drag | Lock the connector to a horizontal or vertical line | | Right-click a waypoint | Delete that bend | | Tab | Reverse the connector's direction | Routing is straight, curved or orthogonal per connector. ## Moving and resizing | Gesture | Effect | | --- | --- | | Cmd + drag | Duplicate and drag the copy | | Alt + drag | Move without snapping | | Shift + drag | Lock to one axis | | Cmd + resize | Resize from the centre | | Shift + resize | Lock the aspect ratio | | Alt + rotate | Rotate freely, skipping the 15° snap | --- # Blueprintr User Guide: Styling and themes URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/vellum/styling-and-themes > Fills, strokes, fidelity, and keeping a diagram legible in both light and dark. ## Fills and strokes Shapes take a fill and a stroke from a named palette rather than arbitrary hex. Palette colours are theme-aware, so a diagram drawn in light mode stays legible in dark mode. > [!IMPORTANT] > A hand-picked hex fill will not adapt. Use the palette on any diagram that > will ever be read in dark mode. Anything on a public page will be. ## Make colour mean something Use each hue for exactly one category, consistently. Give data stores one colour, external systems another, and the subject of the diagram a third. A rainbow of shapes where colour means nothing is harder to read than no colour at all. ## Fidelity Fidelity controls how hand-drawn the rendering looks, from a clean technical line to a sketchier stroke. It is a per-shape property with a document default. Sketchy reads as "draft, still moving". Clean reads as "this is the answer". Keep one fidelity per diagram. ## Theme Shift Cmd D toggles the editor between light and dark. Check your diagram in both before publishing, to catch a fill that only works in one. --- # Blueprintr User Guide: Icon packs and libraries URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/vellum/icon-packs-and-libraries > Thousands of vendor icons, plus your own SVGs, available from the canvas search. Vellum ships with vendor icon packs covering the major cloud providers and a wide range of software and infrastructure vendors. ## Finding an icon Cmd K searches icons alongside shapes and commands. Type what the thing is, such as "lambda", "postgres" or "firewall", and insert the match. ## Your own SVGs Drag `.svg` files from your computer onto the canvas. They are added as icons and saved to your personal library, so they are available in every diagram afterwards. ## Libraries **Dashboard → Libraries** controls which packs are enabled for your workspace and holds the icons you have added yourself. Organisations can curate the list so a team's diagrams stay visually consistent. > [!IMPORTANT] > Icons already saved in a diagram are never rewritten. If a pack is later > disabled or its licensing changes, existing diagrams keep the artwork they > were drawn with. Only what you can newly insert changes. ## Licensing Vendor marks are supplied under the terms their owners publish, and those terms vary. Check [licences](https://blueprintr.io/licenses) before using a vendor mark in material you distribute outside Blueprintr. --- # Blueprintr User Guide: draw.io, Excalidraw and Mermaid URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/vellum/draw-io-excalidraw-and-mermaid > Three alternative diagram engines, when to use each, and what you give up. Vellum is the default engine. Three others are available from the engine menu on any diagram tab, and a blueprint can mix them. > [!ACCORDIONS] > > === draw.io > > The full draw.io editor, self-hosted. Choose it when you have existing > `.drawio` files, or when you need a stencil that only draw.io has. > > === Excalidraw > > Hand-drawn style, fast for rough thinking. Choose it for sketches that are > meant to look provisional. > > === Mermaid > > Diagrams as text. Choose it for sequence diagrams, state charts and > gantt charts, and for anything you would rather edit and diff as text. ## What you give up Strata bind to shapes on any engine, so layered detail works everywhere. The difference is elsewhere: | | Vellum | draw.io | Excalidraw | Mermaid | | --- | --- | --- | --- | --- | | Strata on shapes | Yes | Yes | Yes | Yes | | Live collaboration | Yes | No | No | No | | Continuum can write to it | Yes | No | No | No | | Icon packs | Yes | Own stencils | Limited | No | | Podium presentation | Yes | No | No | No | ## Changing your default **Settings → General** sets which engine new diagrams start in. > [!NOTE] > Switching engines on an existing tab does not convert the drawing. Pick the > engine when you create the tab. --- # Blueprintr User Guide: Live collaboration URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/vellum/live-collaboration > Several people on one Vellum canvas, the four roles, and how guests are admitted. Vellum diagrams saved to the cloud can be edited by several people at once. Cursors, selections and edits appear live. ## Roles Access is per-diagram, and the role decides what someone can do. | Role | Can | | --- | --- | | **Owner** | Everything, plus admin: toggle collaboration, mint invites, admit or deny guests | | **Write** | Full editing, no admin | | **Read** | Laser pointer, and their own sticky notes on the Notes layer | | **View** | Presence only. Their cursor is visible and they change nothing | A reviewer with the Read role can point at things and leave notes without any risk of moving your shapes. Notes left by others are badged with the author's name and colour. ## Inviting Open the collaboration panel from the editor. Each diagram has two invite links, one granting write and one granting read. Share the one you mean. ## Guests Someone who is not signed in and follows an invite lands in a **lobby** rather than the canvas. The owner sees them queued and clicks Allow or Deny. Signed-in users skip the lobby. ## Where it works Live collaboration is a Vellum feature. draw.io, Excalidraw and Mermaid tabs are single-editor. --- # Blueprintr User Guide: Desktop app URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/vellum/desktop-app > Two desktop builds, the signed-in app and Vellum Core, which edits local files with no account. [blueprintr.io/download](https://blueprintr.io/download) offers two different builds. > [!TILES 2] > > === Blueprintr Vellum > > The full editor in a native window, signed in to your account. Diagrams are > the same cloud saves as on the web. **Recommended.** > > === Vellum Core > > The canvas on its own, saving to local files, with no account and no network > connection. macOS, Windows and Linux. ## Blueprintr Vellum The same editor as the web version, without browser chrome, with its own dock icon and smoother rendering on high-refresh displays. Sign-in is handed to your normal browser rather than asked for in the window, so you authenticate where your password manager already works and the browser hands the session back. There is no separate desktop file type and no separate account. Open the same diagram in the browser and you see the same content, including anything a collaborator changed while you were in the app. The app updates itself and prompts you when a new version is ready. ## Vellum Core Core is the drawing canvas without the rest of Blueprintr. Diagrams are files on your machine. > [!IMPORTANT] > Core edits a file. Strata, publishing, collaboration and cloud history are > Blueprintr features and are absent from Core. Work done in Core reaches > Blueprintr only when you import it. ## Which to install Install Blueprintr Vellum if you have an account. Install Core when the work cannot leave the machine, or when you want a diagram tool with no service behind it. --- # Blueprintr User Guide: Keyboard shortcuts URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/vellum/keyboard-shortcuts > The full Vellum shortcut list, mirroring the editor's own Tips & shortcuts panel. On macOS the modifier is Cmd; elsewhere it is Ctrl. The editor's **Tips & shortcuts** button shows the same list with the right keys for your platform. ## Find and select | Keys | Does | | --- | --- | | Cmd K | Search every shape, icon and command | | Cmd F | Find and replace across labels, body text, table cells and connector labels | | Cmd A | Select everything visible | | Shift Cmd A | Deselect all | | Shift + click | Add or remove one shape from the selection | | F2 | Edit the selected shape's label | ## Transform | Keys | Does | | --- | --- | | Cmd G / Shift Cmd G | Group / ungroup | | Shift Cmd [ / ] | Send to back / bring to front. Plain [ and ] step one layer | | Shift Cmd . / , | Font size up / down by 1px | | Shift + H / V | Flip horizontally / vertically | ## Layers | Keys | Does | | --- | --- | | W | Switch the layer you draw on, Blueprint or Notes | | Shift Cmd P | Promote selected Notes items to the Blueprint layer | ## View | Keys | Does | | --- | --- | | Cmd 0 / 1 | Reset the view / fit everything to the viewport | | Cmd ; | Toggle the major-gridline overlay | | Shift Cmd D | Toggle light and dark theme | | PageUp / PageDown | Previous / next diagram tab | ## Tools | Keys | Does | | --- | --- | | Q | Tool lock | | 8 | Container tool | | 9 | Freehand pen | | L | Laser pointer | > [!TIP] > Drop `.svg` files from your computer straight onto the canvas. They become > icons, and are added to your personal library. --- # Blueprintr User Guide: Strata URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/strata > Detail bound to one shape on a diagram, opened by clicking that shape. A stratum is a block of detail attached to one shape. The reader clicks the shape and the detail opens beside it, with the diagram still on screen. ![blueprint:josh/anatomy-of-a-stratum](https://blueprintr.io/embed/josh/anatomy-of-a-stratum#h=520) In a long page of prose the reader has to work out which paragraph belongs to which box. A stratum removes the guess: the detail has exactly one owner, and the owner is the thing they are already looking at. ## What a stratum holds A stratum is a set of tabs, and each tab has a kind. One stratum can mix them: an overview in Rich, the config it describes in Raw, and a Subdiagram that opens the box up. | Kind | Holds | | --- | --- | | Rich | Markdown, images, embedded diagrams | | Raw | Code or config, rendered line-numbered | | Subdiagram | A diagram of its own, in any supported engine | | Image | A single image, uploaded or linked | | Embed | An embeddable URL. YouTube and Google Maps links convert automatically | ## Adding one Right-click the shape and choose **Add Stratum…**. The modal opens already bound to that shape. Right-click the same shape later and the item reads **Edit Stratum…**. Shapes carrying a stratum are marked on the canvas. > [!TIP] > A stratum does not have to be created from the shape. The link picker binds > an existing stratum to any shape on any surface in the blueprint, including > diagrams embedded inside rich text. See [Linking strata](/foliums/blueprintr-user-guide/strata/linking-strata). ## What readers get Hovering a marked shape for half a second shows a preview card with the stratum's name and its opening lines. Clicking opens it in a window that moves and resizes by its corners, or docks to a panel down the right-hand side at half the viewport width. Readers can leave the panel open and work through several strata in turn while the diagram stays put. > [!TILES 3] > > === [Creating and editing](/foliums/blueprintr-user-guide/strata/creating-and-editing) > > The modal, the tabs, and what happens on save. > > === [Tab kinds](/foliums/blueprintr-user-guide/strata/tab-kinds) > > What each kind renders, and when to use it. > > === [Linking strata](/foliums/blueprintr-user-guide/strata/linking-strata) > > The picker, the `stratum:` link scheme, and multi-target links. --- # Blueprintr User Guide: Creating and editing URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/strata/creating-and-editing > Three ways to create a stratum, and what the editor holds once one exists. ![blueprint:josh/creating-a-stratum](https://blueprintr.io/embed/josh/creating-a-stratum?exclude=cmtpwd5jo001j11r44fw410t7&hideTabBar=1#h=620) ## From the shape Right-click a shape on any diagram in the blueprint and choose **Add Stratum…**. The stratum is created and anchored to that shape as soon as you choose it, so the modal opens on a stratum that already exists. Close it without typing and the stratum stays; fill in the content later if you would rather keep drawing. This is the normal path. It is available in step 1 of the editor as well as step 2, so you can write detail while the diagram is still taking shape. Once a shape carries a stratum, the same menu reads **Edit Stratum…** and the shape is marked on the canvas. ## From the Resources & Strata step Step 2 lists every stratum in the blueprint. **Add Stratum** here creates one that is not yet bound to anything; use the [link picker](/foliums/blueprintr-user-guide/strata/linking-strata) to point it at a shape afterwards. Use it when you are writing several strata in one sitting and binding them later, or when the detail exists before the drawing does. ## From a diagram embedded in prose A diagram inside a Rich Text tab has its own kebab menu with **Add Stratum…**. Strata bound to an embedded diagram behave exactly like those on a tab canvas. ## Inside the editor A stratum has a **name**, and one or more **tabs**. The name is what readers see on the hover preview and in the window's title bar, so write it as a label rather than a sentence. > [!TIP] > Give the stratum the same name as the shape unless there is a reason not to. > A reader who clicks "Order queue" expects a window titled "Order queue". ![The stratum modal: icon, name and kind on one row, the anchor below it with Change, Remove and + Add, then the tab strip](/api/folium-assets/cmtp06kci0001tjm2smu5oluz/raw) Add a tab with **Add tab** and choose its [kind](/foliums/blueprintr-user-guide/strata/tab-kinds). Reorder tabs by dragging; the first is what opens by default. The **Anchor** row shows what the stratum is attached to. **Change** repoints it, **Remove** detaches it, and **+ Add** anchors the same stratum to another shape, for detail that belongs to two places on a drawing. ## Deleting Deleting a stratum that something links to leaves those links dangling, and the reader sees them as missing. The delete confirmation lists the referrers first: inline `stratum:` links, linked callouts, and any stratum whose diagram link points inside the one you are removing. Read that list before confirming. --- # Blueprintr User Guide: Tab kinds URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/strata/tab-kinds > What Rich, Raw, Subdiagram, Image and Embed each render, and when to use them. Every tab in a stratum has a kind, chosen when you add it. One stratum can mix them freely. > [!ACCORDIONS] > > === Rich > > Markdown, with images and embedded diagrams. The default. Use it for > explanation. > > It is the same editor used for a blueprint's Rich Text tabs and for folium > pages, so the whole [component library](/foliums/blueprintr-user-guide/blueprints/content-blocks) > is available: callouts, steps, tables, accordions. > > === Raw > > Plain text rendered as a line-numbered block with syntax highlighting. > > Use it for the thing itself: a config file, a command, a schema, a log > excerpt. Prose that happens to be short belongs in Rich. > > === Subdiagram > > A diagram of its own, drawn in Vellum, draw.io, Excalidraw or Mermaid. > > A box labelled "Payments" on a context diagram can hold the payments > service's own component diagram, and that diagram's shapes can carry their > own strata. > > === Image > > A single image, uploaded or referenced by URL. > > === Embed > > An embeddable URL. YouTube and Google Maps links are converted to their > embed form automatically. Other URLs are accepted with a warning, because > not every site permits framing. ## Choosing | You have | Use | | --- | --- | | An explanation | Rich | | A file, command or schema | Raw | | Another diagram's worth of detail | Subdiagram | | A photo, screenshot or rendered chart | Image | | A video, map or dashboard | Embed | > [!NOTE] > A Subdiagram tab's shapes can carry strata of their own. There is no depth > limit, but past three levels the thing you are drawing is usually better as > its own blueprint. --- # Blueprintr User Guide: Linking strata URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/strata/linking-strata > The link picker, the stratum link scheme, multi-target links and tab fragments. A stratum is always *bound* to a shape on a surface. It can also be *linked to* from prose. ![blueprint:josh/stratum-binding-vs-linking](https://blueprintr.io/embed/josh/stratum-binding-vs-linking#h=520) ## Binding with the picker The link picker opens the diagram in a read-only pick view. Click the shape you mean and the stratum binds to it. The surface can be a diagram tab's own canvas, or a diagram embedded inside rich or raw content elsewhere in the blueprint. The binding is what lets a reader's click resolve to the right stratum when a blueprint holds several diagrams. ## Linking from prose Markdown links accept a `stratum:` scheme: ```markdown [see the auth flow](stratum:clx1a2b3c4) ``` Following the link opens that stratum, the same as clicking its shape. > [!FIELDS] > > > [!FIELD One id|scheme|required] > > > > `stratum:` followed by a single stratum id. > > > [!FIELD Several ids|list|optional] > > > > Comma-separated. All open together. > > > [!FIELD With a tab|fragment|optional] > > > > Add `#tab=2` to open on a particular tab rather than the first. Callouts take the same target, so a whole note becomes the link: ```markdown > [!NOTE|stratum:clx1a2b3c4] Where this is enforced ``` > [!IMPORTANT] > The `stratum:` scheme is understood by Blueprintr's editors and reader only. > Everywhere else it is inert. Exported markdown never contains a broken > external link, but the link will not resolve either. Export with that in > mind. ## Legacy links Content written before strata were renamed used a `stage:` prefix. Blueprintr still reads `stage:` links and writes new ones as `stratum:`, so old blueprints keep working with no migration. --- # Blueprintr User Guide: What readers see URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/strata/what-readers-see > Hover previews, the floating window, and the dock a stratum opens into. Strata stay out of the way until a reader wants them. ![blueprint:josh/reading-a-blueprint](https://blueprintr.io/embed/josh/reading-a-blueprint?exclude=cmtpw7gm9000tlduy9serbxzs&hideTabBar=1#h=640) ## Marked shapes A shape carrying a stratum is marked on the canvas. The mark is the only change to the drawing, and a reader who never clicks one still sees the complete diagram. ## Hover Hovering a marked shape for half a second shows a preview card with the stratum's name and its opening lines. Enough to decide whether to click. ## The window Clicking opens the stratum in a floating window. Readers can move it, resize it from any corner, maximise it, or minimise it to a strip. ## The dock The window can be docked to a panel down the right-hand side, half the viewport wide by default and draggable from there. The page reflows around it rather than being covered. Dock the panel to work through a diagram shape by shape while the drawing stays put. > [!TIP] > The dock only appears on a blueprint's own page. In an > [embed](/foliums/blueprintr-user-guide/sharing/embedding-blueprints) there is no page to > reflow, so strata open as floating windows inside the embed's frame. --- # Blueprintr User Guide: Foliums URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums > A multi-page documentation site with a nav tree, an automatic contents list, search and its own domain. This guide is one. A folium is a documentation site. Left rail of pages, content in the middle, automatic table of contents on the right. Use one when the thing you are writing runs longer than a single blueprint: a handbook, a reference, a set of runbooks. You are reading one now. ![blueprint:josh/setting-up-a-documentation-site](https://blueprintr.io/embed/josh/setting-up-a-documentation-site?exclude=cmtpvgbim000a8sqftldqrm2o&hideTabBar=1#h=620) ## Folium or blueprint? | | Blueprint | Folium | | --- | --- | --- | | Shape | One subject, a few tabs | Many pages, a nav tree | | Centre of gravity | A diagram | Prose, with diagrams in it | | Navigation | Tab strip | Nav tree and contents list | | Own domain | No | Yes | | Reader search | Site-wide | Scoped to the folium | A folium page can embed a blueprint, which keeps the diagram a first-class object instead of a screenshot. ## Ownership Foliums are owned by an organisation and require a [Teams licence](/foliums/blueprintr-user-guide/teams/setting-up-an-organisation). They are served from the organisation's subdomain, or a custom domain if one is configured. > [!TILES 3] > > === [Pages and navigation](/foliums/blueprintr-user-guide/foliums/pages-and-navigation) > > The tree, page kinds, ordering and icons. > > === [Writing](/foliums/blueprintr-user-guide/foliums/writing-pages) > > Frontmatter, components, includes and variables. > > === [Settings](/foliums/blueprintr-user-guide/foliums/settings-reference) > > Every configuration key in one place. > > === [The CLI](/foliums/blueprintr-user-guide/foliums/docs-cli) > > Write in your own editor, validate offline, push. > > === [API reference](/foliums/blueprintr-user-guide/foliums/api-reference-and-playground) > > Render an OpenAPI spec with a live playground. > > === [Reader authentication](/foliums/blueprintr-user-guide/foliums/reader-authentication) > > Docs behind a login. --- # Blueprintr User Guide: Pages and navigation URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/pages-and-navigation > The page tree, the four page kinds, ordering, icons, drafts and redirects. A folium is a tree of pages. Depth and page count are capped generously; the practical limit is what a reader can navigate. ## Page kinds | Kind | Behaves as | | --- | --- | | **Doc** | An ordinary content page | | **Section** | A heading in the nav with no content of its own | | **Link** | A nav row pointing at another page | | **External** | A nav row pointing off-site | > [!TIP] > Prefer a Doc with a short intro and a tile grid over a bare Section. A > section header that cannot be clicked is a dead end for anyone who lands on > it from search. ## Ordering and icons Drag rows in the manage view to reorder. Each page takes an optional icon from a curated Lucide set; a page without one gets a disc. A page can be hidden from the nav and stay reachable by URL. Use that for a page that is only ever linked from elsewhere. ## Slugs and redirects A page's slug is its URL segment, and the full path is built from its ancestors. Changing a slug or moving a page **records a redirect automatically**, so old links keep working with a 308. > [!IMPORTANT] > Renaming is cheap because of that redirect. Deleting a page also deletes its > inbound redirects, so old links to it 404. ## Drafts A page can be published or draft. Draft pages are invisible to readers and are excluded from search and from embeds. The `link-draft` diagnostic flags any published page that links to one. ## Sizing the tree Ten collapsed top-level groups is comfortable. Beyond that, readers stop scanning the rail and rely on search instead. --- # Blueprintr User Guide: Writing pages URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/writing-pages > Frontmatter keys, the component library, includes, variables and audience splitting. Folium pages are markdown, edited either in the browser or [in your own editor](/foliums/blueprintr-user-guide/foliums/docs-cli). ## Frontmatter | Key | Does | | --- | --- | | `title` | The page title. Falls back to the first heading, then the filename | | `slug` | The URL segment | | `description` | Rail subtitle, search snippet and meta description | | `icon` | A curated Lucide name | | `status` | `published` or `draft` | | `hideInNav` | Keep it reachable but out of the rail | | `kind` | `doc`, `section`, `link` or `external` | > [!IMPORTANT] > Do not start the body with an `# H1`. The reader chrome already renders the > title, so a leading heading prints it twice. ## Components The [component library](/foliums/blueprintr-user-guide/blueprints/content-blocks) is available in full: callouts, steps, tabs, accordions, tiles, fields, trees and the rest. It is the same pipeline that renders blueprint rich text. ## Includes A fragment can be written once and included in several pages, so a warning or a set of prerequisites has one source. Editing the fragment updates every page that includes it. ## Variables Settings can define variables that pages interpolate: a product version, a base URL, a support address. Changing the value updates every page at once. ## Audience splitting `[!VISIBILITY agents]` content is stripped before the page reaches a human, and `[!VISIBILITY humans]` content is stripped from the markdown an agent fetches. Use it for machine-readable hints that would clutter the page. > [!NOTE] > The split happens at the source layer, so bytes marked `agents` never reach > a human reader's HTML. --- # Blueprintr User Guide: Settings reference URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/settings-reference > Every folium configuration key, grouped by layout, chrome, content behaviour and features, plus version snapshots. A folium's configuration is in one place, reachable from **Manage → Settings**. Everything below is optional and fails closed: a feature is off until you turn it on. ## Where each control is Two surfaces sit above the settings keys. **Customize** is the panel that opens beside the page you are reading. **Manage** is a full page. | Customize tab | Sets | | --- | --- | | **Theme** | Preset palettes, primary and accent colour, colour mode, logos | | **Layout** | The left rail, the contents list, previous and next links | | **Share** | Title and description | | **Sources** | External source connections, shown only when the folium has them | | **Redirects** | Old paths that should forward to new ones | | **Versions** | Published snapshots readers can switch between | | **Languages** | Locales the folium is published in | | Manage section | Sets | | --- | --- | | **Visibility** | Who can read it, the shared password, the share link | | **People** | Collaborators and their roles | | **Change requests** | Edits waiting for review | | **Settings** | Every key documented below | | **MCP** | The agent endpoint, served for public password-free foliums | | **Reader identity** | Sign-in through your own identity provider | | **Export**, **Changelog**, **API spec**, **Repo sync** | The features of the same name | ## Layout | Key | Controls | | --- | --- | | `showNav`, `navWidth` | The left rail and its width | | `showToc`, `tocWidth`, `tocDepth` | The contents list and how many heading levels it shows | | `collapsibleNav`, `sectionsCollapsedByDefault` | Whether groups collapse, and their initial state | | `showPrevNext` | Previous and next links at the foot of each page | | `relatedTopics` | A related-topics block under the content | ## Chrome | Key | Controls | | --- | --- | | `navbar` | Top-nav links and the primary call to action | | `footer` | Footer link columns and social links | | `banner` | A site-wide banner above the reader chrome | | `errors` | Custom 404 and error surfaces | ## Content behaviour | Key | Controls | | --- | --- | | `variables` | String substitutions available to every page | | `markdown` | How `.md` exports are composed for agents | | `contextual` | The per-page "copy" and "open in an AI tool" menu | | `requirePublishApproval` | Whether publishing a page needs a second person | ## Features | Key | Controls | | --- | --- | | `search` | Reader search ranking, filters and prompt | | `assistant` | The docs assistant and its embeddable widget | | `api` | API-reference rendering and the request playground | | `changelog` | The changelog feed and email subscriptions | | `analytics` | Your own third-party measurement ids | | `seo` | Indexing posture and extra meta tags | > [!IMPORTANT] > Settings are sent to the reader's browser. Never put a secret in them. > Credentials for reader authentication and repo sync are stored separately, > encrypted, and are never part of this object. ## Versions and rollback A version is a manual snapshot of the site, taken from the **Versions** tab of the **Customize** panel. Type a label, press **Publish version**, and readers gain a selector in the top bar. **Latest** there is the live working set you edit. The snapshot captures your published, non-archived pages and their strata. Nothing else. Every key on this page, along with the theme, custom domain, redirects and uploaded assets, is served live, so editing any of them changes what a pinned version looks like today. A version is also served in the folium's default language whatever the reader picks, and editing is switched off while a version is selected. > [!IMPORTANT] > There is no restore. Nothing copies a snapshot back over your live pages, so > a version cannot undo an edit. The only control a version gives you is **Set > default**, which decides where a reader lands when no version is named in the > URL. Blueprint version history is a different mechanism: a blueprint has > **Restore this version**, which rolls its live content back. The first version you publish becomes the default at once, so readers move off Latest the moment it exists. **Clear default (readers see Latest)** puts them back. Deleting a version takes effect on the click, with no confirmation and no undo. The snapshot goes; the pages it was taken from stay. A folium with no published page refuses with *Nothing to publish yet*, and one whose pages and strata serialise past roughly 4 MB refuses with *This folium is too large to snapshot*. Where `requirePublishApproval` is on and you are not a folium admin, **Publish version** files a change request for an admin to review rather than writing the snapshot. ## Analytics and consent Third-party measurement ids you configure here are consent-gated, and are never mounted on an embed surface. An embed writes nothing to the reader's device. --- # Blueprintr User Guide: Branding and theming URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/branding-and-theming > Colours, logo, navbar, footer and banner, and how a folium inherits its look from the organisation. A folium takes its look from the owning organisation, then lets you override the theme, navbar, footer and banner. ## Theme Pick a preset or set colours directly. The reader's light or dark preference is respected either way, so choose colours that work in both. ## Navbar Link columns across the top, plus one primary call to action. Keep it to one; a navbar with four equally weighted buttons has no call to action. ## Footer Link columns and social links. Social keys come from a fixed list rather than an open map, so the footer can only render icons it has. ## Banner A site-wide strip above the reader chrome, in one of four tones. Use it for something time-bound, such as a migration window or a deprecation date, and take it down when that window closes. ## Custom domain An organisation can serve its folia from [its own domain](/foliums/blueprintr-user-guide/sharing/subdomains-and-custom-domains). --- # Blueprintr User Guide: Reader search URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/reader-search > What search covers, the ranking and filter settings, and why an editor's results include drafts. Every folium has its own search, scoped to that folium. It covers page titles **and** page bodies, so a reader can find a paragraph rather than only a page name, and the result shows the matching excerpt. ## What each reader sees Search mirrors exactly what the person searching can open: | | Sees | | --- | --- | | Anyone who can edit | Published pages **and drafts** | | Everyone else | Published pages only | It also follows the reader's context: the pinned version when one is selected, and the translations for the locale they are viewing. > [!IMPORTANT] > A page you can find, a reader may not. Before concluding search is broken, > check whether the page is still a draft. ## Settings **Manage → Documentation settings → Search.** > [!FIELDS] > > > [!FIELD prompt|placeholder|optional] > > > > The placeholder in the rail's search box. Leave it empty for the built-in. > > > [!FIELD boostTitles|0–10|ranking] > > > > How much more a title match counts than a body match. > > > [!FIELD boostHeadings|0–10|ranking] > > > > The same for a heading match. > > > [!FIELD filters|locales, sections|optional] > > > > Whether readers get filter controls for locale and section. > > > [!FIELD maxResults|1–24|default] > > > > Hits returned. **24 is the server's scan cap**, so asking for more does not > > widen the search. Tune the boosts instead. ## Page descriptions Write a `description` on every page. The result snippet falls back to it, and link previews show it. [Diagnostics](/foliums/blueprintr-user-guide/foliums/diagnostics) has a `missing-description` rule. ## Search analytics [Analytics](/foliums/blueprintr-user-guide/foliums/folium-analytics) records what readers searched for, which terms returned nothing, and which results were clicked. A term with searches and a 0% click-through is a ranking or naming problem: the page exists, and its title does not read as the answer. ## Hidden pages are still readable > [!IMPORTANT] > Hiding a page from the nav only removes it from the rail. A hidden published > page is still findable and still readable at its URL. If a page must not be > read, make the folium private or put it behind > [reader authentication](/foliums/blueprintr-user-guide/foliums/reader-authentication). --- # Blueprintr User Guide: Docs assistant URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/docs-assistant > A question box over your documentation, and the widget that embeds it elsewhere. The assistant answers questions using the folium's own pages as its source. It is off until you enable it. ## What it can see Only the folium's published content, plus the prompt material you supply in settings. It has no access to anything outside the folium. ## Prompt material Settings hold instructions for the assistant: tone, what to do when it does not know, which pages to prefer. Write them as guidance to a person rather than as configuration. > [!TIP] > Cover what the assistant should do when the docs do not answer the question. > "Say you do not know and link the support page" keeps it from inventing an > answer. ## The widget The assistant can be embedded on another site as a widget, so your product's own UI can answer documentation questions in place. ## What it will not do The assistant does not edit pages. Asked for a change, it files a [change request](/foliums/blueprintr-user-guide/blueprints/discussion-and-change-requests) for a person to review. --- # Blueprintr User Guide: API reference and playground URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/api-reference-and-playground > Generate reference pages from an OpenAPI or AsyncAPI document, and what re-importing does to them. Import an OpenAPI or AsyncAPI document and the folium generates reference pages in the same chrome as the rest of your documentation: endpoints, parameters, request and response shapes. **Manage → API specs.** ## Importing Each import is filed under a **key** you choose. The key controls what happens when you import again: > [!IMPORTANT] > Re-importing the **same key** replaces the previously generated subtree. The > old pages are archived, not deleted. Import under a *new* key and you get a > second reference section rather than an updated one. A versioned API is two keys. A moving API is one key re-imported. Give it a source URL or paste the document. A pasted body takes precedence over the URL. > [!NOTE] > A source URL is fetched **server-side, through the shared request guard**. > Private, link-local and metadata addresses are refused. A spec URL that only > resolves inside your network will not import. ## The playground Each endpoint can have a live request panel: fill in parameters, send, and see the response. Requests are proxied, so the reader's browser does not make cross-origin calls to your API directly. > [!IMPORTANT] > The playground needs a signing secret configured on the platform side. Until > that is in place it degrades to read-only: the panel renders and **Send** is > disabled. The secret is configured during deployment and cannot be switched > on from folium settings. ## In exports The [reader menu](/foliums/blueprintr-user-guide/foliums/settings-reference) has an **Inline the resolved API schema in `.md` exports** option. With it on, an agent that pulls the markdown gets the schema inline rather than a link to it. ## Writing by hand You do not have to import anything. The [`[!FIELDS]` component](/foliums/blueprintr-user-guide/blueprints/content-blocks) produces the same parameter and response layout from markdown, for a small API or for a single endpoint described in prose rather than generated from a schema that documents forty. --- # Blueprintr User Guide: Changelog and subscribers URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/changelog-and-subscribers > A dated feed of what changed, an RSS feed, and email subscriptions. A folium can publish a changelog: dated entries, each anchored so it can be linked to directly. ## Writing an entry ```markdown > [!UPDATE v2.1.0|2026-09-05] > > The playground now remembers the last request per endpoint. ``` Entries are ordinary page content and can hold anything a page can, including diagrams. ## Feeds The changelog is published as a feed at `changelog.xml`, alongside the folium's `rss.xml`. Readers can subscribe in a feed reader without an account. ## Email subscriptions Readers can also subscribe by email and be notified when you publish a new entry. Off by default. > [!NOTE] > Subscriptions collect an email address from your readers. Say so where you > ask for it, and make sure your privacy notice covers it. --- # Blueprintr User Guide: Reader authentication URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/reader-authentication > Setting who can read a folium, from private through unlisted with a password to public, and layering reader identity on top. Reader access is set on the folium's **Manage** page, in the **Visibility** section at the top. Only a folium admin or owner can change it. ## The three levels | Level | Who can read it | | --- | --- | | **Private** | Signed-in members of the owning organisation | | **Unlisted** | Anyone with the link, optionally behind a shared password | | **Public** | Anyone, including search engines | Private is the default for a new folium, and the Teams licence gate applies. ## Changing it Open the folium, choose **Manage**, then pick a level under **Visibility**. The change saves on click; there is no separate save step. > [!NOTE] > An editor-tier collaborator cannot change this. Visibility and the shared > password are reserved for admins and owners, so the buttons are disabled > for anyone else. ## Unlisted with a password An unlisted folium can carry a shared password. Readers enter it once and a cookie remembers them. That covers a client handover, but records no reader identity, so it cannot tell you who read what. > [!IMPORTANT] > Revoking one person's access to a shared password means changing it for > everyone. ## What public changes Private and unlisted foliums are served `noindex, nofollow`. Public is the only level a search engine will index. A public folium with no password is also served an MCP endpoint, listed under **MCP** on the Manage page, so agents can search and read it. Setting a password or moving back to unlisted withdraws that endpoint. ## Reader identity Readers authenticate against your identity provider and get a session tied to who they are. That session supports per-reader access and per-reader records of who read what. It layers on top of the level above rather than replacing it. > [!NOTE] > Reader identity depends on an authentication route being reachable on the > host your folium is served from. On a subdomain or custom domain that > requires the edge configuration to be in place; without it readers stay > anonymous. Check with whoever operates your deployment before relying on it. --- # Blueprintr User Guide: Repo sync URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/repo-sync > Keep a folium and a GitHub or GitLab repository in step. Cloud only, and pushes land on a new branch. A folium can be connected to a markdown repository so the same content exists in both places. GitHub and GitLab, cloud only. > [!IMPORTANT] > Self-hosted GitHub Enterprise and self-managed GitLab are **not supported**. ## Configuring it > [!FIELDS] > > > [!FIELD Provider|GitHub or GitLab|required] > > > > Cloud only. > > > [!FIELD Repository and branch|the target|required] > > > > Plus an optional **base path**, so documentation can sit in a > > subdirectory of a larger repository. > > > [!FIELD Direction|one of three|required] > > > > Repository → Folium, Folium → repository, or both. > > > [!FIELD Access token|encrypted at rest|required] > > > > A pull needs read access. A push needs write: on GitHub, **Contents: read > > and write**; on GitLab, **Developer** with the `api` scope. The token is encrypted before storage and is never shown again, sent to the browser, or written to a log. It is not part of the settings object, so it cannot reach a reader. > [!NOTE] > If your deployment has not provisioned `FOLIUM_REPO_SYNC_KEY`, connecting is > **refused** rather than storing the token in the clear. Ask whoever operates > your deployment to provision it. ## Pull Markdown files in the repository become pages. Documentation sits beside the code, is reviewed the same way, and the folium is the published surface. ## Push Pages are written back as **a new branch** for you to review in your repository. Push never commits directly to your default branch. > [!IMPORTANT] > A pushed branch has no preview URL of its own. A folium builds one live site > per document, not one per branch, so review a pushed branch in your > repository. If your workflow depends on a preview deployment per branch, > repo sync will not give you that. ## The alternative To author locally without connecting a repository, the [CLI](/foliums/blueprintr-user-guide/foliums/docs-cli) pulls and pushes a directory of markdown over the API. It uses no Git and stores no token on our side. It also validates against the server's own rules offline before it uploads anything, which repo sync does not. --- # Blueprintr User Guide: Automations URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/automations > The documentation agent, pointed at your folium, filing change requests you review like any other proposal. An automation runs the documentation agent over the folium and files a **change request** with what it proposes. > [!IMPORTANT] > Nothing is applied automatically. Every proposal lands in > [change requests](/foliums/blueprintr-user-guide/foliums/pages-and-navigation) and is > reviewed exactly like a human suggestion. An automation cannot publish, and it > cannot edit a page directly. The agent is allowed to be wrong, because a wrong proposal costs a rejection rather than a corrupted page. ## Predefined automations Start from one of these rather than describing a job from scratch: > [!TILES 2] > > === Fix broken links > > Finds internal links that resolve to nothing and proposes the target it > thinks you meant. > > === Refresh stale pages > > Looks for pages that have drifted from what the rest of the folium says. > > === Improve page descriptions > > Writes a `description` where one is missing or generic. That string becomes > the search snippet and the link preview. > > === Normalise terminology > > Finds the same concept called three different things and proposes one. **New automation** takes your own instruction instead. ## Reviewing a run A run produces a change request. Open it, read what it proposes, and accept, edit or reject page by page. A rejected proposal leaves the page untouched. ## When to use diagnostics instead Diagnostics is a rule engine, not a model. It is exact, costs nothing, and finishes in seconds. Use [diagnostics](/foliums/blueprintr-user-guide/foliums/diagnostics) for anything mechanical: broken links, dangling redirects, missing descriptions, unknown icons. Reserve automations for the judgement calls a rule cannot make. Diagnostics with external link checking needs no agent. Internal links break when someone deletes a page; external links break when the site at the other end changes. --- # Blueprintr User Guide: Export and print URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/export-and-print > Getting content out as markdown for agents, a print-ready document, or the whole folium on disk. ## Markdown Every page can be fetched as its source markdown, mainly for agents reading your docs programmatically. Settings control how those exports are composed. Content marked `[!VISIBILITY humans]` is stripped from the agent-facing markdown, and `[!VISIBILITY agents]` content is stripped from the page a person reads. ## Print A folium can produce a print-optimised document covering the whole tree or a subtree, with sensible page breaks, resolved links and diagrams rendered inline. > [!IMPORTANT] > This is a print-ready HTML document that you print to PDF from your browser, > not a server-generated PDF file. Use your browser's print dialogue and choose > "Save as PDF". A server-side PDF would need a headless browser, which does > not fit in the platform's serving constraints. ## The CLI [`blueprintr-docs pull`](/foliums/blueprintr-user-guide/foliums/docs-cli) writes the whole folium to disk as markdown files with frontmatter, and `push` uploads them back. --- # Blueprintr User Guide: Diagnostics URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/diagnostics > The rule set that catches broken links, missing descriptions, bad icons and heading jumps. Diagnostics check a folium against a fixed rule set. Run them from the manage view, from an [automation](/foliums/blueprintr-user-guide/foliums/automations), or offline with the [CLI](/foliums/blueprintr-user-guide/foliums/docs-cli). ![A diagnostics run: 43 errors, 0 warnings, 0 suggestions, with the dangling-redirect findings listed under a card that names the stale path and what it now points at](/api/folium-assets/cmtozxvua0003ndrb3x90ioi2/raw) ## The rules | Rule | Catches | | --- | --- | | `link-broken` | An internal link that resolves to no page | | `link-draft` | A published page linking to a draft | | `link-hidden` | A link to a page hidden from the nav | | `redirect-dangling` | A redirect whose destination is gone | | `redirect-loop` | Redirects pointing at each other | | `duplicate-slug` | Two pages competing for one URL | | `orphan-page` | A page nothing links to | | `page-empty` | A page with no content | | `page-oversized` | A page past the size ceiling | | `missing-description` | No description, so previews fall back | | `image-alt-missing` | An image with no alt text | | `heading-jump` | A heading level skipped, which breaks the contents list | | `icon-unknown` | An icon name that resolves to no glyph | | `external-link-broken` | An off-site link that no longer responds | ## External links External checking is off by default and only runs server-side. Probing an author-supplied URL needs the platform's request guard, which refuses private, link-local and metadata addresses. The CLI collects external links and lists them but never fetches them. ## Links resolve like a browser An internal link resolves against the page's URL the way a browser would. A bare `sibling` written on the page `a/b` means `a/sibling`, not `a/b/sibling`. Writing links as absolute in-app paths avoids the problem. --- # Blueprintr User Guide: Folium analytics URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/folium-analytics > Human and agent traffic, read depth, searches that found nothing, and six CSV exports. **Manage → Documentation analytics**, over the last 7, 30 or 90 days. Every panel exports as CSV: Traffic, Pages, Referrers, Searches, Assistant, Feedback. ## Traffic | Metric | Is | | --- | --- | | Human views | Page reads that look like a person | | Human visitors | Distinct sessions, counted approximately | | AI / agent views | Reads by crawlers, bots and LLM agents | | Total views | Both | **Top pages** breaks the human/agent split down per page in two columns, and *agent traffic by kind* separates ordinary crawlers from AI/LLM agents. A page with heavy agent traffic and no human traffic is being read by machines only. That is expected for reference material, and a signal if you wrote it for people. ## Engagement **Average read depth** across sessions: how far down the page readers get. **Top outbound clicks** lists the destinations readers leave for, which indicates what your documentation does not answer. ## Search Searches, distinct terms, click-through rate, and zero-result searches. **Top terms** shows each term with its CTR and the result readers picked. **Searched, found nothing** lists each term and when it was last searched. > [!TIP] > A search with no result names a page a reader expected and did not find, in > their own words. Review that list monthly and write the pages it names. A term with searches and a 0% click-through means the page exists and its title or description does not read as the answer. ## Assistant Conversations and messages, broken down by the surface they came from, plus recent conversations. What readers ask the [assistant](/foliums/blueprintr-user-guide/foliums/docs-assistant) is the same demand signal as a failed search, in full sentences. ## Page feedback Helpful, not helpful, total responses and helpful rate, with the **lowest-rated pages** for the window. Rating is independent of traffic, so a popular page can sit near the bottom of that list. ## Your own measurement **Manage → Analytics integrations** accepts GA4, PostHog (with a custom host), Mixpanel and Segment ids, plus first-party click-heatmap sampling. Measurement ids are public. These mount on public and unlisted pages only. They are consent-gated, and are never mounted on an [embed](/foliums/blueprintr-user-guide/sharing/embedding-blueprints). An embed writes nothing to the reader's device. --- # Blueprintr User Guide: Docs CLI URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/docs-cli > Write folium pages in your own editor, check them offline, and push when they are ready. `blueprintr-docs` is a command-line tool for writing documentation in a text editor instead of a browser. > [!IMPORTANT] > It is not published to npm and will not be. It ships inside the Blueprintr > repository and is run from a checkout: > > ```bash > node /path/to/blueprintr/cli/bin/blueprintr-docs.mjs --help > ``` Its only dependencies are Node builtins, so there is no install step and nothing to audit beyond the tool itself. ## Commands | Command | Does | | --- | --- | | `validate [dir]` | Check local markdown. No network, no token | | `pull [dir]` | Write a folium's pages to disk | | `push [dir]` | Upload local markdown back | | `open [path]` | Print and open the reader URL | ## Validate ```bash blueprintr-docs validate ./docs --strict ``` `validate` makes no network calls and needs no credentials. It loads the server's own diagnostics module rather than reimplementing the rules, so a local pass and a server pass cannot disagree. Exit codes are `0` clean, `1` findings, `2` bad command line, `3` credentials, `4` network, `5` filesystem. ## Layout on disk > [!TREE] > > - docs/ > - folium.json > - index.md > - guides/ > - index.md > - deploy.md `folium.json` is optional and holds the slug, redirects, disabled rules and the known icon list. A directory with no `index.md` still becomes a nav section. ## Pull and push ```bash export BLUEPRINTR_TOKEN=bpk_user_… blueprintr-docs pull handbook ./docs ``` Frontmatter holds the page `id`, and **that id is how `push` matches a file to a page**. Editing or removing it makes `push` create a new page instead of updating the existing one. `push` never deletes a page. A page on the server but not on disk is reported and left alone, so running the command in the wrong directory cannot cost you a page. It never publishes a draft either: publishing stays an in-app action, and `push` can retract a published page to draft but not the reverse. Link and external pages are left untouched, because they point at something rather than holding content. ## The token `BLUEPRINTR_TOKEN` is a personal API key from **Dashboard → Settings → Developer**. It is read from the environment and never from a flag, because argv appears in `ps` and in shell history. Every line the tool prints is passed through a redactor. Organisation keys are rejected: they are read-only and scoped to public documents. ## Links resolve like a browser A page at `guides/index.md` has the URL `/guides`, so a relative `./aws/setup` from that file resolves to `/aws/setup`, not `/guides/aws/setup`. Writing links as absolute in-app paths (`/foliums//guides/aws/setup`) avoids the problem. --- # Blueprintr User Guide: Migrating from another platform URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/foliums/migrating-from-another-platform > Import a Docusaurus, GitBook, ReadMe, Fern or Document360 export into a folium, with a preview of the page tree first. **Manage → Migrate from another platform** takes an export from an existing documentation tool and turns it into folium pages. | Source | | | --- | --- | | Docusaurus | | | GitBook | | | ReadMe | | | Fern | | | Document360 | | | Markdown archive | Anything else: a directory of `.md` files | Leave the source on **Detect automatically** unless it guesses wrong. ## What to upload The export archive the other tool produces, as a `.zip` of up to **32 MB**. A repository URL or a live site address is not accepted. ## Nothing is written until you say so **Upload and preview** parses the archive and shows you the page tree it intends to create. You approve it, and only then does anything land. > [!IMPORTANT] > A page the source marked hidden, unlisted or unpublished always arrives as a > **draft**, whatever else the import does. A migration cannot publish > something the old platform was holding back. ## After the import > [!STEPS] > > === Run diagnostics > > [Diagnostics](/foliums/blueprintr-user-guide/foliums/diagnostics) catches what a > migration reliably breaks: links that resolved under the old tool's URL > scheme and do not under this one, headings that skip a level, images with no > alt text, missing descriptions. > > === Rewrite internal links > > Internal links resolve **browser-style** against the page's own URL. A bare > `sibling` on the page `a/b` means `a/sibling`. Exports from tools with a > different resolution rule produce a lot of these; rewriting them as absolute > in-app paths fixes the whole class at once. ## What does not come across Anything that was a feature of the old platform rather than content: its theming, its custom components, its redirects. List your existing redirects before you migrate. A folium records a redirect when *it* moves a page, and cannot inherit one from a tool it never ran. ## The other routes in | You have | Use | | --- | --- | | An export from one of the tools above | This | | Markdown in a Git repository | [Repo sync](/foliums/blueprintr-user-guide/foliums/repo-sync) | | Markdown in a directory | [The CLI](/foliums/blueprintr-user-guide/foliums/docs-cli) | | Pages in Confluence, Notion or SharePoint | [The import wizard](/foliums/blueprintr-user-guide/organise/importing-content) | | An OpenAPI or AsyncAPI document | [API specs](/foliums/blueprintr-user-guide/foliums/api-reference-and-playground) | --- # Blueprintr User Guide: Sharing URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/sharing > Visibility, embeds, link previews, custom domains, presenting, and your organisation's homepage. How published content reaches readers: who can see it, how it appears elsewhere, and where it is served from. > [!TILES 3] > > === [The visibility model](/foliums/blueprintr-user-guide/sharing/visibility-model) > > Public, unlisted and private, and who can read each one. > > === [Embedding blueprints](/foliums/blueprintr-user-guide/sharing/embedding-blueprints) > > A live, interactive frame in someone else's page. > > === [Link previews and oEmbed](/foliums/blueprintr-user-guide/sharing/link-previews-and-oembed) > > What other tools show when your link is pasted. > > === [Subdomains and custom domains](/foliums/blueprintr-user-guide/sharing/subdomains-and-custom-domains) > > Publishing at your own address. > > === [Podium](/foliums/blueprintr-user-guide/sharing/podium) > > Present a diagram without exporting a deck. > > === [Atrium](/foliums/blueprintr-user-guide/sharing/atrium) > > Your organisation's front door. --- # Blueprintr User Guide: Visibility model URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/sharing/visibility-model > Public, unlisted and private, who can read each one, and where organisation policy overrides your choice. Visibility sets who may read a blueprint once it is published. ![blueprint:josh/visibility-model](https://blueprintr.io/embed/josh/visibility-model#h=520) | Value | Who can read it | Search engines | | --- | --- | --- | | **Public** | Anyone | Indexed | | **Unlisted** | Anyone with the link | Not indexed | | **Private** | You, and anyone it is shared with | No | ## Unlisted links An unlisted URL is unguessable, not protected. It survives being forwarded, pasted into a ticket, or sitting in someone's browser history after they leave. > [!IMPORTANT] > Use private for anything that would matter if it leaked. ## Status comes first An unpublished draft is invisible regardless of its visibility setting. Visibility only takes effect once you publish. ## Organisation policy can override you An organisation can apply a **classification** that caps how public its content may be. Where a classification is set, you cannot publish above the ceiling it defines, and the Publish step says so. See [policies](/foliums/blueprintr-user-guide/teams/policies). ## Each surface gates independently A blueprint's visibility does not automatically govern every route that can reach its content. Files, embeds, discussion and analytics each apply their own check. A mistake in one place cannot open all of them. --- # Blueprintr User Guide: Embedding blueprints URL: https://docs.blueprintr.io/foliums/blueprintr-user-guide/sharing/embedding-blueprints > Put a live, interactive blueprint inside another page, whether your site, a folium, or someone else's wiki. A published blueprint can be embedded elsewhere as a live, interactive frame. Readers pan the diagram and open strata without leaving the host page. ## Getting the code Use **Share → Embed** on a published blueprint. You get an `