GRID

A GRID (Global Resource ID) is a globally unique, stable identifier for any entity on the Altium platform – a project, a component, a BOM, a task, and so on.

Why GRIDs Exist

Platform entities typically carry local identifiers (GUIDs, numeric IDs) that are unique only within their own context. A project GUID is not globally unique – two projects in different Workspaces can share the same GUID. A supply part ID has no meaning outside the supply system. This makes it impossible to reference an entity unambiguously across services, events, and integrations.

GRIDs solve this by encoding the necessary context directly into the identifier: the area, the tenant, the bounded context, the entity type, and the local ID are all part of the GRID. Given only the GRID, the platform can locate the entity without any additional context.

Format

GRIDs are URIs using grid as the scheme.

grid:area:[tenant-id]:context:resource-type/resource-id

GRIDs are case-sensitive and have two main parts:

  • Context path – area:[tenant-id]:context – fixed structure using : as separator

  • Resource path – resource-type/resource-id – defined by the bounded context, using / as separator

The resource path supports sub-resources: resource-type/id/sub-type/sub-id.

Components

Component

Required

Description

area

Yes

Broad platform domain – global, workspace, supply, community, manufacture

tenant-id

No

ID of the tenant (Workspace GUID for Workspace resources). Omitted for resources not owned by a specific tenant

context

Yes

Bounded context – design, library, procurement, collaboration, platform, events, etc.

resource-type

Yes

Human-readable entity name from the domain vocabulary

resource-id

Yes

Local identifier of the entity

Area names are aligned with OAuth scope areas and are intentionally product- and brand-agnostic – no product names appear in the GRID format. This makes GRIDs stable across product rebranding and company changes.

For global resources (organizations, users, applications), the tenant component is absent – note the double colon (::) in the examples below.

Examples

Global resources (no tenant):

grid:global::platform:organization/837af973-180e-45ab-a93a-62a66f44d75a
grid:global::platform:user/837af973-180e-45ab-a93a-62a66f44d75a
grid:global::events:subscription/41428e10-d66a-4b27-8bbf-3a51496cceae

Workspace resources (Workspace GUID as tenant):

grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:design:project/DA051CB4-13C4-41A7-A795-2A5EBC2B9A9B
grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:library:component/0F629FA7-A5C5-4034-829A-83CC5E95B947
grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:procurement:bom/BD74926A-7AFA-454E-8879-C79E8C8685EE
grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:collaboration:task/BCC891F1-49C3-46B2-9A03-85F882133050

Supply resources (no tenant – parts are not Workspace-owned):

grid:supply::platform:part/43736907

The Common Data Model (CDM) is the authoritative reference for GRIDs defined across platform entities. It documents the bounded contexts, entity types, and their GRID structure.

GRIDs in the API

GRIDs surface in the Altium 365 API as id: ID! fields on entities. The API follows the GraphQL Global Object Identification convention – given a GRID, the platform can refetch the entity directly using the node query:

query {
  node(id: "grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:design:adproject/a7ceb47c-db37-426a-a9ef-117d1146be35") {
    ... on DesProject {
      name
      description
    }
  }
}

The API gateway uses the GRID structure to route the query to the correct subgraph – no additional context is needed from the caller.

GRIDs are being adopted progressively across API entities. Some entities currently return opaque base64-encoded node IDs – a legacy format from the underlying GraphQL framework. As GRID adoption expands, these will be replaced with structured GRIDs.

 

如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
Content