Skip to main content
Version: 2026.10

Secure Connections

Create and manage Secure Connections, share Resources over them, and govern who may send and receive.

MethodDescription
create_receiving_remote()Create a receiving remote connection.
create_sending_remote()Create a sending remote connection.
get_receiving_remote()Retrieve a receiving remote by ID.
get_sending_remote()Retrieve a sending remote by ID.
list_receiving_remotes()List receiving remote connections.
list_sending_remotes()List sending remote connections.
update_receiving_remote()Update a receiving remote connection.
update_sending_remote()Update a sending remote connection.
list_shareable_sending_connections()List the Secure Connections a resource may be shared to.
share_file_to_sending_remote()Share a resource with a partner over a Secure Connection.
revoke_file_from_sending_remote()Stop sharing a resource over a Secure Connection.
list_sending_remote_shares_for_resource()List the Secure Connections a resource is shared to.
favorite_connection()Star a Secure Connection.
unfavorite_connection()Remove the star from a Secure Connection.
get_receiving_connection_owners()List the owners of a receiving connection.
set_receiving_connection_owners()Replace the owners of a receiving connection.
get_sending_connection_permitted_senders()List who may send over a sending connection.
set_sending_connection_permitted_senders()Replace who may send over a sending connection.
get_receiving_connection_infosec_levels()Incoming infosec levels seen on a receiving connection.
get_receiving_connection_infosec_level_mappings()How incoming infosec levels map to local ones.
set_receiving_connection_infosec_level_mappings()Replace the infosec level mappings.
get_receiving_connection_control_tags()Control tags seen on a receiving connection.
list_receiving_remote_sync_statuses()Sync status of Resources received over a connection.
list_sending_remote_sync_statuses()Sync status of Resources sent over a connection.
list_resource_sync_status_by_connection()One Resource's latest sync status on each connection.
evaluate_sending_remote_tag_sets()Preview what a sending connection's tag rules do.
validate_receiving_remote_manifest_catalog()Check a manifest's control tags against a receiving connection.
list_object_stores()List object stores.

Remote Connections​

create_receiving_remote​

V3Client.create_receiving_remote(
receiving_connection_create_dto,
) -> ReceivingConnectionDto

Create a receiving remote connection to accept resources pushed from another registry.

Parameters

NameTypeDescription
receiving_connection_create_dtoReceivingConnectionCreateDtoDTO describing the new receiving connection.

Returns: ReceivingConnectionDto — the created receiving remote.

from istari_digital_client.v3.models.receiving_connection_create_dto import ReceivingConnectionCreateDto

remote = client.create_receiving_remote(
receiving_connection_create_dto=ReceivingConnectionCreateDto(
label="upstream-registry",
description="Accept resources from the partner",
shared_id="upstream-registry",
shared_secret="shared-secret",
object_store_id="<object_store_id>",
),
)
print(remote.id)

create_sending_remote​

V3Client.create_sending_remote(
sending_connection_create_dto,
) -> SendingConnectionDto

Create a sending remote connection to push resources to another registry.

SendingConnectionCreateDto.allow_reshare defaults to False. Set it to True to let the receiving organization share files that arrived over this connection onward over its own sending connections. False keeps those files on the receiving instance.

Parameters

NameTypeDescription
sending_connection_create_dtoSendingConnectionCreateDtoDTO describing the new sending connection. allow_reshare (bool, default False) controls whether the receiver may share files onward.

Returns: SendingConnectionDto — the created sending remote, including allow_reshare.

from istari_digital_client.v3.models.sending_connection_create_dto import SendingConnectionCreateDto

remote = client.create_sending_remote(
sending_connection_create_dto=SendingConnectionCreateDto(
label="downstream-registry",
description="Send resources to the partner",
shared_id="downstream-registry",
shared_secret="shared-secret",
object_store_id="<object_store_id>",
),
)
print(remote.id)

get_receiving_remote​

V3Client.get_receiving_remote(
remote_id,
) -> ReceivingConnectionDto

Retrieve a receiving remote connection by ID.

