Skip to main content
Version: 2026.08

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

Prefer Keys — same Configuration as SDK setup. Both clients share it:

from istari_digital_client import Client, V3Client, Configuration

config = Configuration(
digital_api_url="https://your-instance.istari.digital",
identity_service_secret_file="/path/to/your/key.json",
identity_service_enabled=True,
)

client = Client(config) # Jobs, agents, systems, access control
v3 = V3Client(config) # Resources, revisions, comments, relationships

A deprecated PAT still works (registry_url + registry_auth_token). Environment variables are listed on SDK setup.

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