Skip to main content
Version: 2026.04

V3Client quick start

The istari-digital-client package ships two Python clients:

ClientSurface
ClientJobs, agents, systems, snapshots, access control, modules, and functions.
V3ClientUnified resource API for models, artifacts, files, documents, revisions, comments, and relationships.

V3Client introduces a single Resource abstraction that consolidates the separate model, artifact, file, and document types currently exposed by Client. Every resource follows the same create / list / get / archive / restore lifecycle, and every resource carries an explicit revision history. V3Client also adds relationships between revisions — a new capability without a Client counterpart.

Both clients coexist and share the same Configuration. Use V3Client for resource operations and Client for jobs, agents, systems, and access control. V3Client is the direction we're investing in; expect its surface to expand over time.

Installation

Install from PyPI:

pip install istari-digital-client

Initialize the clients

from istari_digital_client import Client, V3Client, Configuration

config = Configuration(
registry_url="https://your-instance.istari.digital",
registry_auth_token="your-personal-access-token",
)

client = Client(config) # Jobs, agents, systems, access control
v3 = V3Client(config) # Resources, revisions, comments, relationships
  • Registry URL: Found under Settings > Developer Settings in the Istari Digital Platform.
  • Registry Auth Token: See Personal Access Tokens.
tip

Configuration reads ISTARI_REGISTRY_URL and ISTARI_REGISTRY_AUTH_TOKEN from environment variables, so you can omit the constructor arguments when those are set.

Create a resource

Upload a file and register it as a resource in a single call. The resource_type field determines the classification.

resource = v3.create_resource(
path="/path/to/wing-stress.stl",
resource_type="model",
description="FEA model for wing stress testing",
version_name="v1.0.0",
)
print(resource.resource_id)

List and retrieve resources

models = v3.list_resources(resource_types=["model"])

resource = v3.get_resource(resource_id="<resource_id>")

Add a revision

Create an explicit new revision on an existing resource:

revision = v3.create_resource_revision(
resource_id="<resource_id>",
path="/path/to/wing-stress-v2.stl",
description="Finer mesh near leading edge",
version_name="v2.0.0",
)

Browse revision history

page = v3.list_resource_revisions(resource_id="<resource_id>")
for rev in page.items:
print(rev.file_revision_id, rev.version_name, rev.created)

Relationships connect revisions across resources — for example, linking a simulation output back to the model revision that produced it.

types = v3.list_revision_relationship_types()

v3.create_revision_relationship(
source_revision_id="<source_revision_id>",
target_revision_id="<target_revision_id>",
relationship_type_id="<type_id>",
)

Use both clients together

V3Client and Client share the same resource IDs, so you can create a resource with V3Client and run a job on it with Client:

resource = v3.create_resource(
path="/path/to/model.stl",
resource_type="model",
description="My model",
)

job = client.add_job(
model_id=resource.resource_id,
function="@istari:extract",
tool_name="siemens_nx",
tool_version="2506",
operating_system="Windows 11",
)

What's next