import requests
url = "https://platform.ankra.app/org/stack-profiles/{profile_id}/demos/{workspace_id}/connection-proposal"
headers = {"cookie": "ankra_session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'ankra_session='}};
fetch('https://platform.ankra.app/org/stack-profiles/{profile_id}/demos/{workspace_id}/connection-proposal', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://platform.ankra.app/org/stack-profiles/{profile_id}/demos/{workspace_id}/connection-proposal \
--cookie ankra_session={
"demo_status": "<string>",
"observable": true,
"reason": "<string>",
"observed_services": 123,
"observed_secrets": 123,
"proposals": [
{
"connection": {
"protocol": "<string>",
"endpoints": [
{
"name": "<string>",
"scheme": "<string>",
"service": "<string>",
"port": 123
}
],
"secret_name": "<string>",
"secret_keys": [
"<string>"
],
"fields": {}
},
"complete": true,
"confidence": "high",
"unresolved": [
"<string>"
],
"reasons": [
"<string>"
]
}
],
"note": "<string>"
}Propose a service connection from a demo (browser session)
Observes one running demo of a stack profile on the organisation’s staging cluster and proposes the connection blocks a service package built from the profile could declare: one per Service port speaking PostgreSQL, Redis, NATS, OpenSearch, S3, VictoriaLogs or VictoriaMetrics, with each field mapped to a key of the Secret that holds the most of its credentials. Only Service ports and Secret key names are read, never Secret values, and nothing is written or tried. observable false means the demo’s namespace could not be observed yet (the demo is not ready, or the staging cluster could not list its Services and Secrets) and reason says why; it is never an empty answer. Publishing the package lets the readiness canary verify the connection.
import requests
url = "https://platform.ankra.app/org/stack-profiles/{profile_id}/demos/{workspace_id}/connection-proposal"
headers = {"cookie": "ankra_session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'ankra_session='}};
fetch('https://platform.ankra.app/org/stack-profiles/{profile_id}/demos/{workspace_id}/connection-proposal', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://platform.ankra.app/org/stack-profiles/{profile_id}/demos/{workspace_id}/connection-proposal \
--cookie ankra_session={
"demo_status": "<string>",
"observable": true,
"reason": "<string>",
"observed_services": 123,
"observed_secrets": 123,
"proposals": [
{
"connection": {
"protocol": "<string>",
"endpoints": [
{
"name": "<string>",
"scheme": "<string>",
"service": "<string>",
"port": 123
}
],
"secret_name": "<string>",
"secret_keys": [
"<string>"
],
"fields": {}
},
"complete": true,
"confidence": "high",
"unresolved": [
"<string>"
],
"reasons": [
"<string>"
]
}
],
"note": "<string>"
}Authorizations
Browser session. Mutations also require X-Ankra-CSRF.
Response
The proposals, or why the demo could not be observed
The demo's status when it was asked.
Whether the demo's namespace was observed. False means it could not be observed yet, never that it holds nothing; reason says why.
Why the namespace was not observed, or why an observed one proposes nothing; empty otherwise.
How many Services the observation listed.
How many Secrets the observation listed, by name and key names only.
At most 10, most likely first: complete before incomplete, then by confidence.
Show child attributes
Show child attributes
That the proposals are untried and how publishing verifies them.