Think-it Sandbox Environment on AWS for Data Spaces Demonstrators.
- Phase 1: Secure and sovereign integration of internal data systems to the data space
- Phase 2: Discovery & Assessment
- Phase 3: Contract Negotiation & Agreement
- Phase 4: Data Transfer & Integration
Lab Persona | Participant ID | Connector Protocol API |
---|---|---|
City of Madrid - Urban Infrastructure Manager | MADRID_MUNICIPALITY | https://madrid-municipality.dataspace-sandbox.think-it.io/api/dsp |
SEAT - Automotive Innovation Leader | CAR_MANUFACTURER_1 | https://car-manufacturer-1.dataspace-sandbox.think-it.io/api/dsp |
Renault - Strategic Mobility Partner | CAR_MANUFACTURER_2 | https://car-manufacturer-2.dataspace-sandbox.think-it.io/api/dsp |
EMT Madrid - Public Transport Authority | EMT_MADRID | https://emt-madrid.dataspace-sandbox.think-it.io/api/dsp |
Madrid Road Maintenance Company | ROADS_COMPANY_SL | https://roads-company-sl.dataspace-sandbox.think-it.io/api/dsp |
- Navigate to the
collections/Postman/
directory. - Import the
Think-it EDC Connector - Basic.json
file into Postman.
- Define the
base_url
variables in your Postman environment. The base URL of your connector's HTTP API.
- Ensure that the necessary authentication header
api_key
is configured in the Postman collection.
- Use the provided requests to interact with the connector.
Learning Objective: Understand how to register and publish data offers in a data space
Before you can participate in the data space ecosystem, you need to contribute value to the network. Your organization has valuable pothole data that other partners need for their route planning and road maintenance. Register your data assets to make them discoverable and establish your organization as a trusted data provider in the network.
Using the Think-it Simple AWS S3 Browser, download and view the data available to your company.
With Postman, use the Create Asset V3
request:
- Update
@id
with your unique asset identifier - Update
properties
section with descriptive metadata (title, description, organization) - Configure the
dataAddress
section with your S3 bucket information:
"dataAddress": {
"type": "AmazonS3",
"objectName": "your-data-file.json",
"region": "<REPLACE WITH THE BUCKET REGION>",
"bucketName": "<REPLACE WITH THE SOURCE BUCKET NAME>",
"accessKeyId": "<REPLACE WITH YOUR ACCESS KEY ID>",
"secretAccessKey": "<REPLACE WITH SECRET ACCESS KEY>"
}
With Postman, use the Create Policy Definition V3
request:
- In the Pre-request Script tab, set the
policyId
variable (e.g.,policy-1
) - The default request body already includes the permission structure with "use" action and empty constraints. It allows the usage without restrictions.
- Send the request and save the policy ID for the next step
With Postman, use the Create Contract Definition V3
request:
- In the Pre-request Script tab, configure:
definitionId
: Your contract definition ID (e.g.,contract-definition-1
)accessPolicyId
: The policy ID from step 4contractPolicyId
: The policy ID from step 4
This creates a contract that allows access to my datasets with no restrictions.
Use the Request Catalog V3
request:
- In the Pre-request Script tab, set
counterPartyAddress
to your own DSP endpoint:https://your-company.dataspace-sandbox.think-it.io/api/dsp
- Send the request and verify your asset appears in the catalog response
Learning Objective: Understand data space catalog discovery and asset identification
Your team has identified 4 key supplier categories (2 car manufacturers, the municipality of Madrid, EMT Madrid and the road maintenance company) that have relevant data. Time to discover what data is actually available in the data space network.
Review the list of participants in the data space network and note their DSP endpoint URLs (e.g., https://partner-company.dataspace-sandbox.think-it.io/api/dsp
).
With Postman, use the Request Catalog V3
request:
- In the Pre-request Script tab, set
counterPartyAddress
to the target connector's DSP endpoint - Send the request to fetch the partner's catalog
- Repeat for each partner organization you want to discover their catalog of offers
For each catalog response:
- Examine the available datasets and their metadata (title, description, properties)
- Note the
@id
field of datasets you're interested in (you'll need this for negotiation) - Review the
odrl:hasPolicy
section to understand usage requirements and constraints
Create a summary of:
- Which partners have relevant datasets for your use case
- The asset IDs and offer IDs you plan to negotiate
- Any policy constraints that might affect your usage
Learning Objective: Master data usage agreements and sovereignty controls
Legal compliance requires that all supplier data used in your report must have clear usage agreements, audit trails, and purpose limitations. Your legal team has provided specific policy requirements that must be embedded in all data sharing contracts.
With Postman, use the Initiate Contract Negotiation V3
request:
- In the Pre-request Script tab, configure the following variables:
counterPartyAddress
: Provider's DSP endpoint (e.g.,https://provider.dataspace-sandbox.think-it.io/api/dsp
)counterPartyId
: Provider's participant ID (found in catalog response)offerId
: The offer ID from the catalog (format:assetId:policyId:definitionId
)assetId
: The asset ID you want to access
- In the request body, update the
policy
section by copying the exact policy from the provider's catalog response that you received in the previous step
- Ensure the policy's
@id
,assigner
, andtarget
fields match the catalog offer - Send the request and save the returned
negotiationId
from the response
With Postman, use the Get Negotiation State V3
request:
- In the Pre-request Script tab, set
negotiationId
to the ID from the previous step - Send the request repeatedly (every few seconds) to monitor the negotiation progress
- Wait until the state becomes
FINALIZED
Once the negotiation is finalized:
- Note the
agreementId
from the response (needed for data transfer in Phase 4) - You can also use the
Get Agreement For Negotiation V3
request if needed to retrieve the agreement ID later
Learning Objective: Execute secure, sovereign data transfers
Contracts are signed, policies are in place. Now execute the actual data transfer(s). Your CFO wants to see real numbers, not just promises.
With Postman, use the Create Transfer Process V3
request:
- In the Pre-request Script tab, configure:
counterPartyAddress
: Provider's DSP endpoint (same as used in negotiation)contractId
: The agreement ID obtained from the finalized negotiation (useGet Agreement For Negotiation V3
if needed)transferType
: Set toAmazonS3-PUSH
- In the request body, add the following data destination to receive data on your S3 Bucket:
"dataDestination": {
"type": "AmazonS3",
"objectName": "your-destination-data-filename",
"region": "<REPLACE WITH THE BUCKET REGION>",
"bucketName": "<REPLACE WITH THE SOURCE BUCKET NAME>",
"accessKeyId": "<REPLACE WITH YOUR ACCESS KEY ID>",
"secretAccessKey": "<REPLACE WITH SECRET ACCESS KEY>"
}
- Send the request and save the returned
transferProcessId
With Postman, use the State Transfer Process V3
request:
- In the Pre-request Script tab, set the
transferProcessId
from the previous step - Send the request repeatedly (every few seconds) to monitor the transfer state. Wait until the transfer state becomes
COMPLETED
Once the transfer is completed:
- Visit the Think-it AWS Simple S3 Browser application of your organization's bucket
- Verify that the data file appears in the expected location
Download and review the transferred data:
- Review the data structure and content
- Discuss with your team:
- What data did you receive and how does it align with the catalog description?
- What challenges did you encounter during the data space workflow?
- How could this data be integrated with your organization's systems?