ReceivingConnectionDto.allow_reshare is read-only. The value is the sender's setting, learned when the connection syncs.

Parameters

NameTypeDescription
remote_idstrThe ID of the receiving remote to get.

Returns: ReceivingConnectionDto — the receiving remote, including allow_reshare.

remote = client.get_receiving_remote("remote-id-here")
print(remote.label)

get_sending_remote​

V3Client.get_sending_remote(
remote_id,
) -> SendingConnectionDto

Retrieve a sending remote connection by ID.

Parameters

NameTypeDescription
remote_idstrThe ID of the sending remote to get.

Returns: SendingConnectionDto — the sending remote.

remote = client.get_sending_remote("remote-id-here")
print(remote.label)

list_receiving_remotes​

V3Client.list_receiving_remotes(
*,
cursor=None,
size=None,
include_total=None,
show_archived=None,
) -> CursorPageReceivingConnectionDto

List receiving remote connections. Each item's allow_reshare is read-only and is the sender's setting, learned when the connection syncs.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
show_archivedbool | NoneNoneInclude archived remotes when True.

Returns: CursorPageReceivingConnectionDto — paginated list. Each item includes allow_reshare.

page = client.list_receiving_remotes()
for r in page.items:
print(r.id, r.label)

list_sending_remotes​

V3Client.list_sending_remotes(
*,
cursor=None,
size=None,
include_total=None,
show_archived=None,
) -> CursorPageSendingConnectionDto

List sending remote connections.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
show_archivedbool | NoneNoneInclude archived remotes when True.

Returns: CursorPageSendingConnectionDto — paginated list.

page = client.list_sending_remotes()
for r in page.items:
print(r.id, r.label)

update_receiving_remote​

V3Client.update_receiving_remote(
remote_id,
update_receiving_connection_dto,
) -> ReceivingConnectionDto

Update a receiving remote connection.

Parameters

NameTypeDescription
remote_idstrThe ID of the receiving remote to update.
update_receiving_connection_dtoUpdateReceivingConnectionDtoDTO containing the fields to update.

Returns: ReceivingConnectionDto — the updated receiving remote.

from istari_digital_client.v3.models.update_receiving_connection_dto import UpdateReceivingConnectionDto

updated = client.update_receiving_remote(
remote_id="remote-id-here",
update_receiving_connection_dto=UpdateReceivingConnectionDto(label="new-name"),
)

update_sending_remote​

V3Client.update_sending_remote(
remote_id,
update_sending_connection_dto,
) -> SendingConnectionDto

Update a sending remote connection.

UpdateSendingConnectionDto.allow_reshare changes whether the receiving organization may share files that arrived over this connection onward over its own sending connections.

Parameters

NameTypeDescription
remote_idstrThe ID of the sending remote to update.
update_sending_connection_dtoUpdateSendingConnectionDtoDTO containing the fields to update. allow_reshare (bool, optional) sets whether the receiver may share onward.

Returns: SendingConnectionDto — the updated sending remote, including allow_reshare.

from istari_digital_client.v3.models.update_sending_connection_dto import UpdateSendingConnectionDto

updated = client.update_sending_remote(
remote_id="remote-id-here",
update_sending_connection_dto=UpdateSendingConnectionDto(label="new-name"),
)

Secure Connection Sharing​

Share individual resources with a partner organization over a Sending Connection (Secure Connection) that an administrator has already configured. These methods are the SDK counterpart of the Share with external connection dialog described in Secure Connections.

The same rules apply as in the web app:

  • Only models and artifacts are synced to the partner. Systems cannot be shared as a whole. The share and list calls accept the file of any resource type and do not reject a standalone file, so check resource_type yourself rather than relying on an error.
  • The caller needs Editor access or above on the resource. Any authenticated user may list shareable connections.
  • The connection must exist and be active. Creating connections is an administrator task — see Set up Secure Connections.
  • The connection's Permitted Infosec Level and Tag Rules still apply. A share that violates them is rejected or automatically revoked.
  • If the connection restricts Permitted Senders, you must be on its list, and your per-user level (View or Edit) caps the share_level you may request in addition to the connection's ceiling. There is no non-admin call to read your own level; a share above it fails with 403. See Permitted Senders.
  • Sync is asynchronous. A share call returns as soon as the share is recorded; the partner receives the file on the next sync cycle (typically 1–2 minutes).
  • List calls are paginated. Each page exposes the cursor for the next page as next_page; pass it back as cursor until it is None.

