Diagrams¶
Account-scoped architecture diagrams for planning, documentation, and presentations. Each diagram is a user-owned canvas — not a live inventory map.
| Item | Value |
|---|---|
| Console | Diagrams → /console/diagrams |
| Permissions | diagrams.read / diagrams.create / diagrams.update / diagrams.delete |
| Assets bucket | so://diagrams-{account_number}/diagrams/{diagram_id}/assets/… (account-owned/billable; listed under Show account service buckets) |
List and create¶
- Open Diagrams.
- New diagram — name (required) and optional description.
- Open a row to edit on the canvas.
Editor basics¶
- Live nodes reference real HomeCloud resources (stale if the resource is deleted).
- Planned nodes describe future components without creating resources.
- Text and shapes (rectangle, ellipse, frame) for notes and boundaries.
- Modes: select / pan / connect; snap, align, layers, undo/redo, autosave.
- Command palette: Ctrl+K.
- Optional Import of account architecture as live nodes (never the default empty canvas).
- Double-click a live node to open it in the console; double-click text to edit inline.
Present and export¶
- Present — fullscreen read-only view of the live diagram.
- Export PNG / SVG — full canvas or current selection.
Share (view-only links)¶
Anyone with the URL can open a frozen snapshot without signing in.
- In the editor (with
diagrams.update), click Share. - Choose expiry: Never, 7 days, or 30 days; optional label.
- Create link — copy the URL immediately (shown once).
- Recipients open
/share/diagrams/{token}— Present-style canvas, no console shell. - Revoke any active link from the same dialog.
Snapshot semantics¶
- The public page shows the document captured at create time (name, description, nodes, edges, groups, viewport).
- Editing the diagram later does not update existing shares. Create a new link to republish.
- Public viewers do not call account APIs for live inventory refresh and do not see secrets.
- Node images stored as
so://…resolve through a token-scoped asset URL.
IAM¶
| Action | Typical roles |
|---|---|
| List / open / list shares | diagrams.read (owner, admin, developer, viewer) |
| Create / edit / upload assets / create & revoke shares | diagrams.update (owner, admin, developer) |
| Create diagram | diagrams.create |
| Delete diagram | diagrams.delete (owner, admin) |
SO assets bucket¶
Custom node images upload to the account bucket diagrams-{account_number} under diagrams/{diagram_id}/assets/… (URI: so://diagrams-{account_number}/diagrams/{diagram_id}/assets/{filename}). The account owns and pays for the storage. In Object Storage these appear under Show account service buckets — non-root users can list them but cannot open or change them; the account root retains full access. Share links do not copy files; they re-presign the same so:// URIs. The prefix shared/{share_id}/ is reserved for a future opt-in frozen-copy mode and is unused today.
CLI and SDK¶
homecloud diagrams list
homecloud diagrams get DIAGRAM_ID
homecloud diagrams create "Production plan" --description "Draft"
homecloud diagrams patch DIAGRAM_ID --name "Production architecture" --revision 1
from homecloud import HomeCloud
client = HomeCloud()
for d in client.diagrams.list():
print(d["id"], d["name"], d["revision"])
client.diagrams.create("Production plan", description="Draft")
client.diagrams.update(diagram_id, name="Production architecture", revision=1)
Auth: user JWT or user-bound Access Key. Details: diagrams CLI, Python SDK.
Task references¶
In Tasks title, details, or discussion, type #diagrams or #diagrams/<diagram-id> for autocomplete and deep links.