V3Client quick start
The istari-digital-client package ships two Python clients:
| Client | Surface |
|---|---|
Client | Jobs, agents, systems, snapshots, access control, modules, and functions. |
V3Client | Unified 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)
Link revisions with relationships
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
- V3Client reference — full method signatures, parameters, and examples.
- Migrating from
ClienttoV3Client— method mapping and incremental migration strategy. - Client reference —
Clientmethods for jobs, agents, systems, and access control. - Connected resources (V3Client) — register third-party Resources with metadata pointer files; run jobs with
Client. - Connected resources (Client) — extensions, credentials, and revision updates.