Share methods take the resource's file_id (the storage-level identifier on ResourceDto), not its resource_id. list_sending_remote_shares_for_resource() takes the resource_id and resolves the file for you.

list_shareable_sending_connections​

V3Client.list_shareable_sending_connections(
*,
cursor=None,
size=None,
include_total=None,
) -> CursorPageShareableSendingConnectionDto

List the active Sending Connections a resource may be shared to. Unlike list_sending_remotes(), this is available to non-administrators and returns a slim projection without connection configuration. Secure Connections are not tenant-scoped, so the list is instance-wide.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonenext_page from the previous page.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.

Returns: CursorPageShareableSendingConnectionDto — paginated list. Each item carries id, label, description, and received_access_level, the ceiling for the share_level you may request on that connection.

page = client.list_shareable_sending_connections()
for conn in page.items:
print(conn.id, conn.label, conn.received_access_level)

share_file_to_sending_remote​

V3Client.share_file_to_sending_remote(
remote_id,
file_id,
share_file_to_sending_remote_dto=None,
) -> RemoteFileShareDto

Share a resource's file with the partner behind a Sending Connection. If the file was previously shared and then revoked, the share is restored. Calling it again on an active share updates the share_level in place.

Parameters

NameTypeDescription
remote_idstrThe ID of the Sending Connection to share to.
file_idstrThe file_id of the resource to share.
share_file_to_sending_remote_dtoShareFileToSendingRemoteDto | NoneOptional body. share_level is ReceivedAccessLevel.VIEWER (default) or ReceivedAccessLevel.EDITOR.

share_level controls what the partner can do with their copy. Viewer is read-only; Editor lets the receiving organization run jobs on the resource and add revisions to their copy. You cannot request Editor on a connection whose received_access_level is Viewer, or when the administrator has listed you as a View-level permitted sender on that connection.

Returns: RemoteFileShareDto — the share record, with id, sending_connection_id, sending_connection_label, file_id, share_level, created, is_archived, and archived.

resource = client.get_resource("resource-id-here")

share = client.share_file_to_sending_remote(
remote_id="sending-connection-id-here",
file_id=resource.file_id,
)
print(share.share_level) # Viewer

revoke_file_from_sending_remote​

V3Client.revoke_file_from_sending_remote(
remote_id,
file_id,
) -> RemoteFileShareDto

Stop sharing a resource's file over a Sending Connection. This stops future synchronization and sends a revocation signal across the connection; the partner's platform tombstones its copy on a later sync cycle. Revocation is best-effort and cannot purge data the partner has already exported. See Revocation and Tombstoned Files.

Parameters

NameTypeDescription
remote_idstrThe ID of the Sending Connection to revoke from.
file_idstrThe file_id of the resource to stop sharing.

Returns: RemoteFileShareDto — the share record with is_archived=True and archived set.

resource = client.get_resource("resource-id-here")

revoked = client.revoke_file_from_sending_remote(
remote_id="sending-connection-id-here",
file_id=resource.file_id,
)
print(revoked.is_archived) # True

list_sending_remote_shares_for_resource​

V3Client.list_sending_remote_shares_for_resource(
resource_id,
*,
cursor=None,
size=None,
include_total=None,
show_archived=None,
) -> CursorPageRemoteFileShareDto

List the Sending Connections a resource is shared to. This is the SDK equivalent of the Connections row on the resource's details pane. The resource's underlying file is resolved automatically, so pass the resource_id.

Parameters

NameTypeDescription
resource_idstrThe resource_id of the resource to list shares for.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonenext_page from the previous page.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
show_archivedbool | NoneNoneInclude revoked shares when True.

