-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpost_artifact.py
77 lines (55 loc) · 2.66 KB
/
post_artifact.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
"""
Example - Publish a new data artifact via your connector
Last update: 2024-11-05
This request publishes a data artifact on a custom connector using a connection to the connector.
It uses a pre-established connection from the examples request to our connector.
The following operations are demonstrated:
1. Load environment variables (your connector configs) from a `.env` file.
2. Establish a connection to your TSG connector.
3. Load the contract offer from a file.
4. Publish a data artifact on your connector.
Important:
- Ensure that the required environment variables (Your Connector `API_KEY`, `CONNECTOR_ID`, `ACCESS_URL` and `AGENT_ID`) are set in the .env file before using this request.
- The connector `API_KEY` can be retrieved by loging into the TSG connector UI and navigating to the 'API Keys' tab.
Execute the code below to publish a data artifact on your connector.
Ensure that the required parameters are specified before executing the request:
- artifact_path: The path to the data artifact.
- artifact_description: The description of the data artifact.
- artifact_title: The title of the data artifact.
- contract_offer_path: The path to the contract offer file.
- catalog_id (Optional): The id of the catalog to add the artificat. If the catalog does not exist it will be created
"""
if __name__ == "__main__":
from loguru import logger
from dotenv import dotenv_values
from tsg_client.controllers import TSGController
# Comment the line below to enable internal logger:
logger.disable("")
# Load environment variables:
config = dotenv_values('.env')
# Connect to our TSG connector:
conn = TSGController(
api_key=config['API_KEY'],
connector_id=config['CONNECTOR_ID'],
access_url=config['ACCESS_URL'],
agent_id=config['AGENT_ID']
)
# Specify the required parameters:
artifact_path = ".files/artifacts/default.json"
artifact_description = "Example artifact (default) - TSG Client"
artifact_title = "TSG-Client Example"
contract_offer_path = "./files/contracts/default.json"
# Read the contract offer content from the file:
with open(contract_offer_path, 'r') as file:
contract_offer_content = file.read()
# Open the artifact file in binary mode:
with open(artifact_path, 'rb') as artifact_file:
data_artifact = conn.publish_data_artifact(
title=artifact_title,
artifact_file=artifact_file,
description=artifact_description,
contract_offer=contract_offer_content
)
print("-" * 79)
print("Data Artifact:")
print(data_artifact)