connector/provider
| Step | Summary |
|---|---|
connector/provider/create_asset |
Register an asset at the provider connector. |
connector/provider/create_contract_definition |
Publish assets by binding them to an access and a contract policy. |
connector/provider/create_mock_asset |
Offer one of the run's own mocks as an asset on the engine connector. |
connector/provider/create_policy |
Register an ODRL policy definition at the provider connector. |
connector/provider/delete_asset |
Delete an asset from the provider connector. |
connector/provider/delete_contract_definition |
Delete a contract definition from the provider connector. |
connector/provider/delete_policy |
Delete a policy definition from the provider connector. |
connector/provider/retire_asset_agreements |
Retire all engine provider agreements referencing one exact asset. |
connector/provider/retire_contract_agreement |
Retire an engine provider agreement to prevent future transfers. |
connector/provider/create_asset
Register an asset at the provider connector.
What the asset is is not written into the step: it is configured once in the manifest's env.variables and handed to the step as a single asset input, so the same asset can be reused across tests. An asset that already exists is not an error: the connector answers 409 and the step reports the ID it would have created, so a test can be re-run against a provider it has already provisioned.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
asset |
object | no | {} |
— | The whole asset definition, as declared by a 'config/connector/asset' manifest variable and referenced as '${{ env. |
Output — the value assertions and returns: read
Output contract of connector/provider/create_asset.
| Field | Type | Description |
|---|---|---|
asset_id |
string | ID of the asset that now exists at the provider. |
connector/provider/create_contract_definition
Publish assets by binding them to an access and a contract policy.
This is the step that makes an asset appear in the provider's catalog; the assets and both policies must already exist. While the run is paused the definition is withdrawn, and it is created again on resume (player.execution.hold). The SDK's own create_contract only ever offers a single asset, so the definition is built here and posted through the contract-definition controller.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
contract_definition_id |
string | no | '' |
— | Contract definition ID; a fresh UUID is used when omitted. |
contract_policy_id |
any | no | '' |
— | Policy governing what the consumer may do with the data. |
access_policy_id |
any | no | '' |
— | Policy governing who may see the offer at all. |
asset_id |
any | no | '' |
— | Single asset the contract definition offers; ignored when 'asset_selector' is given. |
asset_selector |
list of FilterExpression | no | [] |
— | Criteria selecting which assets the definition offers, for a definition that covers more than one. Wins over 'asset_id'. |
Output — the value assertions and returns: read
Output contract of connector/provider/create_contract_definition.
| Field | Type | Description |
|---|---|---|
contract_definition_id |
string | ID of the contract definition that now exists at the provider. |
connector/provider/create_mock_asset
Offer one of the run's own mocks as an asset on the engine connector.
The reflexive asset: the system under test negotiates it and calls through its data plane, and the data plane forwards to the engine's mock. The data address is the mock server's root, with the path, method and body proxied, and carries the key the mock requires as header:<name> — so a call the data plane forwards is answered, and a call made to the mock URL directly is refused. The key never appears in the test: it is read from the mock. It sits only in the asset's private data address, which neither the catalog nor the EDR the system under test receives carries, and it is masked wherever the run is written down. The key is new every run, so an asset left by an earlier run with the same id would forward the wrong one. The connector keeps an existing asset on 409, so that is an error here rather than the "already there" that create_asset reports; give the asset id the run id (${{ execution.id }}) and withdraw it in teardown.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
asset |
object | yes | — | — | The asset, as declared by a 'config/connector/mock_asset' variable and referenced as '${{ env. |
mock |
MockInstance | yes | — | — | The mock the asset fronts, as 'mock/api' returned it. Its root becomes the data address, and the key it requires a header the data plane sends. |
base_url |
string | no | '' |
— | Where the connector's data plane reaches the mock server, when that is not the root the mock published (the engine's mock_public_url) — a data plane in another network. Defaults to the mock's 'base_mock_url'. |
Output — the value assertions and returns: read
Output contract of connector/provider/create_asset.
| Field | Type | Description |
|---|---|---|
asset_id |
string | ID of the asset that now exists at the provider. |
connector/provider/create_policy
Register an ODRL policy definition at the provider connector.
The rules are not written into the step: the policy is configured once in the manifest's env.variables and handed to the step as a single policy input, so the same policy can be reused across tests. As with create_asset, a 409 from the connector is reported as success against the existing policy rather than failing the step.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
policy |
object | no | {} |
— | The whole ODRL policy, as declared by a 'config/connector/policy' manifest variable and referenced as '${{ env. |
Output — the value assertions and returns: read
Output contract of connector/provider/create_policy.
| Field | Type | Description |
|---|---|---|
policy_id |
string | ID of the policy that now exists at the provider. |
connector/provider/delete_asset
Delete an asset from the provider connector.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
asset_id |
string | no | '' |
— | Asset to delete; falls back to the 'asset_id' context variable. |
Output — the value assertions and returns: read
What a delete step publishes: the status the server answered it with.
| Field | Type | Description |
|---|---|---|
status_code |
integer | HTTP status the delete was answered with. |
connector/provider/delete_contract_definition
Delete a contract definition from the provider connector.
Deleting this withdraws the offer from the catalog but leaves the asset and policies in place.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
contract_definition_id |
string | no | '' |
— | Contract definition to delete; falls back to the 'contract_definition_id' context variable. |
Output — the value assertions and returns: read
What a delete step publishes: the status the server answered it with.
| Field | Type | Description |
|---|---|---|
status_code |
integer | HTTP status the delete was answered with. |
connector/provider/delete_policy
Delete a policy definition from the provider connector.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
policy_id |
string | no | '' |
— | Policy to delete; falls back to the 'policy_id' context variable. |
Output — the value assertions and returns: read
What a delete step publishes: the status the server answered it with.
| Field | Type | Description |
|---|---|---|
status_code |
integer | HTTP status the delete was answered with. |
connector/provider/retire_asset_agreements
Retire all engine provider agreements referencing one exact asset.
Queries all pages before retiring any agreement, and checks each asset ID. A failed retirement does not prevent attempts for the remaining agreements. Use SOFT validations in teardown; retirement preserves agreement history.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
reason |
string | no | 'TCK execution ended' |
— | Reason recorded in the provider's retirement history. |
asset_id |
string | yes | — | — | Exact engine asset ID whose provider agreements are retired. |
Output — the value assertions and returns: read
__
| Field | Type | Description |
|---|---|---|
asset_id |
string | Exact engine asset selected for cleanup. |
agreement_ids |
list of string | All matching provider agreements discovered before retirement. |
retirements |
list of RetirementResult | Actual retirement outcome for each agreement. |
status_code |
integer | 204 when all succeeded or none matched; first failure status, or 0 for a transport/invalid query failure. |
error |
string | Query or transport diagnostic, empty when discovery succeeded. |
connector/provider/retire_contract_agreement
Retire an engine provider agreement to prevent future transfers.
Agreement history remains, so retirement does not guarantee asset deletion. Refused requests retain their status and body; use SOFT validations in teardown. No HTTP response is reported as status 0, never as successful retirement.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
reason |
string | no | 'TCK execution ended' |
— | Reason recorded in the provider's retirement history. |
agreement_id |
string | yes | — | — | Agreement to retire on the engine provider connector. |
Output — the value assertions and returns: read
__
| Field | Type | Description |
|---|---|---|
agreement_id |
string | Provider agreement targeted for retirement. |
status_code |
integer | Actual HTTP status; 0 means no HTTP response. |
response_body |
object | Connector response or transport error. |
Nested objects
FilterExpression
One catalog filter criterion.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
operand_left |
string | yes | — | — | Left-hand property of the criterion, e.g. 'https://w3id.org/edc/v0.0.1/ns/id'. |
operator |
string | no | '=' |
— | Comparison operator. |
operand_right |
any | no | '' |
— | Value the left-hand property is compared against. |
MockInstance
A registered mock, as the steps that use it later need to see it.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
endpoint_id |
string | no | '' |
— | Identifier the mock was registered under, when it was given one. |
path |
string | yes | — | — | Path the mock listens on. |
method |
string | yes | — | — | HTTP method the mock answers. |
base_mock_url |
string | yes | — | — | Root URL of the testlab mock server. |
full_mock_url |
string | yes | — | — | Address the system under test calls — root plus path. |
RetirementResult
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
agreement_id |
string | yes | — | — | Provider agreement targeted for retirement. |
status_code |
integer | yes | — | — | Actual HTTP status; 0 means no HTTP response. |
response_body |
object | no | None |
— | Connector response or transport error. |