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, 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.
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)
Link revisions with relationships
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
- 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.