Returns: CursorPageRemoteFileShareDto — paginated list of RemoteFileShareDto. By default only active shares are returned.

page = client.list_sending_remote_shares_for_resource(resource_id="resource-id-here")
for share in page.items:
print(share.sending_connection_label, share.share_level)

Secure connection governance​

Owners, permitted senders, infosec mappings, sync status, and tag-rule checks for a remote created with the Remote connections methods. remote_id is that connection's id.

Starring a Secure Connection is separate from resource and system favorites.

favorite_connection​

V3Client.favorite_connection(connection_id) -> None

unfavorite_connection​

V3Client.unfavorite_connection(connection_id) -> None

get_receiving_connection_owners​

V3Client.get_receiving_connection_owners(remote_id) -> list[ReceivingConnectionOwnerDto]

set_receiving_connection_owners​

Replaces the owner list. An owner without access_level is EDITOR.

V3Client.set_receiving_connection_owners(
remote_id,
set_receiving_connection_owners_dto,
) -> list[ReceivingConnectionOwnerDto]

SetReceivingConnectionOwnersDto.owners is the complete list.

get_sending_connection_permitted_senders​

V3Client.get_sending_connection_permitted_senders(remote_id) -> list[SendingConnectionPermittedSenderDto]

set_sending_connection_permitted_senders​

Replaces the permitted-sender list. A sender without access_level is EDITOR.

V3Client.set_sending_connection_permitted_senders(
remote_id,
set_sending_connection_permitted_senders_dto,
) -> list[SendingConnectionPermittedSenderDto]

get_receiving_connection_infosec_levels​

Incoming infosec levels observed on a receiving connection.

V3Client.get_receiving_connection_infosec_levels(remote_id) -> list[ReceivingConnectionInfosecLevelDto]

get_receiving_connection_infosec_level_mappings​

V3Client.get_receiving_connection_infosec_level_mappings(remote_id) -> list[ReceivingConnectionInfosecLevelMappingDto]

set_receiving_connection_infosec_level_mappings​

Replaces the mapping list. An empty list removes every mapping.

V3Client.set_receiving_connection_infosec_level_mappings(
remote_id,
set_receiving_connection_infosec_level_mappings_dto,
) -> list[ReceivingConnectionInfosecLevelMappingDto]

get_receiving_connection_control_tags​

V3Client.get_receiving_connection_control_tags(remote_id) -> list[ReceivingConnectionControlTagDto]

list_receiving_remote_sync_statuses​

V3Client.list_receiving_remote_sync_statuses(
remote_id,
only_with_updates=None,
cursor=None,
size=None,
include_total=None,
) -> CursorPageSyncStatusUpdateDtoCustomized

list_sending_remote_sync_statuses​

Same parameters and return type as list_receiving_remote_sync_statuses, for a sending remote.

list_resource_sync_status_by_connection​

Most recent sync status of one resource on each Secure Connection.

V3Client.list_resource_sync_status_by_connection(resource_id) -> list[ResourceSyncStatusByConnectionDto]

evaluate_sending_remote_tag_sets​

Previews what a sending remote's tag rules do to the given control-tag sets. Results come back in request order.

V3Client.evaluate_sending_remote_tag_sets(
remote_id,
evaluate_sending_tag_sets_with_hypothetical_rule_set_dto,
) -> list[SendingTagSetEvaluationDto]

tag_sets is a list of tag-id lists (at most 1000 sets, 200 ids each). hypothetical_rule_set is optional.

validate_receiving_remote_manifest_catalog​

Checks a manifest's control-tag catalog against a receiving remote. Send the tags the manifest reports as unarchived.

V3Client.validate_receiving_remote_manifest_catalog(
remote_id,
validate_manifest_catalog_dto,
) -> ManifestCatalogValidationDto

ValidateManifestCatalogDto.control_tag_ids holds at most 1000 ids.

Object stores​

list_object_stores​

V3Client.list_object_stores(
cursor=None,
size=None,
include_total=None,
) -> CursorPageObjectStoreDto

size is 0–100 and defaults to 10. Pass the previous response's cursor to continue.