Skip to main content
Version: 2026.09

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, connected resources, revisions, comments, and relationships.

V3Client introduces a single Resource abstraction. Models, artifacts, and files share one create / list / get / archive / restore lifecycle, and connected_container and connected_resource are resource types on the same API. Documents stay on Client. Every resource carries an explicit revision history. V3Client also adds relationships between revisions.

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​

Both clients share one Configuration. Configuration() reads the key from the environment, the same way as SDK setup:

from dotenv import load_dotenv
from istari_digital_client import Client, V3Client, Configuration

load_dotenv() # copies .env into the environment

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

The .env names for the key are on Credentials.

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(type_name=["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.

from istari_digital_client.v3.models import NewRevisionRelationshipDto

types = v3.list_revision_relationship_types()

v3.create_revision_relationship(
new_revision_relationship_dto=NewRevisionRelationshipDto(
relationship_type_id=types.items[0].id,
left_revision_id="<source_revision_id>",
right_revision_id="<target_revision_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​