{"info":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","description":"<html><head></head><body><img src=\"https://pvml.com/wp-content/uploads/2024/11/img-3d-home-hero.png?t=1735745544&amp;t=1735745544\">\n\n<h1 id=\"get-started-here\">📄 Get started here!</h1>\n<h2 id=\"introduction\">Introduction</h2>\n<p>PVML is an IT infrastructure that lets organizations spin up <strong>Virtual Databases (VDBs)</strong>, logical and policy-controlled data access layers, on top of their existing data stack in seconds, <strong>without moving or duplicating data.</strong></p>\n<p>Each VDB enforces <strong>fine-grained access controls</strong> such as column-level policies, row-level security (RLS), query timeout, dynamic masking, and differential privacy, <strong>independent of the capabilities of the underlying database</strong>.</p>\n<p>VDBs are instantly consumable by <strong>any client</strong> through standard protocols, including:</p>\n<ul>\n<li><p><strong>ODBC/JDBC</strong> - for BI tools (Tableau, PowerBI, etc.)</p>\n</li>\n<li><p><strong>MCP</strong> (Model Context Protocol) - for GenAI applications and platforms (ChatGPT, Google AgentSpace, LangChain, etc.)</p>\n</li>\n<li><p><strong>API -</strong> for custom applications, agents, services, and programmatic integrations via REST/HTTP interfaces</p>\n</li>\n</ul>\n<h3 id=\"how-it-works\">How it works</h3>\n<p>A VDB consists of 2 components:</p>\n<ul>\n<li><p><em><strong>PVML Proxy Engine</strong></em> (reverse-proxy), matches any underlying database technology and can decode any query.</p>\n</li>\n<li><p><em><strong>PVML Security Engine</strong></em> (compiler), dialect-agnostic, can reconstruct any query and re-build it into a secure query. This means that guardrails enforcement is done solely as <strong>pre-processing</strong> via query transformation, making the solution <strong>efficient, secure, and optimized</strong> (under 3ms overhead).</p>\n</li>\n</ul>\n<p>A VDB <strong>does not ingest or store raw data</strong>. It acts like a database from a <strong>connectivity &amp; enforcement</strong> perspective:</p>\n<ul>\n<li><p>Exposing standard interfaces such as <strong>ODBC/JDBC</strong> for BI tools and <strong>MCP/A2A/API</strong> for GenAI agents.</p>\n</li>\n<li><p>Independently enforcing guardrails at runtime.</p>\n</li>\n<li><p>Built-in user-level authentication (oAuth for MCP)</p>\n</li>\n<li><p>Every data interaction is automatically audited</p>\n</li>\n</ul>\n<h3 id=\"whats-our-edge\">What's Our Edge?</h3>\n<p>We deliver <strong>bionic security at enterprise scale</strong>, bringing deterministic security to the non-deterministic GenAI era by combining advanced guardrails with runtime enforcement, so every AI interaction with enterprise data is governed and auditable by design.</p>\n<p>Our solution is 100% LLM free ✨</p>\n<h3 id=\"impact\">Impact</h3>\n<ul>\n<li><p><strong>Determinstic Security by Design:</strong> GenAI requires security that is not probabilistic, but predictable and auditable.</p>\n</li>\n<li><p><strong>No Workflow Changes:</strong> Legacy code from 30 years ago works as-is. Modern AI agents connect just the same.</p>\n</li>\n<li><p><strong>Enterprise-Grade Scale &amp; Performance:</strong> No more encryption or synthetic data. Get live, secure access with sub-3 ms latency.</p>\n</li>\n<li><p><strong>No Data Movement or Duplication:</strong> No siloed copies, no stale extracts. On-demand Virtual Databases for any usecase.</p>\n</li>\n<li><p><strong>Context-Aware Access at Scale:</strong> Infinite virtual databases over the same underlying data, enabling context-specific access identities at scale.</p>\n</li>\n</ul>\n<h2 id=\"guardrails\">Guardrails</h2>\n<p>IT teams can now unify permissions across all data sources through a centralized infrastructure plane. This eliminates inconsistent enforcement across systems, reduces operational complexity, and applies security controls uniformly at enterprise scale.</p>\n<p>Our <strong>Security Engine</strong> enables highly granular access control, including:</p>\n<ol>\n<li><p>Column level scoping</p>\n</li>\n<li><p>Row level security (RLS)</p>\n</li>\n<li><p>Dynamic masking</p>\n</li>\n<li><p>Differential Privacy</p>\n</li>\n<li><p>Query Validations</p>\n</li>\n</ol>\n<h3 id=\"differential-privacy---pvmls-proprietary-algorithms\">Differential Privacy - PVML's Proprietary Algorithms</h3>\n<p>PVML offers a robust data protection technology called Differential Privacy to protect data outputs with mathematical guarantees of individual privacy. This concept is unique since it requires no alterations to the underlying data, ensuring privacy is enforced at the output level of the analysis.</p>\n<h2 id=\"audit--visibility\">Audit &amp; Visibility</h2>\n<img src=\"https://content.pstmn.io/d3213f81-f0b8-4f57-865d-2bf124171348/QXVkaXQucG5n\">\n\n<p>Each virtual DB provides full visibility over all data interactions. You can track queries of all users, succes/failure rates, run duration and even the free text questions used in agentic pipelines.</p>\n<h3 id=\"security-and-compliance-applications\">Security and Compliance Applications</h3>\n<p>Security and compliance teams gain structured audit and security logs for every data interaction, including query metadata, user metadata, and policy violation attempts. Logs are emitted as JSON via stdout and integrate directly with standard observability and SIEM pipelines such as ELK, CloudWatch, Datadog, and enterprise monitoring platforms for investigations, threat detection, and compliance reporting.</p>\n<h3 id=\"product-and-business-applications\">Product and Business Applications</h3>\n<p>Product teams gain visibility into how users and AI agents interact with data through free-text questions, latency metrics, and success/failure tracking. Teams can identify recurring questions, repeated failures, broken workflows, and inefficient queries to improve agent behavior, optimize applications, refine prompts, and prioritize product improvements based on real usage patterns.</p>\n<h2 id=\"how-does-pvml-speed-up-my-genai-initiatives\">How Does PVML Speed Up My GenAI Initiatives?</h2>\n<ul>\n<li><p><strong>Security:</strong> VDB guardrails can be tailored to compliance and governance requirements, enabling initiatives previously blocked by security constraints.</p>\n</li>\n<li><p><strong>Connectivity:</strong> PVML automatically provides an MCP/A2A/API for each virtual database, plug-n-play into any agent building platform (e.g., Anthropic Claude, OpenAI ChatGPT, Microsoft Copilot Studio), AI application (e.g., Cursot, Claude Code) or internal solution (e.g., built on LangChain).</p>\n</li>\n<li><p><strong>Performace &amp; Accuracy:</strong> Each VDB can be optimally scoped for the GenAI initiative and includes a semantic layer for describing metadata and business context to LLMs, improving query generation, reasoning quality, response reliability, and overall application performance.</p>\n</li>\n</ul>\n<p>Note: <strong>We don’t rely on AI to enforce privacy and security</strong>. Instead, all LLM-generated queries are routed through our dedicated Security Engine, which ensures that results adhere to the VDB guardrails.</p>\n<h2 id=\"how-is-pvml-compliant\">How is PVML Compliant?</h2>\n<p>PVML provides cutting-edge data protection solutions powered by our proprietary Differential Privacy (DP) technology, recognized by the <a href=\"https://pvml.com/blog/differential-privacy-what-is-art-29-wp-really-saying-about-data-anonymization/\">EU Data Protection Board</a> as the only method capable of defending against all known data attack vectors. <a href=\"https://pvml.com/blog/the-european-data-act-a-new-era-for-privacy-regulation/#:~:text=Differential%20privacy%20enables%20secure%20data%20sharing%20while%20providing%20robust%20privacy%20guarantees.&amp;text=Extending%20privacy%20scrutiny%20to%20non,personal%20data%20under%20the%20GDPR.\">The EU Act</a> further underscores the importance of privacy-preserving technologies (PPT) like Differential Privacy. Our approach enables clients to securely access sensitive data without ever compromising privacy. As a SOC2-certified company, we adhere to rigorous standards for security, availability, and confidentiality, reaffirming our commitment to protecting data by design.</p>\n<img src=\"https://content.pstmn.io/0e215e0b-7f7a-4d83-bd7a-50ea22947555/UFZNTCAoMSkucG5n\" alt=\"PVML's%20Certifications\" width=\"424\" height=\"140\">\n\n<h2 id=\"pvml-architecture\">PVML Architecture</h2>\n<p>PVML's virtual databases require no installation, data movement, duplication, or modifications. This approach ensures that we do not store any sensitive raw data while providing a quick onboarding process with no changes to the existing workflow of end users.</p>\n<p>PVML can be deployed as a SaaS solution in any cloud environment (AWS, GCP, Azure) or on-premises in air-gapped environments.</p>\n<img src=\"https://content.pstmn.io/15dd45b4-42ac-4380-8d8a-3b05823470f0/UFZNTCAoMSkucG5n\" alt=\"PVML%20Architecture%20(GCP%20example)\">\n\n<h2 id=\"how-do-i-get-started\">How do I get started?</h2>\n<h3 id=\"via-api\">Via API</h3>\n<p>This documentation thoroughly covers all the essential APIs needed to manage your data access effectively.</p>\n<p>To get your API key and get started, navigate to <strong>Connections &gt; REST API &gt; Create.</strong></p>\n<p>You can open the documentation on Postman to easily test and run API calls.</p>\n<img src=\"https://content.pstmn.io/987b1caf-62b5-4687-bc4c-d864a2152a32/U2NyZWVuc2hvdCAyMDI1LTAyLTI1IGF0IDE0LjM0LjI1LnBuZw==\" alt=\"Test%20and%20execute%20PVML%20API%20calls\">\n\n<p>The fundamental elements necessary for PVML to function are the <strong>Datasources and Policies</strong>. Once these are configured and users are invited/created, you can use the policies as building blocks to create your desired <strong>Virtual DBs</strong>.</p>\n<p>We'll guide you through each step in the following sections to help you get everything up and running!</p>\n<h3 id=\"via-python-sdk\">Via Python SDK</h3>\n<p>The <a href=\"https://gitlab.com/pvml-infra/pvml-sdk\">PVML Python SDK</a> streamlines access to all key features of our platform, offering pre-built methods for API operations and efficient handling of data access workflows. It’s designed to help you integrate and automate tasks with minimal setup.</p>\n<img src=\"https://content.pstmn.io/4e250a72-1d6f-418c-b379-a68492519e5d/U2NyZWVuc2hvdCAyMDI2LTAyLTE4IGF0IDE0LjU2LjU2LnBuZw==\" alt=\"PVML%20Python%20SDK%20-%20example\">\n\n<h3 id=\"via-user-interface-platform\">Via User Interface (Platform)</h3>\n<p>PVML is fully available through the API, but we also have a really user-friendly UI platform (<a href=\"https://platform.pvml.com\">AWS</a>/<a href=\"https://gcp.pvml.com\">GCP</a>) with a complete walkthrough to guide you through everything hand in hand!</p>\n<img src=\"https://content.pstmn.io/e1865b50-92d6-4106-bfe7-bf0b6a9c3a54/VW50aXRsZWQgZGVzaWduICgyKS5wbmc=\" alt=\"PVML%20Platform%20Walkthrough\">\n\n<h3 id=\"contact-and-support\"><strong>Contact and Support</strong></h3>\n<p>In case you have questions, want to report an error or bug, or simply need additional assitance - don't hesitate to contact us at <a href=\"https://mailto:support@pvml.com\"><b>support@pvml.com</b></a> or fill out a form <a href=\"https://pvml.com/contact-us/\">here</a>.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"📄 Get started here!","slug":"get-started-here"}],"owner":"27304672","collectionId":"ba2ccc7b-f329-47c3-8792-83dfe106125b","publishedId":"2sAYBPmuPe","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"7177F8"},"publishDate":"2024-11-17T12:42:22.000Z"},"item":[{"name":"Workspaces","item":[{"name":"Workspace CRUD","item":[{"name":"Create Workspace","id":"055fc0df-c7c6-413e-a27d-66ddc68e9c25","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\": \"my workspace\",\n    \"description\": \"my team's workspace\"}","type":"text"},{"key":"image","value":"","type":"text"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces","description":"<p>This endpoint allows you to create a new workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<p>This request uses no parameters.</p>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>Form data containing:</p>\n<ul>\n<li><p><code>data</code> (text): Json with the following properties:</p>\n<ul>\n<li><p><code>name</code>(string): The name of the new workspace.</p>\n</li>\n<li><p><code>description</code>(string): The description of the new workspace.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <code>workspace</code> object in json format that includes the details of the newly created workspace:</p>\n<ul>\n<li><p><code>id</code> (string): The unique identifier of the new workspace.</p>\n</li>\n<li><p><code>name</code> (string): The name of the new workspace.</p>\n</li>\n<li><p><code>description</code> (string): The description of the new workspace.</p>\n</li>\n<li><p><code>image</code> (string): The path to the workspace's image.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"cfd9a851-b833-4ff7-8da6-a27712c2a4f5","name":"Create Workspace - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\": \"my workspace\",\n    \"description\": \"my team's workspace\"}","type":"text"},{"key":"image","type":"file","src":"postman-cloud:///1efb2ef0-c378-4df0-a88b-deece4b74912"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces"},"status":"Created","code":201,"_postman_previewlanguage":"","header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:00:57 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"workspace\": {\n        \"id\": \"88761f3b-fe8b-4b8c-8b14-320488644314\",\n        \"name\": \"my workspace\",\n        \"description\": \"my team's workspace\",\n        \"image\": \"\"\n    }\n}"}],"_postman_id":"055fc0df-c7c6-413e-a27d-66ddc68e9c25"},{"name":"Get Workspace","id":"9d719893-7781-412d-a42a-9dd3cd85ad85","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}?enrich=false","description":"<p>This endpoint retrieves a specific workspace by id.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will contain an array of workspaces in JSON format, where each workspace object includes the following fields:</p>\n<ul>\n<li><p><code>id</code> (string): The unique identifier for the workspace.</p>\n</li>\n<li><p><code>name</code> (string): The name of the workspace.</p>\n</li>\n<li><p><code>description</code> (string): A brief description of the workspace.</p>\n</li>\n<li><p><code>workspacePlan</code> (string): The plan or type of the workspace.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}"],"host":["platform","pvml","com"],"query":[{"key":"enrich","value":"false"}],"variable":[]}},"response":[{"id":"6f5230b3-bf75-4c92-8dd9-94acc410d7ca","name":"Get Workspace - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}?enrich=false","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}"],"query":[{"key":"enrich","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:05:06 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"83"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"f18f5b50-0279-499f-80cc-dc5b5969f177\",\n    \"name\": \"PVML - Demo\",\n    \"description\": \"\"\n}"}],"_postman_id":"9d719893-7781-412d-a42a-9dd3cd85ad85"},{"name":"Get Workspaces","id":"8b6ec931-d939-42b7-94b5-033b2dcb4692","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/users/{{user_id}}/workspaces?enrich=false&summary=true","description":"<p>This endpoint retrieves the workspaces associated with a specific user.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>user_id</code>(string): the unique id of the user in the workspace</p>\n</li>\n<li><p><code>summary</code>(boolean): a query parameter that determines whether to return additional summarized info.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will contain <code>workspaces</code> array in JSON format, where each workspace object includes the following fields:</p>\n<ul>\n<li><p><code>id</code> (string): The unique identifier for the workspace.</p>\n</li>\n<li><p><code>name</code> (string): The name of the workspace.</p>\n</li>\n<li><p><code>description</code> (string): A brief description of the workspace.</p>\n</li>\n<li><p><code>workspacePlan</code> (string): The plan or type of the workspace.</p>\n</li>\n<li><p><code>numOfUsers</code> (number): The number of users associated with the workspace (returned if <code>summmary</code> is <code>true</code>).</p>\n</li>\n<li><p><code>image</code> (string): The image associated with the workspace (returned if <code>summmary</code> is <code>true</code>).</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","users","{{user_id}}","workspaces"],"host":["platform","pvml","com"],"query":[{"key":"enrich","value":"false"},{"key":"summary","value":"true"}],"variable":[]}},"response":[{"id":"68fac55f-81a3-4d10-ad49-1e943190fc58","name":"Get Workspaces","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/users/{{user_id}}/workspaces?enrich=false&summary=true","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","users","{{user_id}}","workspaces"],"query":[{"key":"enrich","value":"false"},{"key":"summary","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"","header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:07:09 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"workspaces\": [\n        {\n            \"id\": \"d1d93525-22f8-44a1-adeb-6555b88879f7\",\n            \"name\": \"Business\",\n            \"description\": \"business workspace\",\n            \"numOfUsers\": 18,\n            \"image\": \"\"\n        },\n        {\n            \"id\": \"0c384d5c-d865-4fce-b78e-25f121835852\",\n            \"name\": \"Demo\",\n            \"description\": \"demo workspace\",\n            \"numOfUsers\": 1,\n            \"image\": \"\"\n        }\n    ]\n}"},{"id":"8bdf6553-fd41-429f-9217-e42b7b0cdc69","name":"Get User Workspaces without Summary - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/users/{{user_id}}/workspaces?enrich=false&summary=false","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","users","{{user_id}}","workspaces"],"query":[{"key":"enrich","value":"false"},{"key":"summary","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"","header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:10:33 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"661"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"workspaces\": [\n        {\n            \"id\": \"d1d93525-22f8-44a1-adeb-6555b88879f7\",\n            \"name\": \"Business\",\n            \"description\": \"business workspace\"\n        },\n        {\n            \"id\": \"0c384d5c-d865-4fce-b78e-25f121835852\",\n            \"name\": \"Demo\",\n            \"description\": \"demo workspace\"\n        }\n    ]\n}"}],"_postman_id":"8b6ec931-d939-42b7-94b5-033b2dcb4692"},{"name":"Update Workspace","id":"f3257371-382b-4163-9f23-e930df785a3d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\": \"new name\",\n    \"description\": \"my team's workspace\"\n}","type":"text"},{"key":"image","type":"file","src":"wLhZQ60Sh/PVML-3.png","disabled":true}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}","description":"<p>This endpoint allows you to update a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>Form data containing the fields to update:</p>\n<ul>\n<li><p><code>data</code> (text): Json with the following properties:</p>\n<ul>\n<li><p><code>name</code>(string): The name of the workspace.</p>\n</li>\n<li><p><code>description</code>(string): The description of the workspace.</p>\n</li>\n</ul>\n</li>\n<li><p><code>image</code> (File): The image for the workspace.</p>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>Upon successful update, the server returns a status code of 201 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"52fa031a-0da3-4660-a181-63b276924192","name":"201 Created","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"image","type":"file","src":"wLhZQ60Sh/PVML-3.png"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 01 Dec 2024 10:08:30 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"f3257371-382b-4163-9f23-e930df785a3d"},{"name":"Delete Workspace","id":"3f3cec8e-9622-4aa5-92f6-eac319296f92","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}","description":"<p>This endpoint is used to delete a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code> (string): The unique identifier of the workspace to be deleted.</li>\n</ul>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<p>This request does not contain a request body.</p>\n<h4 id=\"response\">Response</h4>\n<p>Upon successful deletion of the workspace, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"ebed04b6-ec02-4f64-8151-18784b69943b","name":"Delete Workspace - 200 Success","originalRequest":{"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/88761f3b-fe8b-4b8c-8b14-320488644314"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:16:29 GMT"},{"key":"Content-Length","value":"0"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"3f3cec8e-9622-4aa5-92f6-eac319296f92"}],"id":"2311e8d5-ce33-448d-8478-25720968b160","_postman_id":"2311e8d5-ce33-448d-8478-25720968b160","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"SSO","item":[{"name":"Create SSO Integration","id":"92a77d92-1c12-448d-8fdb-09fb30e80983","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n  \"createSsoProviderData\": {\n    \"type\": \"saml\",\n    \"vendor\": \"okta\",\n    \"name\": \"my_sso\",\n    \"configData\": {\n        \"samlData\": {\n            \"metadataUrl\": \"https://mydomain.okta.com/app/fdsasdfkttm1HtAJH3g697/sso/saml/metadata\"\n        }\n    }\n  }\n}","type":"text"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","sso"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"80d41917-a57f-45b6-bd38-da67f7948eda","name":"Create SSO Integration - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n  \"createSsoProviderData\": {\n    \"type\": \"saml\",\n    \"vendor\": \"okta\",\n    \"name\": \"rina_sso\",\n    \"configData\": {\n        \"samlData\": {\n            \"metadataUrl\": \"https://trial-1644979.okta.com/app/exkxukttm1HtAJH3g697/sso/saml/metadata\"\n        }\n    }\n  }\n}","type":"text"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:35:55 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"401"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"3a81d6b7-ef1a-47a3-99f5-5491d04fc729\",\n    \"workspaceId\": \"df0cb9c2-57fe-445c-9cef-1f05c148543c\",\n    \"vendor\": \"okta\",\n    \"type\": \"saml\",\n    \"createdAt\": \"2026-02-18T13:35:55.609064Z\",\n    \"name\": \"my_sso\",\n    \"workspaceLoginUrl\": \"https://platform.pvml.com:443/login/df0cb9c2-57fe-445c-9cef-1f05c148543c\",\n    \"configData\": {\n        \"samlData\": {\n            \"metadataUrl\": \"https://trial-1644979.okta.com/app/exkxukttm1HtAJH3g697/sso/saml/metadata\"\n        }\n    }\n}"}],"_postman_id":"92a77d92-1c12-448d-8fdb-09fb30e80983"},{"name":"Get SSO Providers","id":"2b4f0cde-2a57-4e72-ace1-57680edb02ca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","sso"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"1c624c9c-9811-42ef-a4ce-08a60ddf4ffb","name":"Get SSO Providers - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:20:56 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"255"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"ssoProviders\": [\n        {\n            \"id\": \"df0cb9c2-57fe-445c-9cef-1f05c148543c\",\n            \"type\": \"oauth\",\n            \"configData\": {},\n            \"vendor\": \"okta\",\n            \"name\": \"Okta\",\n            \"createdAt\": \"0001-01-01T00:00:00Z\",\n            \"workspaceLoginUrl\": \"https://platform.pvml.com:443/login/3eba813f-e16b-4b31-93fa-857a0a3a4b85\"\n        }\n    ]\n}"}],"_postman_id":"2b4f0cde-2a57-4e72-ace1-57680edb02ca"},{"name":"Get Redirect URL","id":"78607319-b472-4f51-b1c9-d3d22d16f91a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso/redirectUrl","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","sso","redirectUrl"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"ef28f6d8-b533-40f4-a0df-bad323a7d4db","name":"Get Redirect URL - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso/redirectUrl"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:26:36 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"77"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"redirectUrl\": \"https://platform.pvml.com:443/platform/api/v1/auth/callback\"\n}"}],"_postman_id":"78607319-b472-4f51-b1c9-d3d22d16f91a"},{"name":"Get SSO Integration","id":"2a2fc007-bf0a-4407-86a0-adf658d47a53","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso/{{sso_integration_id}}","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}},"urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","sso","{{sso_integration_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"31f39814-9ac3-4515-998b-1b801222c9d5","name":"Get SSO Integration - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso/{{sso_integration_id}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:43:07 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"534"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"ssoProvider\": {\n        \"id\": \"b6f96f2f-8689-4edf-86d6-448b24c50e93\",\n        \"workspaceId\": \"3eba813f-e16b-4b31-93fa-857a0a3a4b85\",\n        \"type\": \"saml\",\n        \"configData\": {\n            \"samlData\": {\n                \"metadataUrl\": \"https://mydomain.okta.com/app/fdsasdfkttm1HtAJH3g697/sso/saml/metadata\",\n                \"acsUrl\": \"https://platform.pvml.com/platform/api/v1/auth/saml/acs/b6f96f2f-8689-4edf-86d6-448b24c50e93\",\n                \"entityId\": \"PVML\"\n            }\n        },\n        \"vendor\": \"okta\",\n        \"name\": \"my_sso\",\n        \"createdAt\": \"2026-02-18T13:42:48.109499Z\",\n        \"workspaceLoginUrl\": \"https://platform.pvml.com:443/login/3eba813f-e16b-4b31-93fa-857a0a3a4b85\"\n    }\n}"}],"_postman_id":"2a2fc007-bf0a-4407-86a0-adf658d47a53"},{"name":"Update SSO Provider","id":"cc626623-bf4e-4565-825d-e7dff1851b0f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso/{{sso_integration_id}}?data={\"updateSsoProviderData\":{\"vendor\":\"google\",\"name\":\"newname\",\"type\":\"oauth\",\"configData\":{\"oauthData\":{\"clientId\":\"dd\",\"authUrl\":\"dd\",\"tokenUrl\":\"dd\",\"userInfoUrl\":\"dd\",\"scopes\":[]}}}}","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","sso","{{sso_integration_id}}"],"host":["platform","pvml","com"],"query":[{"key":"data","value":"{\"updateSsoProviderData\":{\"vendor\":\"google\",\"name\":\"newname\",\"type\":\"oauth\",\"configData\":{\"oauthData\":{\"clientId\":\"dd\",\"authUrl\":\"dd\",\"tokenUrl\":\"dd\",\"userInfoUrl\":\"dd\",\"scopes\":[]}}}}"}],"variable":[]}},"response":[],"_postman_id":"cc626623-bf4e-4565-825d-e7dff1851b0f"},{"name":"Delete SSO Integration","id":"4467bf00-a7e8-4521-9e61-ca7e767af6ad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso/a559a1da-d183-4e2a-a849-6edf9aae9b52","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","sso","a559a1da-d183-4e2a-a849-6edf9aae9b52"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"b8cf7fcd-bb88-45bb-a564-2f8595a88304","name":"Delete SSO Integration - 200 Success","originalRequest":{"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/sso/{{sso_integration_id}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 18 Feb 2026 13:40:59 GMT"},{"key":"Content-Length","value":"0"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"4467bf00-a7e8-4521-9e61-ca7e767af6ad"}],"id":"9ede652c-92ee-4dbf-aea4-75570d9ee6b8","description":"<p>PVML integrates with your IAM to streamline user management and leverage user attributes in dynamic policies (e.g., creating row-level security based on a user’s region in Okta).</p>\n","_postman_id":"9ede652c-92ee-4dbf-aea4-75570d9ee6b8","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}}],"id":"21a5d88f-7bc5-4e06-af09-3ca1a6dd82de","description":"<p>Everything in PVML is tied to a specific workspace. A workspace contains your datasources, users, policies, and a full audit log.</p>\n<p>To get your workspace id, go to <strong>System &gt; Settings &gt; General</strong> and copy the <strong>workspace id</strong>:</p>\n<img src=\"https://content.pstmn.io/ce3eda96-2f70-4347-bf19-3b12af7413a4/VW50aXRsZWQgZGVzaWduICgxKS5naWY=\" alt=\"PVML%20-%20Get%20Workspace%20ID\" />\n\n<p>#workspaceid #workspace #id #howto</p>\n","_postman_id":"21a5d88f-7bc5-4e06-af09-3ca1a6dd82de","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Users","item":[{"name":"Groups","item":[{"name":"Create Group","id":"22e0f438-84b4-472e-991e-cb8814ad8137","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\"name\": \"new group\",\n\"description\": \"some description\"}","type":"text"},{"key":"image","type":"file","src":"postman-cloud:///1efb2ef0-c378-4df0-a88b-deece4b74912"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups","description":"<p>This endpoint allows to create a new group in a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>Form data containing the fields to update:</p>\n<ul>\n<li><p><code>data</code> (text): Json with the following properties:</p>\n<ul>\n<li><p><code>name</code>(string): The name of the group.</p>\n</li>\n<li><p><code>description</code>(string): The description of the group.</p>\n</li>\n</ul>\n</li>\n<li><p><code>image</code> (File): The image for the group.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>Upon successful update, the server returns a status code of 201 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","groups"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"6ab702b2-4afc-4616-bcf0-d4d75461b08f","name":"Create Group - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\"name\": \"group10\",\n\"description\": \"my group10\"}","type":"text"},{"key":"image","type":"file","src":"postman-cloud:///1efb2ef0-c378-4df0-a88b-deece4b74912"}],"options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 11:22:11 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"34502"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"86c6-LIfRdHn4ACtsa5b98XtQvR72EU0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"group\": {\n        \"id\": \"36e070cf-0a59-4ce3-82c0-c9c79909acfe\",\n        \"name\": \"new group\",\n        \"description\": \"some description\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"createdAt\": \"2024-12-08T11:22:11.58136Z\",\n        \"lastModifiedAt\": \"2024-12-08T11:22:11.58136Z\",\n        \"image\": \"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M+Kf31ecxhJbT05t5MnTit4aK+fPv5OMAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQPn8f74Yp8BtfhtoAAAAAElFTkSuQmCC\"\n    }\n}"}],"_postman_id":"22e0f438-84b4-472e-991e-cb8814ad8137"},{"name":"Get Group","id":"bea6aa4c-8097-48c4-b6ea-c0933f93ef22","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}?enrich=false","description":"<p>This endpoint retrieves a specific group within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><code>group_id</code> (string): The unique identifier of the group.</p>\n</li>\n<li><p><code>enrich</code> (boolean): when set to <code>true</code>, the request returns additional details such as the group's image and users count.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><p><code>group</code>:</p>\n<ul>\n<li><p><code>id</code> (string): Unique identifier for the group.</p>\n</li>\n<li><p><code>name</code> (string): The name of the group.</p>\n</li>\n<li><p><code>description</code> (string): Description of the group.</p>\n</li>\n<li><p><code>workspaceId</code> (string): Unique identifier for the workspace to which the group belongs.</p>\n</li>\n<li><p><code>createdAt</code> (string, ISO 8601 format) Timestamp when the group was created.</p>\n</li>\n<li><p><code>lastModifiedAt</code> (string, ISO 8601 format): Timestamp when the group was last modified.</p>\n</li>\n<li><p><code>usersCount</code> (int): Number of users that belong to this group (returned if <code>enrich</code> is <code>true</code>).</p>\n</li>\n<li><p><code>image</code> (Base64-encoded string): binary image data; decode to retrieve the original image (returned if <code>enrich</code> is <code>true</code>).</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","groups","{{group_id}}"],"host":["platform","pvml","com"],"query":[{"key":"enrich","value":"false"}],"variable":[]}},"response":[{"id":"4cc58a89-fd42-49e9-85dd-d66245e5a4de","name":"Get Group - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 12:20:32 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"230"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"e6-Ul+ZV9wkwFCVXd5JmMkV7icLPvI\""}],"cookie":[],"responseTime":null,"body":"{\n    \"group\": {\n        \"id\": \"ec62fea7-3f78-4f32-99b7-edbf419120d0\",\n        \"name\": \"Admins\",\n        \"description\": \"\",\n        \"workspaceId\": \"e90a2705-b453-4836-bb8a-6a9c29b3e3c7\",\n        \"createdAt\": \"2024-06-13T07:20:52.068165Z\",\n        \"lastModifiedAt\": \"2024-12-02T09:31:56.368762Z\"\n    }\n}"},{"id":"52413518-460b-49dd-b776-e0440296100d","name":"Get Group - Enriched - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}?enrich=true","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","groups","{{group_id}}"],"query":[{"key":"enrich","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 09:28:57 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"10864"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2a70-jrVd1pNBWPiIoJmZnAFcd+/M/9Y\""}],"cookie":[],"responseTime":null,"body":"{\n    \"group\": {\n        \"id\": \"ec62fea7-3f78-4f32-99b7-edbf419120d0\",\n        \"name\": \"Admins\",\n        \"description\": \"\",\n        \"workspaceId\": \"e90a2705-b453-4836-bb8a-6a9c29b3e3c7\",\n        \"createdAt\": \"2024-06-13T07:20:52.068165Z\",\n        \"lastModifiedAt\": \"2024-12-02T09:31:56.368762Z\",\n        \"usersCount\": 8,\n        \"image\": \"\"\n    }\n}"}],"_postman_id":"bea6aa4c-8097-48c4-b6ea-c0933f93ef22"},{"name":"Get Groups","id":"c09452bd-5487-466b-bb5d-d05f745b3676","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups?summary=true","description":"<p>This endpoint retrieves the groups within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><code>summary</code> (boolean): when set to <code>true</code>, the request returns additional details such as each group's image and users count.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><p><code>groups</code><strong>:</strong> a list of users associated with a workspace</p>\n<ul>\n<li><p><code>group</code>:</p>\n<ul>\n<li><p><code>id</code>: (String) Unique identifier for the group.</p>\n</li>\n<li><p><code>name</code> (string): The name of the group.</p>\n</li>\n<li><p><code>description</code> (string): Description of the group.</p>\n</li>\n<li><p><code>workspaceId</code> (string): Unique identifier for the workspace to which the group belongs.</p>\n</li>\n<li><p><code>createdAt</code>: (string, ISO 8601 format) Timestamp when the group was created.</p>\n</li>\n<li><p><code>lastModifiedAt</code>: (string, ISO 8601 format) Timestamp when the group was last modified.</p>\n</li>\n<li><p><code>usersCount</code> (int): Number of users that belong to this group (returned if <code>summary</code> is <code>true</code>).</p>\n</li>\n<li><p><code>image</code> (Base64-encoded string): binary image data; decode to retrieve the original image (returned if <code>summary</code> is <code>true</code>).</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","groups"],"host":["platform","pvml","com"],"query":[{"key":"summary","value":"true"}],"variable":[]}},"response":[{"id":"20d85c4b-ec25-49aa-8fd3-84c054a3d25c","name":"Get Groups - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups?summary=false","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","groups"],"query":[{"key":"summary","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 12:16:57 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"460"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"1cc-hlVQ4JlFtL9Z/4nurNwh8OmxXPc\""}],"cookie":[],"responseTime":null,"body":"{\n    \"groups\": [\n        {\n            \"id\": \"72aa551a-bca4-4a17-85d7-2b27abba2290\",\n            \"name\": \"Admins\",\n            \"description\": \"\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"createdAt\": \"2024-06-13T07:20:52.068165Z\",\n            \"lastModifiedAt\": \"2024-12-02T09:31:56.368762Z\"\n        },\n        {\n            \"id\": \"b2ef293d-2dba-4564-9ef6-672a7a87ac42\",\n            \"name\": \"Sales London\",\n            \"description\": \"\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"createdAt\": \"2024-06-13T08:56:09.992035Z\",\n            \"lastModifiedAt\": \"2024-12-02T12:54:28.161045Z\"\n        }\n    ]\n}"},{"id":"e106f19f-5e54-424c-b78b-d42bb8ccad50","name":"Get Groups - Summarized - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups?summary=true","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","groups"],"query":[{"key":"summary","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 09:37:59 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"22985"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"59c9-AJTntTU95CTb83tG02fPxNh2F4w\""}],"cookie":[],"responseTime":null,"body":"{\n    \"groups\": [\n        {\n            \"id\": \"72aa551a-bca4-4a17-85d7-2b27abba2290\",\n            \"name\": \"Admins\",\n            \"description\": \"\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"createdAt\": \"2024-06-13T07:20:52.068165Z\",\n            \"lastModifiedAt\": \"2024-12-02T09:31:56.368762Z\",\n            \"usersCount\": 8,\n            \"image\": \"\"\n        },\n        {\n            \"id\": \"b2ef293d-2dba-4564-9ef6-672a7a87ac42\",\n            \"name\": \"Sales London\",\n            \"description\": \"\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"createdAt\": \"2024-06-13T08:56:09.992035Z\",\n            \"lastModifiedAt\": \"2024-12-02T12:54:28.161045Z\",\n            \"usersCount\": 3,\n            \"image\": \"\"\n        }\n    ]\n}"}],"_postman_id":"c09452bd-5487-466b-bb5d-d05f745b3676"},{"name":"Get Group Views","id":"47c3713a-1915-4ed5-b63f-41eec6ff50e5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}/views","description":"<p>This endpoint retrieves the views of a specific group within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><code>group_id</code> (string): The unique identifier of the group.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><p><code>views</code><strong>:</strong> a list of views associated with the group.</p>\n<ul>\n<li><p><code>view</code>:</p>\n<ul>\n<li><p><code>viewId</code> (string): Unique identifier for the view.</p>\n</li>\n<li><p><code>datasourceId</code> (string): Unique identifier for the datasource of the view.</p>\n</li>\n<li><p><code>datasourceType</code> (string): The type of the datasource (e.g., \"Postgres\").</p>\n</li>\n<li><p><code>workspaceId</code> (string): Unique identifier for the workspace to which the group belongs.</p>\n</li>\n<li><p><code>name</code> (string): The name of the view.</p>\n</li>\n<li><p><code>description</code> (string): Description of the view.</p>\n</li>\n<li><p><code>createdAt</code> (string, ISO 8601 format): Timestamp when the group was created.</p>\n</li>\n<li><p><code>lastModifiedAt</code> (string, ISO 8601 format): Timestamp when the group was last modified.</p>\n</li>\n<li><p><code>permissionsLastModifiedAt</code> (string, ISO 8601 format): Timestamp when the policies attached to the view were last modified.</p>\n</li>\n<li><p><code>image</code> (Base64-encoded string): binary image data; decode to retrieve the original image (returned if <code>enrich</code> is <code>true</code>).</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","groups","{{group_id}}","views"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"c86a430e-626c-4888-9b1f-4a2107c1a089","name":"Get Group Views - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}/views"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 11:35:37 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2209"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"8a1-hzs2kwZSP/tFSK7fB3zhobpKs2A\""}],"cookie":[],"responseTime":null,"body":"{\n    \"views\": [\n        {\n            \"viewId\": \"b1e0317b-0e57-4a39-b8b1-ef701743e6d7\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceType\": \"Postgres\",\n            \"workspaceId\": \"598fa92f-4b85-4718-b1c5-62f209126201\",\n            \"name\": \"Transactions Direct\",\n            \"description\": \"access to full finanace data\",\n            \"createdAt\": 1724758363464,\n            \"lastModifiedAt\": 1733340064977,\n            \"permissionsLastModifiedAt\": 1733340064976,\n            \"image\": null\n        },\n        {\n            \"viewId\": \"0c9d50e2-1c93-4b75-8d99-cac2baf40e6b\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceType\": \"Postgres\",\n            \"workspaceId\": \"598fa92f-4b85-4718-b1c5-62f209126201\",\n            \"name\": \"Transactions DP\",\n            \"description\": \"access to finanace data with differential privacy for analytics\",\n            \"createdAt\": 1724758274438,\n            \"lastModifiedAt\": 1728285335236,\n            \"permissionsLastModifiedAt\": 1729515260332,\n            \"image\": null\n        }\n    ]\n}"}],"_postman_id":"47c3713a-1915-4ed5-b63f-41eec6ff50e5"},{"name":"Get Group Users","id":"00712e7c-fb4b-4597-b54a-14727fed8a51","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}/users","description":"<p>This endpoint retrieves the users of a specific group within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><code>group_id</code> (string): The unique identifier of the group.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><p><code>users</code><strong>:</strong> a list of users associated with the group.</p>\n<ul>\n<li><p><code>User</code>:</p>\n<ul>\n<li><p><code>id</code> (string): Unique identifier for the user.</p>\n</li>\n<li><p><code>email</code> (string): Email address of the user.</p>\n</li>\n<li><p><code>created_at</code> (string, ISO 8601 format): Timestamp when the user was created/joined.</p>\n</li>\n<li><p><code>image</code> (string, URL): Link to the user’s profile picture or avatar.</p>\n</li>\n</ul>\n</li>\n<li><p><code>workspaceId</code> (string): Unique identifier for the workspace to which the user belongs.</p>\n</li>\n<li><p><code>joined_at</code> (string, ISO 8601 format): Timestamp when the user joined the workspace.</p>\n</li>\n<li><p><code>role</code> (string): Role of the user in the workspace: \"owner,\" \"admin,\" or \"member.\"</p>\n</li>\n<li><p><code>type</code> (string): The type of the user in the workspace: <code>regular</code> (platform user) or <code>adhoc</code> (service account).</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","groups","{{group_id}}","users"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"7018f784-23ab-4d23-8898-c7ece52ce5f1","name":"Get Group Users - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}/users"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 12:12:35 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2015"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"7df-ezlIi1xt3phGDuTMAACWk5C22eE\""}],"cookie":[],"responseTime":null,"body":"{\n    \"users\": [\n        {\n            \"User\": {\n                \"id\": \"493903c3-4199-439a-82e2-edfa8fc6d318\",\n                \"email\": \"user1@pvml.com\",\n                \"created_at\": \"2024-06-13T08:28:37.831222Z\"\n            },\n            \"workspaceId\": \"9bec9dad-27e9-4dcf-95f2-38c7f805ad61\",\n            \"joined_at\": \"0001-01-01T00:00:00Z\",\n            \"role\": \"admin\",\n            \"type\": \"regular\"\n        },\n        {\n            \"User\": {\n                \"id\": \"f0a469a7-b3db-44f5-9368-43f075cc6ec6\",\n                \"email\": \"user2@pvml.com\",\n                \"created_at\": \"2024-06-13T08:28:03.0078Z\"\n            },\n            \"workspaceId\": \"9bec9dad-27e9-4dcf-95f2-38c7f805ad61\",\n            \"joined_at\": \"0001-01-01T00:00:00Z\",\n            \"role\": \"owner\",\n            \"type\": \"regular\"\n        }\n    ]\n}"}],"_postman_id":"00712e7c-fb4b-4597-b54a-14727fed8a51"},{"name":"Update Group Info","id":"a008cbad-4fc6-4730-b912-2d5e9c207afb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\":\"new name\"\n}","type":"text"},{"key":"description","value":"","type":"text","disabled":true},{"key":"image","type":"file","value":null,"disabled":true}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}","description":"<p>This endpoint allows to update a specific group in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>group_id</code>(string): the unique id of the group in the workspace</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>Form data containing the fields to update:</p>\n<ul>\n<li><p><code>data</code> (text): Json with the following properties:</p>\n<ul>\n<li><p><code>name</code>(string): The name of the group.</p>\n</li>\n<li><p><code>description</code>(string): The description of the group.</p>\n</li>\n</ul>\n</li>\n<li><p><code>image</code> (File): The image for the group.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>Upon successful update, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","groups","{{group_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"aff0ba99-c987-425c-a1be-93473c846b9a","name":"Update Group Info - 200 Success","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\":\"new name\"\n}","type":"text"},{"key":"description","value":"","type":"text","disabled":true},{"key":"image","type":"file","value":null,"disabled":true}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 11:03:43 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"a008cbad-4fc6-4730-b912-2d5e9c207afb"},{"name":"Update Group Users","id":"e612fef6-bb90-4b90-883d-d00ede924cc0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"usersToAdd\": [\n        \"{{user_id}}\"\n    ],\n    \"usersToRemove\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}/users","description":"<p>This endpoint allows to update a specific group in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>group_id</code>(string): the unique id of the group in the workspace</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>Form data containing the fields to update:</p>\n<ul>\n<li><p><code>data</code> (text): Json with the following properties:</p>\n<ul>\n<li><p><code>name</code>(string): The name of the group.</p>\n</li>\n<li><p><code>description</code>(string): The description of the group.</p>\n</li>\n</ul>\n</li>\n<li><p><code>image</code> (File): The image for the group.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>Upon successful update, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","groups","{{group_id}}","users"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"137a7bda-d2a6-4394-be9d-0f8471d55d91","name":"Update Group Users - 200 Success","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"usersToAdd\": [\n        \"{{user_id}}\"\n    ],\n    \"usersToRemove\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}/users"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 11:12:16 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"e612fef6-bb90-4b90-883d-d00ede924cc0"},{"name":"Delete Group","id":"990b9735-59f0-41fb-8068-0a715452321b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/{{group_id}}","description":"<p>This endpoint deletes a specific group within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><code>group_id</code> (string): The unique identifier of the group.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>Upon successful deletion of the group from the workspace, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","groups","{{group_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"a859d61b-0b9d-45b9-afe6-94048dca592d","name":"Delete Group - 200 Success","originalRequest":{"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/groups/43533685-8b1a-40cb-8eda-43fe094ef3f3"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 10:30:58 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"990b9735-59f0-41fb-8068-0a715452321b"}],"id":"7ed3b84b-ef30-48bc-b7f3-2c21bc14acfc","description":"<p>A group is a collection of users, typically organized based on a shared purpose such as team membership, department, or role within the organization.</p>\n<p>Groups provide a convenient way to assign permissions to multiple users simultaneously, enabling consistent and efficient access management aligned with business use cases.</p>\n","_postman_id":"7ed3b84b-ef30-48bc-b7f3-2c21bc14acfc","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Invite Users","id":"adeeb345-841c-488f-bd16-d02888e7f7ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"usersToInvite\": [\n    \"someone@gmail.com\"\n  ],\n  \"userRole\": \"member\",\n  \"groupsToAdd\": [\n    \"98f3dc72-ebb9-4b3e-8c43-7ff5efa0401b\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/invite","description":"<p>This endpoint allows you to invite users to a workspace by email.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code>(string): The unique identifier of the workspace.</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><code>usersToInvite</code>: An array of email addresses specifying the list of users to be invited to the workspace.</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>Upon successful invite of the users, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","invite"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"e51403d3-33c1-400c-a39c-773c7902f7fc","name":"Invite Users - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"usersToInvite\": [\n    \"someone@gmail.com\"\n  ],\n  \"userRole\": \"member\",\n  \"groupsToAdd\": [\n    \"98f3dc72-ebb9-4b3e-8c43-7ff5efa0401b\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/invite"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 01 Dec 2024 15:24:03 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"{\"AlreadyExistsInWorkspace\":[],\"NotExistsInWorkspace\":[\"someone@gmail.com\"]}"}],"_postman_id":"adeeb345-841c-488f-bd16-d02888e7f7ee"},{"name":"Verify Users in Workspace","id":"f8fe3861-6784-4332-949a-a3ea19640596","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"usersOfWorkspace\": [\"{{user_id}}\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/exists","description":"<p>This endpoint allows you to check if users belong to a workspace using their ids.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code>(string): The unique identifier of the workspace.</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><code>usersOfWorkspace</code>: An array containing the user IDs to check whether they belong to the workspace.</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<ul>\n<li><code>isPartOfWorkspace</code> (boolean): indicating whether <strong>all the specified users</strong> belong to the workspace.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","exists"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"24c3666b-07ff-4231-8014-07ad7691b374","name":"Verify Users in Workspace - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"usersOfWorkspace\": [\"{{user_id}}\", \"a00fba4a-e7ae-4b31-977b-c3b42d3cac52\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/exists"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 02 Dec 2024 08:33:12 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"26"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"1a-uHgdwbzj/V+vYCvnOuts/qiKEAY\""}],"cookie":[],"responseTime":null,"body":"{\n    \"isPartOfWorkspace\": true\n}"}],"_postman_id":"f8fe3861-6784-4332-949a-a3ea19640596"},{"name":"Create Service Account","id":"2f5acce1-d817-4cd4-8e96-70d3889e0e50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"service_account_username\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/adhoc","description":"<p>This endpoint allows you to create an adhoc user (service account) in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code>(string): The unique identifier of the workspace.</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><code>name</code>: the name of the adhoc usesr to be created.</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<ul>\n<li><p><code>id</code> (string): The unique identifier for the adhoc user.</p>\n</li>\n<li><p><code>email</code> (string): @.pvml.com</p>\n</li>\n<li><p><code>created at</code> (string): Timestamp indicating when the adhoc user was created (ISO 8601 format).</p>\n</li>\n<li><p><code>image</code> (string): The path to user's image.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","adhoc"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"5b1044f0-acae-4412-a7c3-aeed79d359f7","name":"Create Adhoc User - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"service_account_username\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/adhoc"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 02 Dec 2024 08:15:13 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"180"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"b4-12jfLcXPYhUFIHCYDYJlZyu2E+g\""}],"cookie":[],"responseTime":null,"body":"{\n    \"User\": {\n        \"id\": \"5ac2dfc5-1329-44c2-ae14-d3f333621707\",\n        \"email\": \"service_account_username@4b5e935f-ed2a-4de2-a043-dd169513b23b.pvml.com\",\n        \"created_at\": \"2026-02-18T14:06:06.378786Z\",\n        \"image\": \"\"\n    },\n    \"workspaceId\": \"4b5e935f-ed2a-4de2-a043-dd169513b23b\",\n    \"joined_at\": \"2026-02-18T14:06:06.382464Z\",\n    \"role\": \"member\",\n    \"type\": \"adhoc\"\n}"}],"_postman_id":"2f5acce1-d817-4cd4-8e96-70d3889e0e50"},{"name":"Get User","id":"233cc9ab-3d1a-445b-b851-e000eef3e59c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}?enrich=true","description":"<p>This endpoint retrieves the user associated with a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><code>user_id</code> (string): The unique identifier of the user.</p>\n</li>\n<li><p><code>enrich</code> (boolean): when set to <code>true</code>, the request returns additional details such as the user's image.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><p><code>User</code>:</p>\n<ul>\n<li><p><code>id</code> <em>(String):</em> Unique identifier for the user.</p>\n</li>\n<li><p><code>email</code> <em>(String):</em> Email address of the user.</p>\n</li>\n<li><p><code>created_at</code> <em>(String, ISO 8601 format):</em> Timestamp when the user was created/joined.</p>\n</li>\n<li><p><code>image</code> <em>(String, URL):</em> Link to the user’s profile picture or avatar.</p>\n</li>\n</ul>\n</li>\n<li><p><code>workspaceId</code> (<em>String)</em>: Unique identifier for the workspace to which the user belongs.</p>\n</li>\n<li><p><strong>joined_at</strong>: <em>(String, ISO 8601 format)</em> Timestamp when the user joined the workspace.</p>\n</li>\n<li><p><strong>role</strong>: <em>(String)</em> Role of the user in the workspace: \"owner,\" \"admin,\" or \"member.\"</p>\n</li>\n<li><p><strong>type</strong>: <em>(String)</em> The type of the user in the workspace: <code>regular</code> (platform user) or <code>adhoc</code> (service account).</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}"],"host":["platform","pvml","com"],"query":[{"key":"enrich","value":"true"}],"variable":[]}},"response":[{"id":"1d0b1a16-0bb8-487f-893a-f6fd75f46ec2","name":"Get User - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}?enrich=true","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}"],"query":[{"key":"enrich","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 12:18:14 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1267"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"4f3-VuE/ky7k+wMyNqoF+plGO8U7vag\""}],"cookie":[],"responseTime":null,"body":"{\n    \"User\": {\n        \"id\": \"3c6f7768-3f43-4d10-bee1-e38c55392049\",\n        \"email\": \"david@acme.com\",\n        \"created_at\": \"2023-10-30T10:18:59.843367Z\",\n        \"image\": \"https://lh3.googleusercontent.com/a-/ALV-UjXe-qhGNQpambVOkBkftSq8vJOzDaLdF_1yAO7TYN0MbeIgiHuhIfFvD6vWXTlgPVBGeGOQx1-HT9ILd8nKeGa5ZzFn_SUiCZzgQ28okpHgvC5GkmJNe68Yqm6OQmGKHUmZw776YBYOu9clt9RSlAUiKcY-UX1RBDp3ReJnHXRRHlyfBGyNZzJb_Y8dH2XUeXvX1BH5R9TLSm7fWC0A7HaUNWzDH227mebncFLOan9uBzGIc8O6gy63Imdd3oIg3vnTuuZyERA8H_DXQKGm9jPQoqPnWvOzzXvTtOEwBYItKeHCUe8u54vlHEi48PhGg4hNxqGc9g8-jKlZputzS7SzFPCv3zRmaWeQ5sKn9lHJ3wjeWsLD3BoIpEbjVUha2qcQSgjRZCttwfBP4JrHLTG3l5Y2LSmmpZAlLcrqa-1RAaewvbjtkVInlEGnQRDzhMx7jy7hssBhQKGCruXQhIkgs97dtrw5l7DxScwkI9puGvbPjtldMzfwsZ__Y7I489Pc3_k6XOZOiAYmZICqFxYLs7G22cLpMjL9wr9FJWKgPyQ-jShywfJ1Qb2cd73z4-TakLS_hKk95mU0d1sdGeGeoRehb-9Qv8AzD061Lx7Mv1Cy9RR22yjU1QYCO9k6Fi9B5B4HgTJHvNJvPR_UW9_6XOxHsHYTOsrrIHoEhQItAb6kUesVYbwDfO3yr3QTu9Md26rYfiUkx8ptlIGmDQ1yu780EWdm39vG6hgJmNGhKy3nT1T0xt1jHize2WWXi2kvwEOg6JEOPDEYfwF7G0qfQT8VG_VBxNGX5tCSBqq1h6TET6ifdUbpwdMKv-fZV4v-gF2U5gF4XoMkV42s5lL-ZQ29vFtiDy0k0mynieJoJyVLZWnOdlxihPuL6CEGEs_nYfyPmK2N-fDGgEwOmnvDv8LsYSNMs2b5YkzWu8Fkkp5Uv3tZgeQL-HwTKuy2N666RMj-TshjIXWZISdfyjL22ZBV=s96-c\"\n    },\n    \"workspaceId\": \"\",\n    \"joined_at\": \"2024-12-01T10:23:04.413569Z\",\n    \"role\": \"owner\",\n    \"type\": \"regular\"\n}"}],"_postman_id":"233cc9ab-3d1a-445b-b851-e000eef3e59c"},{"name":"Get Users","id":"e00eae34-b9ab-4917-ad11-c5200e2509b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users?enrich=true","description":"<p>This endpoint retrieves the users associated with a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><code>enrich</code> (boolean): when set to <code>true</code>, the request returns additional details such as the user's image.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><p><code>workspaceUsers</code>: a list of users associated with a workspace</p>\n<ul>\n<li><p><code>User</code>:</p>\n<ul>\n<li><p><code>id</code> (string): Unique identifier for the user.</p>\n</li>\n<li><p><code>email</code> (string): Email address of the user.</p>\n</li>\n<li><p><code>created_at</code> (string, ISO 8601 format): Timestamp when the user was created/joined.</p>\n</li>\n<li><p><code>image</code> (string, URL): Link to the user’s profile picture or avatar.</p>\n</li>\n</ul>\n</li>\n<li><p><code>workspaceId</code> (string): Unique identifier for the workspace to which the user belongs.</p>\n</li>\n<li><p><code>joined_at</code> (string, ISO 8601 format): Timestamp when the user joined the workspace.</p>\n</li>\n<li><p><code>role</code> (string): Role of the user in the workspace: \"owner,\" \"admin,\" or \"member.\"</p>\n</li>\n<li><p><code>type</code> (string): The type of the user in the workspace: <code>regular</code> (platform user) or <code>adhoc</code> (service account).</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users"],"host":["platform","pvml","com"],"query":[{"key":"enrich","value":"true"}],"variable":[]}},"response":[{"id":"8381ec86-3b7e-4285-b732-26ac4b0f614a","name":"Get Users - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users?enrich=true","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","users"],"query":[{"key":"enrich","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 28 Nov 2024 14:56:24 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"11456"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2cc0-1bVUM9z2ddxlS3lQ+ALV2nYa8GI\""}],"cookie":[],"responseTime":null,"body":"{\n    \"workspaceUsers\": [\n        {\n            \"User\": {\n                \"id\": \"b54732ea-66dd-428e-8d39-c1124c5d7dc1\",\n                \"email\": \"ben@a31ccb30-281e-4272-aa55-8e872bbed88a.pvml.com\",\n                \"created_at\": \"2024-11-19T15:53:51.771382Z\",\n                \"image\": \"\"\n            },\n            \"workspaceId\": \"a31ccb30-281e-4272-aa55-8e872bbed88a\",\n            \"joined_at\": \"0001-01-01T00:00:00Z\",\n            \"role\": \"member\",\n            \"type\": \"adhoc\"\n        },\n        {\n            \"User\": {\n                \"id\": \"3de174f4-967f-4047-9a40-ca49b9796e2f\",\n                \"email\": \"rina.galperin@pvml.com\",\n                \"created_at\": \"2024-06-13T08:27:47.948569Z\",\n                \"image\": \"https://lh3.googleusercontent.com/a-/ALV-UjXIW-1KfFOiqnL5sO2-sT_CRLA4hr21ArfldltFrTGV8BkJLH71BlJAe7x98RF6DfcHqxE64hh5YfCycd7Beete8uocCLfzpkUmOF6c3aTooWgW6Vfh30qvSWMRxPe4gQ43vRb_0VNak7maXLBvjRKM7SNQQL40zjYEeY3Jh6pj8zbIxw1IfS8bpmzKHcn5SjL2HdaAUz151TlGxoYu3paRFWEbLxKcZ5abnG_RobtC_5kDN4mGqoPW2Qo0fvxPPMLLaHOYAphCN0quoBEsyr-nSTop4I9qcewomTi0XA1574iZ7EXQJsQdQYI5TYxXe-1N3u7z4iYM_UZqnwsr-rMjw29MMk-laztIRPC_MBf9ZJQwv_gHyPx2tP7NyEUiUsb5e_z0usZtftKigGbsSSi_083j-BVwLJZ6M0O0Azfan5s2cC0Gt3wwyM43a-xGsYNpDBCkgrxPzipyl4S4yTUwrJI1CNYJWlH8OH1qZC7mpvmZGvwE6U2bApaQa_snC8xkQ_nptiRT6Bb1yCdcg_N3JjiQTHlVlsM051pefrvFrmR8CKANuNk7ekiCD_BNQw0OdO6zHXexp9m7kGYK6AoImLe0nfha2cU9AjeT2JdIF2EIjNFqm6hEzb0cJib3XIGRnw40G9UVxzowqYp_ssoVK213S4i1DE7fmJu5TMaXo-A0QQK40L5lA1TuIj1Pgcg0SIhrKED_Qj5F2sq4ePDgiZLZSJ_ivwRZi9p1eZhwn6fGTEKTQMi0FTdI139Tp0edTGAs1Cn0G0UkbpVYHc7-PLZ_T7dnZyifbWXIOkWC_Vex04hWqNnHwkMoSqETMVttfsil6F07G9JwQOpAvjslFPuxtboIUm9gJ4pqeNweDYCVRebG2VKl1WvjYSCtzbHfh2I0mVvzviEwfEqMbCEKo5_R_1yPKgTCmaYpjw87lqeBlZfMq_lIT0AO8nEWuZl_sSoNx4ly2lZvtWOEQ35CJg=s96-c\"\n            },\n            \"workspaceId\": \"a31ccb30-281e-4272-aa55-8e872bbed88a\",\n            \"joined_at\": \"0001-01-01T00:00:00Z\",\n            \"role\": \"owner\",\n            \"type\": \"regular\"\n        }\n    ]\n}"}],"_postman_id":"e00eae34-b9ab-4917-ad11-c5200e2509b5"},{"name":"Get User Workspaces","id":"db3cbb24-8fce-4fbc-aaac-280eaa12914c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/users/{{user_id}}/workspaces?enrich=false&summary=true","description":"<p>This endpoint retrieves the workspaces associated with a specific user.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>user_id</code></strong>(string): the unique id of the user in the workspace</p>\n</li>\n<li><p><strong><code>summary</code></strong>(boolean): a query parameter that determines whether to return additional summarized info.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will contain <strong><code>workspaces</code></strong> array in JSON format, where each workspace object includes the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): The unique identifier for the workspace.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the workspace.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the workspace.</p>\n</li>\n<li><p><strong><code>workspacePlan</code></strong> (string): The plan or type of the workspace.</p>\n</li>\n<li><p><strong><code>numOfUsers</code></strong> (number): The number of users associated with the workspace (returned if <code>summmary</code> is <code>true</code>).</p>\n</li>\n<li><p><strong><code>image</code></strong> (string): The image associated with the workspace (returned if <code>summmary</code> is <code>true</code>).</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","users","{{user_id}}","workspaces"],"host":["platform","pvml","com"],"query":[{"key":"enrich","value":"false"},{"key":"summary","value":"true"}],"variable":[]}},"response":[{"id":"b66a1fa0-1c42-4526-abed-d7083c32f6f3","name":"Get User Workspaces without Summary - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/users/{{user_id}}/workspaces?summary=false","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","users","{{user_id}}","workspaces"],"query":[{"key":"summary","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 18 Nov 2024 10:13:46 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"40621"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"9ead-NY7NxNtC6/VmY38V1tsJQHhejNo\""}],"cookie":[],"responseTime":null,"body":"{\n    \"workspaces\": [\n        {\n            \"id\": \"917673e8-d937-4472-ae41-afccff24d237\",\n            \"name\": \"PVML-Dashboard\",\n            \"description\": \"business workspace\",\n            \"workspacePlan\": \"dev\",\n            \"numOfUsers\": 9,\n            \"image\": \"\"\n        },\n        {\n            \"id\": \"5896f437-d807-4588-aa0c-6ab770df18ba\",\n            \"name\": \"PVML - Demo\",\n            \"description\": \"demo workspace\",\n            \"workspacePlan\": \"dev\",\n            \"numOfUsers\": 11,\n            \"image\": \"\"\n        }\n    ]\n}"},{"id":"ee2ded96-1eea-405c-8c2a-7403e02f3c43","name":"Get User Workspaces with Summary - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/users/{{user_id}}/workspaces?summary=true","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","users","{{user_id}}","workspaces"],"query":[{"key":"summary","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 04 Dec 2024 13:40:34 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"81649"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"13ef1-6s4fYJREKvbjQwPBlF8wxgr4OLg\""}],"cookie":[],"responseTime":null,"body":"{\n    \"workspaces\": [\n        {\n            \"id\": \"db03ec6a-a511-4760-a9e5-34ae2d0bb0c1\",\n            \"name\": \"my workspace\",\n            \"description\": \"my team's workspace\",\n            \"workspacePlan\": \"dev\",\n            \"numOfUsers\": 1,\n            \"image\": \"\"\n        },\n        {\n            \"id\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"name\": \"PVML - Demo\",\n            \"description\": \"\",\n            \"workspacePlan\": \"dev\",\n            \"numOfUsers\": 12,\n            \"image\": \"\"\n        },\n        {\n            \"id\": \"00000000-0000-000d-0000-000000000000\",\n            \"name\": \"PVML Dev\",\n            \"description\": \"Default workspace for local env\",\n            \"workspacePlan\": \"dev\",\n            \"numOfUsers\": 12,\n            \"image\": \"\"\n        }\n    ]\n}"}],"_postman_id":"db3cbb24-8fce-4fbc-aaac-280eaa12914c"},{"name":"Get User VDBs","id":"6661cbab-468e-4a02-aaf0-255455cd7dd3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/views","description":"<p>This endpoint retrieves the workspaces associated with a specific user.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>user_id</code>(string): the unique id of the user in the workspace</p>\n</li>\n<li><p><code>summary</code>(boolean): a query parameter that determines whether to return additional summarized info.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will contain <code>workspaces</code> array in JSON format, where each workspace object includes the following fields:</p>\n<ul>\n<li><p><code>id</code> (string): The unique identifier for the workspace.</p>\n</li>\n<li><p><code>name</code> (string): The name of the workspace.</p>\n</li>\n<li><p><code>description</code> (string): A brief description of the workspace.</p>\n</li>\n<li><p><code>workspacePlan</code> (string): The plan or type of the workspace.</p>\n</li>\n<li><p><code>numOfUsers</code> (number): The number of users associated with the workspace (returned if <code>summmary</code> is <code>true</code>).</p>\n</li>\n<li><p><code>image</code> (string): The image associated with the workspace (returned if <code>summmary</code> is <code>true</code>).</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}","views"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"9d971c89-2aa9-48a7-ad68-327b174775bc","name":"Get User Views - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/views"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 11:33:39 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2571"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"a0b-m4uGSaIvzTQDVjqIae9hUJWOcdU\""}],"cookie":[],"responseTime":null,"body":"{\n    \"views\": [\n        {\n            \"viewId\": \"b1e0317b-0e57-4a39-b8b1-ef701743e6d7\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceType\": \"Postgres\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"name\": \"Transactions Direct\",\n            \"description\": \"access to full finanace data\",\n            \"createdAt\": 1724758363464,\n            \"lastModifiedAt\": 1733340064977,\n            \"permissionsLastModifiedAt\": 1733340064976,\n            \"image\": null\n        },\n        {\n            \"viewId\": \"0c9d50e2-1c93-4b75-8d99-cac2baf40e6b\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceType\": \"Postgres\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"name\": \"Transactions DP\",\n            \"description\": \"access to finanace data with differential privacy for analytics\",\n            \"createdAt\": 1724758274438,\n            \"lastModifiedAt\": 1728285335236,\n            \"permissionsLastModifiedAt\": 1729515260332,\n            \"image\": null\n        }\n    ]\n}"}],"_postman_id":"6661cbab-468e-4a02-aaf0-255455cd7dd3"},{"name":"Get User Groups","id":"64c4782a-63e8-4ae9-b584-8906d18f817a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/groups","description":"<p>This endpoint retrieves the workspaces associated with a specific user.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>user_id</code>(string): the unique id of the user in the workspace</p>\n</li>\n<li><p><code>summary</code>(boolean): a query parameter that determines whether to return additional summarized info.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will contain <code>workspaces</code> array in JSON format, where each workspace object includes the following fields:</p>\n<ul>\n<li><p><code>id</code> (string): The unique identifier for the workspace.</p>\n</li>\n<li><p><code>name</code> (string): The name of the workspace.</p>\n</li>\n<li><p><code>description</code> (string): A brief description of the workspace.</p>\n</li>\n<li><p><code>workspacePlan</code> (string): The plan or type of the workspace.</p>\n</li>\n<li><p><code>numOfUsers</code> (number): The number of users associated with the workspace (returned if <code>summmary</code> is <code>true</code>).</p>\n</li>\n<li><p><code>image</code> (string): The image associated with the workspace (returned if <code>summmary</code> is <code>true</code>).</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}","groups"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"13aa7950-c209-43e4-99bb-4072254219f8","name":"Get User Groups - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/groups"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 11:31:52 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"460"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"1cc-hlVQ4JlFtL9Z/4nurNwh8OmxXPc\""}],"cookie":[],"responseTime":null,"body":"{\n    \"groups\": [\n        {\n            \"id\": \"72aa551a-bca4-4a17-85d7-2b27abba2290\",\n            \"name\": \"Admins\",\n            \"description\": \"\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"createdAt\": \"2024-06-13T07:20:52.068165Z\",\n            \"lastModifiedAt\": \"2024-12-02T09:31:56.368762Z\"\n        },\n        {\n            \"id\": \"b2ef293d-2dba-4564-9ef6-672a7a87ac42\",\n            \"name\": \"Sales London\",\n            \"description\": \"\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"createdAt\": \"2024-06-13T08:56:09.992035Z\",\n            \"lastModifiedAt\": \"2024-12-02T12:54:28.161045Z\"\n        }\n    ]\n}"},{"id":"1e131a9f-b85a-4391-a62e-e18c8dbfe851","name":"Get User Groups - Enriched - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/groups?enrich=true&summary=true","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}","groups"],"query":[{"key":"enrich","value":"true"},{"key":"summary","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 11:30:59 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"22740"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"58d4-CrOyneY59o1nd8IRaUFLtWP6cFQ\""}],"cookie":[],"responseTime":null,"body":"{\n    \"groups\": [\n        {\n            \"id\": \"72aa551a-bca4-4a17-85d7-2b27abba2290\",\n            \"name\": \"Admins\",\n            \"description\": \"\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"createdAt\": \"2024-06-13T07:20:52.068165Z\",\n            \"lastModifiedAt\": \"2024-12-02T09:31:56.368762Z\",\n            \"usersCount\": 1,\n            \"image\": \"\"\n        },\n        {\n            \"id\": \"b2ef293d-2dba-4564-9ef6-672a7a87ac42\",\n            \"name\": \"Sales London\",\n            \"description\": \"\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"createdAt\": \"2024-06-13T08:56:09.992035Z\",\n            \"lastModifiedAt\": \"2024-12-02T12:54:28.161045Z\",\n            \"usersCount\": 1,\n            \"image\": \"\"\n        }\n    ]\n}"}],"_postman_id":"64c4782a-63e8-4ae9-b584-8906d18f817a"},{"name":"Get User Role","id":"5481116a-edbe-4c56-8e00-e3aa218ca5a4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/role","description":"<p>This endpoint retrieves the role associated with a specific user in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>user_id</code>(string): the unique id of the user in the workspace</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><code>userRole</code> (string): The user's role in the workspace (<em>member</em> / <em>admin</em> / <em>owner</em>)</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}","role"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"390e5bc7-d9b8-4d6b-833e-f18a2ea6eb71","name":"Get User Role - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/role"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 01 Dec 2024 14:57:11 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"20"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"14-EARexdhbmrkdfiP6JrjsVU161tE\""}],"cookie":[],"responseTime":null,"body":"{\n    \"userRole\": \"owner\"\n}"}],"_postman_id":"5481116a-edbe-4c56-8e00-e3aa218ca5a4"},{"name":"Update User Role","id":"a3abc553-62ef-4b0b-9f93-217cf40932ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n \"role\":\"member\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/role","description":"<p>This endpoint allows to change the role of a specific user in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>user_id</code>(string): the unique id of the user in the workspace</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><code>userRole</code> (string): The user's new role in the workspace (member/admin/owner).</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>Upon successful update, the server returns a status code of 201 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}","role"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"260cbc19-8ae0-4627-842c-c55f60cc09a9","name":"Update User Role","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n \"role\":\"member\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/role"},"status":"Created","code":201,"_postman_previewlanguage":"","header":[{"key":"Date","value":"Wed, 18 Feb 2026 14:12:26 GMT"},{"key":"Content-Length","value":"0"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":""},{"id":"b4213a93-0379-4798-a92e-f10259a44622","name":"Update User Role - 400 Bad Request","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n \"role\":\"owner\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/role"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 01 Dec 2024 15:02:05 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"73"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"49-JOt2JpuEBIkwZ8bsbdtsOyju8uQ\""}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"bad argument\",\n    \"code\": 3100,\n    \"reason\": \"Can't update role to self\"\n}"}],"_postman_id":"a3abc553-62ef-4b0b-9f93-217cf40932ed"},{"name":"Leave Workspace","id":"bace72bd-8640-4ddf-8239-ea8a81518086","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}","description":"<p>This endpoint is used to delete a user from a workspace or leave a workspace as a user.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code> (string): The unique identifier of the workspace to be deleted.</p>\n</li>\n<li><p><code>user_id</code>(string): the unique id of the user in the workspace</p>\n</li>\n</ul>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<p>This request does not contain a request body.</p>\n<h4 id=\"response\">Response</h4>\n<p>Upon successful deletion of the user from the workspace, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"a079054d-e345-4a03-a0c2-463e4d11746e","name":"Delete User From Workspace - 200 Success","originalRequest":{"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"bace72bd-8640-4ddf-8239-ea8a81518086"}],"id":"5b4e56b0-b2fb-46d5-bb19-6e8a7c0cb157","description":"<p>Users in PVML can be categorized as either <strong>regular users</strong> (<code>regular</code>) or <strong>ad-hoc users</strong> (<code>adhoc</code>).</p>\n<ul>\n<li><p><strong>Regular users</strong>: These are users invited to the platform via email invitation. They can interact with the workspace using APIs but also have the additional capability to log in to the platform via UI. Regular users typically represent real individuals who actively engage with the platform's features and functionalities.</p>\n</li>\n<li><p><strong>Ad-hoc users</strong>: These are service accounts that cannot log in to the platform. They are used to represent external users or entities, allowing for interactions or processes involving individuals or systems outside the platform without requiring direct access.</p>\n</li>\n</ul>\n<img src=\"https://content.pstmn.io/193e63d9-a7c7-48a0-84e2-b0c100fcc3a5/QVBJIGltYWdlcy5wbmc=\" alt=\"Invite%20users%20to%20the%20workspace%20or%20create%20ad-hoc%20users%20to%20manage%20access%20for%20external%20users,%20service%20accounts,%20and%20more.\" />\n\n<p>Users, both regular and adhoc, can be managed as individuals or as groups.</p>\n<p>💡 <strong>How does an adhoc user entity looks like?</strong></p>\n<p>When creating an adhoc user, the provided name is converted to an \"email\" with the following format: <a href=\"https://mailto:NAME@WORKSPACE_ID.pvml.com\">NAME@WORKSPACE_ID.pvml.com</a> (note: this is not a real email, it cannot be used to log into the platform). The user is assigned an id just like a regular user.</p>\n<p>💡 <strong>How can I get my user id?</strong></p>\n<p>To retrieve the user ID, go to <strong>Data Access &gt; Users</strong>, locate the <strong>Objectid</strong> column, right-click on the desired value, and select <strong>Copy</strong>.</p>\n<img src=\"https://content.pstmn.io/eff2ba0d-a30e-435a-9a72-36209eb85821/QVBJIGltYWdlcy5wbmc=\" alt=\"Get%20User%20ID\" />\n\n<p>#userid #user #id #howto</p>\n<h3 id=\"what-can-each-user-role-do\">What Can Each User Role Do?</h3>\n<ul>\n<li><p><strong>Member</strong>:</p>\n<ul>\n<li><p>Get a connection string from a view they have access to.</p>\n</li>\n<li><p>Access the <em>Explore</em> apps on the PVML platform (chat and notebook).</p>\n</li>\n<li><p>Request permissions.</p>\n</li>\n</ul>\n</li>\n</ul>\n<img src=\"https://content.pstmn.io/3dbebe07-75b6-4915-8e5b-fc506ed76a59/TW9udGhseSAoMSkucG5n\" alt=\"What%20members%20see.\" width=\"210\" height=\"387\" />\n\n<ul>\n<li><p><strong>Admin</strong>: Everything members can do, plus:</p>\n<ul>\n<li><p>Fully configure resources such as datasources, policies, views and bots.</p>\n</li>\n<li><p>Invite/create users.</p>\n</li>\n<li><p>Approve/decline permissions requests.</p>\n</li>\n</ul>\n</li>\n</ul>\n<img src=\"https://content.pstmn.io/fe02f4f9-3bb4-4dd6-9881-8e6a1f359327/TW9udGhseSAoNCkucG5n\" alt=\"What%20admins%20and%20owners%20see.\" height=\"602\" width=\"178\" />\n\n<ul>\n<li><p><strong>Owner</strong>: Everything admins can do, plus:</p>\n<ul>\n<li>Deleting a workspace.</li>\n</ul>\n</li>\n</ul>\n<img src=\"https://content.pstmn.io/2d4872f9-36dc-4f00-a0b3-06c15abd51a8/U2NyZWVuc2hvdCAyMDI1LTAxLTE0IGF0IDEwLjM2LjA5LnBuZw==\" alt=\"Owners%20are%20able%20to%20delete%20a%20workspace.\" />","_postman_id":"5b4e56b0-b2fb-46d5-bb19-6e8a7c0cb157","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Datasources","item":[{"name":"Datasource CRUD","item":[{"name":"Connect Postgres","id":"1b7f86e9-c269-42e3-bcac-a763df601637","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"my datasource\",\n    \"description\": \"\",\n    \"type\": \"Postgres\",\n    \"data\": \"{\\\"hostname\\\":\\\"{{postgrest_host_name}}\\\",\\\"username\\\":\\\"{{postgres_username}}\\\",\\\"password\\\":\\\"{{postgres_pwd}}\\\",\\\"port\\\":5432,\\\"databasename\\\":\\\"{{postgres_db_name}}\\\",\\\"ssl\\\":true}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources","description":"<p>This endpoint allows you to connect a Postgres datasource within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Postgres</em>.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): The configuration data for the datasource, including the hostname, username, password, etc.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <strong><code>datasource</code></strong> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Postgres</em>.</p>\n</li>\n<li><p><strong><code>structuredType</code></strong> (string): The type of the datasource used for the unstructured datasource structure (e.g., Postgres, MySQL, etc.).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): Configuration data for the datasource - always empty. To get this information, use the <em><strong>Get Datasource Connection Details</strong></em> API.</p>\n</li>\n<li><p><strong><code>snapshotTimestamp</code></strong> (string): The timestamp of the last snapshot taken for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshTrigger</code></strong> (string): The timestamp of the last refresh trigger for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshStatus</code></strong> (string): The status of the last refresh operation. Options:</p>\n<ul>\n<li><p>init</p>\n</li>\n<li><p>indexing</p>\n</li>\n<li><p>failed / completed</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"c14d2bf8-bfda-4072-aa9c-6b8e362b630d","name":"Connect Postgres - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"rinas datasource\",\n    \"description\": \"\",\n    \"type\": \"Postgres\",\n    \"data\": \"{\\\"hostname\\\":\\\"{{postgrest_host_name}}\\\",\\\"username\\\":\\\"{{postgres_username}}\\\",\\\"password\\\":\\\"{{postgres_pwd}}\\\",\\\"port\\\":5432,\\\"databasename\\\":\\\"{{postgres_db_name}}\\\",\\\"ssl\\\":true}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 17 Nov 2024 14:42:19 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"325"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"145-2RmfYOIlSe/Esga/bLf7h1s9npg\""}],"cookie":[],"responseTime":null,"body":"{\n    \"datasource\": {\n        \"id\": \"81ed4b17-b8ce-4c7b-ac0b-964cf1e47ce8\",\n        \"name\": \"my datasource\",\n        \"description\": \"\",\n        \"type\": \"Postgres\",\n        \"structuredType\": \"Postgres\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"data\": \"\",\n        \"snapshotTimestamp\": \"0001-01-01T00:00:00Z\",\n        \"lastRefreshTrigger\": \"0001-01-01T00:00:00Z\",\n        \"lastRefreshStatus\": \"init\"\n    }\n}"}],"_postman_id":"1b7f86e9-c269-42e3-bcac-a763df601637"},{"name":"Connect BigQuery","id":"2667ecb2-99cd-41de-aee3-a7b62ef96dba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"BigQuery datasource\",\n    \"description\": \"\",\n    \"type\": \"BigQuery\",\n    \"data\": \"{{big_query_service_account_key_file}}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources","description":"<p>This endpoint allows you to connect a BigQuery datasource within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>BigQuery</em>.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): The service account key file data.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <strong><code>datasource</code></strong> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>BigQuery</em>.</p>\n</li>\n<li><p><strong><code>structuredType</code></strong> (string): The type of the datasource used for the unstructured datasource structure (e.g., Postgres, MySQL, etc.).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): Configuration data for the datasource - always empty. To get this information, use the <em><strong>Get Datasource Connection Details</strong></em> API.</p>\n</li>\n<li><p><strong><code>snapshotTimestamp</code></strong> (string): The timestamp of the last snapshot taken for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshTrigger</code></strong> (string): The timestamp of the last refresh trigger for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshStatus</code></strong> (string): The status of the last refresh operation. Options:</p>\n<ul>\n<li><p>init</p>\n</li>\n<li><p>indexing</p>\n</li>\n<li><p>failed / completed</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"9c6ff722-417b-4ea5-8294-a87388c4f108","name":"Connect BigQuery - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"BigQuery datasource\",\n    \"description\": \"\",\n    \"type\": \"BigQuery\",\n    \"data\": \"{{big_query_service_account_key_file}}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 06 Jan 2025 12:34:47 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"312"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"138-LjqhS1zwlwVwgZ8Akr5LMi/Mu2I\""}],"cookie":[],"responseTime":null,"body":"{\n    \"datasource\": {\n        \"id\": \"b0a41d73-3a58-4cad-8b0e-de058c95e3bf\",\n        \"name\": \"BigQuery datasource\",\n        \"description\": \"\",\n        \"type\": \"BigQuery\",\n        \"structuredType\": \"BigQuery\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"data\": \"\",\n        \"snapshotTimestamp\": \"0001-01-01T00:00:00Z\",\n        \"lastRefreshTrigger\": \"0001-01-01T00:00:00Z\",\n        \"lastRefreshStatus\": \"init\"\n    }\n}"}],"_postman_id":"2667ecb2-99cd-41de-aee3-a7b62ef96dba"},{"name":"Connect Databricks","id":"2777ac02-1952-4f92-a392-c8d2a7d71783","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"databricks datasource\",\n    \"description\": \"\",\n    \"type\": \"Databricks\",\n    \"data\": \"{\\\"host_name\\\":\\\"{{databricks_hostname}}\\\",\\\"http_path\\\":\\\"{{databricks_http_path}}\\\",\\\"token\\\":\\\"{{databricks_token}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources","description":"<p>This endpoint allows you to connect a Databricks datasource within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): The service account key file data.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <strong><code>datasource</code></strong> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>structuredType</code></strong> (string): The type of the datasource used for the unstructured datasource structure (e.g., Postgres, MySQL, etc.).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): Configuration data for the datasource - always empty. To get this information, use the <em><strong>Get Datasource Connection Details</strong></em> API.</p>\n</li>\n<li><p><strong><code>snapshotTimestamp</code></strong> (string): The timestamp of the last snapshot taken for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshTrigger</code></strong> (string): The timestamp of the last refresh trigger for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshStatus</code></strong> (string): The status of the last refresh operation. Options:</p>\n<ul>\n<li><p>init</p>\n</li>\n<li><p>indexing</p>\n</li>\n<li><p>failed / completed</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"b7461902-a15e-4bc6-8097-182e3914f9c1","name":"Connect Databricks - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"databricks datasource\",\n    \"description\": \"\",\n    \"type\": \"Databricks\",\n    \"data\": \"{\\\"host_name\\\":\\\"{{databricks_hostname}}\\\",\\\"http_path\\\":\\\"{{databricks_http_path}}\\\",\\\"token\\\":\\\"{{databricks_token}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 06 Jan 2025 12:48:45 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"335"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"14f-KGAW/n3bW6mJzaFn2fCOdvk+Vw0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"datasource\": {\n        \"id\": \"455f8a0a-2d2b-406d-a4eb-ac566c8ac914\",\n        \"name\": \"databricks datasource\",\n        \"description\": \"\",\n        \"type\": \"Databricks\",\n        \"structuredType\": \"Databricks\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"data\": \"\",\n        \"snapshotTimestamp\": \"0001-01-01T00:00:00Z\",\n        \"lastRefreshTrigger\": \"0001-01-01T00:00:00Z\",\n        \"lastRefreshStatus\": \"init\"\n    }\n}"}],"_postman_id":"2777ac02-1952-4f92-a392-c8d2a7d71783"},{"name":"Connect Trino","id":"5cb1633d-9d23-4145-8853-8274bd8e0f6d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"name\": \"Trino DB\",\n  \"description\": \"our trino db\",\n  \"type\": \"Trino\",\n  \"data\": \"{\\\"address\\\":\\\"{{trino_host}}\\\",\\\"username\\\":\\\"{{trino_username}}\\\",\\\"password\\\":\\\"{{trino_password}}\\\",\\\"protocol\\\":\\\"https\\\",\\\"customCertificate\\\":\\\"{{trino_cert}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources","description":"<p>This endpoint allows you to connect a Databricks datasource within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): The service account key file data.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <strong><code>datasource</code></strong> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>structuredType</code></strong> (string): The type of the datasource used for the unstructured datasource structure (e.g., Postgres, MySQL, etc.).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): Configuration data for the datasource - always empty. To get this information, use the <em><strong>Get Datasource Connection Details</strong></em> API.</p>\n</li>\n<li><p><strong><code>snapshotTimestamp</code></strong> (string): The timestamp of the last snapshot taken for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshTrigger</code></strong> (string): The timestamp of the last refresh trigger for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshStatus</code></strong> (string): The status of the last refresh operation. Options:</p>\n<ul>\n<li><p>init</p>\n</li>\n<li><p>indexing</p>\n</li>\n<li><p>failed / completed</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"91bbe08c-5df4-4368-a2c6-25b88b612dbf","name":"Connect Trino - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Trino DB\",\n    \"description\": \"our trino db\",\n    \"type\": \"Trino\",\n    \"data\": \"{\\\"address\\\":\\\"{{trino_host}}\\\",\\\"username\\\":\\\"{{trino_username}}\\\",\\\"password\\\":\\\"{{trino_password}}\\\",\\\"protocol\\\":\\\"https\\\",\\\"customCertificate\\\":\\\"{{trino_cert}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Thu, 19 Feb 2026 07:49:48 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"227"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"9ee08abe-da07-40d9-89d4-d68b41f79b78\",\n    \"name\": \"Trino DB\",\n    \"description\": \"our trino db\",\n    \"type\": \"Trino\",\n    \"workspaceId\": \"54cb33d9-96bc-4449-82fa-bbd673c85e41\",\n    \"lastRefreshStatus\": \"init\",\n    \"snapshotType\": \"\",\n    \"snapshotScanType\": \"\"\n}"}],"_postman_id":"5cb1633d-9d23-4145-8853-8274bd8e0f6d"},{"name":"Connect MSSQL","id":"9fabf442-8546-452d-93df-50d01b19ce59","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"name\": \"Trino DB\",\n  \"description\": \"our trino db\",\n  \"type\": \"Trino\",\n  \"data\": \"{\\\"address\\\":\\\"{{trino_host}}\\\",\\\"username\\\":\\\"{{trino_username}}\\\",\\\"password\\\":\\\"{{trino_password}}\\\",\\\"protocol\\\":\\\"https\\\",\\\"customCertificate\\\":\\\"{{trino_cert}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources","description":"<p>This endpoint allows you to connect a Databricks datasource within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): The service account key file data.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <strong><code>datasource</code></strong> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>structuredType</code></strong> (string): The type of the datasource used for the unstructured datasource structure (e.g., Postgres, MySQL, etc.).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): Configuration data for the datasource - always empty. To get this information, use the <em><strong>Get Datasource Connection Details</strong></em> API.</p>\n</li>\n<li><p><strong><code>snapshotTimestamp</code></strong> (string): The timestamp of the last snapshot taken for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshTrigger</code></strong> (string): The timestamp of the last refresh trigger for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshStatus</code></strong> (string): The status of the last refresh operation. Options:</p>\n<ul>\n<li><p>init</p>\n</li>\n<li><p>indexing</p>\n</li>\n<li><p>failed / completed</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"9fabf442-8546-452d-93df-50d01b19ce59"},{"name":"Connect Snowflake","id":"1b01aa80-f96d-48ad-890a-88befa1fcff4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"name\": \"Trino DB\",\n  \"description\": \"our trino db\",\n  \"type\": \"Trino\",\n  \"data\": \"{\\\"address\\\":\\\"{{trino_host}}\\\",\\\"username\\\":\\\"{{trino_username}}\\\",\\\"password\\\":\\\"{{trino_password}}\\\",\\\"protocol\\\":\\\"https\\\",\\\"customCertificate\\\":\\\"{{trino_cert}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources","description":"<p>This endpoint allows you to connect a Databricks datasource within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): The service account key file data.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <strong><code>datasource</code></strong> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>structuredType</code></strong> (string): The type of the datasource used for the unstructured datasource structure (e.g., Postgres, MySQL, etc.).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): Configuration data for the datasource - always empty. To get this information, use the <em><strong>Get Datasource Connection Details</strong></em> API.</p>\n</li>\n<li><p><strong><code>snapshotTimestamp</code></strong> (string): The timestamp of the last snapshot taken for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshTrigger</code></strong> (string): The timestamp of the last refresh trigger for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshStatus</code></strong> (string): The status of the last refresh operation. Options:</p>\n<ul>\n<li><p>init</p>\n</li>\n<li><p>indexing</p>\n</li>\n<li><p>failed / completed</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"1b01aa80-f96d-48ad-890a-88befa1fcff4"},{"name":"Connect Redshift","id":"888d0ae5-60d5-4f9f-bc55-d9eafcfe01db","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"name\": \"Trino DB\",\n  \"description\": \"our trino db\",\n  \"type\": \"Trino\",\n  \"data\": \"{\\\"address\\\":\\\"{{trino_host}}\\\",\\\"username\\\":\\\"{{trino_username}}\\\",\\\"password\\\":\\\"{{trino_password}}\\\",\\\"protocol\\\":\\\"https\\\",\\\"customCertificate\\\":\\\"{{trino_cert}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources","description":"<p>This endpoint allows you to connect a Databricks datasource within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): the unique id of the workspace.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): The service account key file data.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <strong><code>datasource</code></strong> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the datasource.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource, in this case: <em>Databricks</em>.</p>\n</li>\n<li><p><strong><code>structuredType</code></strong> (string): The type of the datasource used for the unstructured datasource structure (e.g., Postgres, MySQL, etc.).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): Configuration data for the datasource - always empty. To get this information, use the <em><strong>Get Datasource Connection Details</strong></em> API.</p>\n</li>\n<li><p><strong><code>snapshotTimestamp</code></strong> (string): The timestamp of the last snapshot taken for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshTrigger</code></strong> (string): The timestamp of the last refresh trigger for the datasource.</p>\n</li>\n<li><p><strong><code>lastRefreshStatus</code></strong> (string): The status of the last refresh operation. Options:</p>\n<ul>\n<li><p>init</p>\n</li>\n<li><p>indexing</p>\n</li>\n<li><p>failed / completed</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"888d0ae5-60d5-4f9f-bc55-d9eafcfe01db"},{"name":"Test Datasource Connection","id":"32273abd-2112-426d-8c2b-2cec09b7bb29","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"type\": \"Postgres\",\n    \"data\": \"{\\\"hostname\\\":\\\"{{postgres_host_name}}\\\",\\\"username\\\":\\\"{{postgres_username}}\\\",\\\"password\\\":\\\"{{postgres_pwd}}\\\",\\\"port\\\":5432,\\\"databasename\\\":\\\"{{postgres_db_name}}\\\",\\\"ssl\\\":true}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/test-connection","description":"<p>This endpoint allows you to test the connection to a datasource within a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code> (string): The ID of the workspace to which the datasource will be connected.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><code>type</code> (string): Specifies the type of the datasource (e.g. Postgres, MySQL, etc.)</p>\n</li>\n<li><p><code>data</code> (string): Contains the connection details in JSON format including hostname, port, database, username, and password.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><code>result</code> (string): The outcome of the connection test.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","test-connection"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"4c305a8b-c6e6-464d-867a-d17c52fe6d99","name":"Test Connection","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"type\": \"Postgres\",\n    \"data\": \"{\\\"hostname\\\":\\\"{{postgres_host_name}}\\\",\\\"username\\\":\\\"{{postgres_username}}\\\",\\\"password\\\":\\\"{{postgres_pwd}}\\\",\\\"port\\\":5432,\\\"databasename\\\":\\\"{{postgres_db_name}}\\\",\\\"ssl\\\":true}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/test-connection"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"result\": \"passed\"\n}"}],"_postman_id":"32273abd-2112-426d-8c2b-2cec09b7bb29"},{"name":"Get Datasource","id":"d56e8d2a-d2ba-4aa1-b208-2ab6c2a08a20","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}","description":"<p>This endpoint retrieves the details of a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <code>datasource</code> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): A unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the datasource.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A description of the datasource. Can be empty.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the datasource (e.g., \"Postgres\").</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): A unique identifier for the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>snapshotTimestamp</code></strong> (string): The timestamp of the last snapshot in ISO 8601 format. Defaults to \"0001-01-01T00:00:00Z\" if not set.</p>\n</li>\n<li><p><strong>lastRefreshTrigger</strong> (string): The timestamp of the last refresh trigger in ISO 8601 format. Defaults to \"0001-01-01T00:00:00Z\" if not set.</p>\n</li>\n<li><p><strong><code>lastRefreshStatus</code></strong> (string): The status of the last refresh operation.</p>\n</li>\n</ul>\n<p><strong>💡</strong> use <em><strong>Get Datasource Connection</strong></em> request in order to get the datasource connection properties.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"79bdc0ae-700d-4c7f-b41b-edea1dd3799d","name":"Get Datasource - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 18 Nov 2024 11:19:26 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"342"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"156-Y5fvN7c4fPoz72TKxLjlV1zuemE\""}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"b50113ab-f9ab-455a-966e-032e553f47e8\",\n    \"name\": \"Transactions\",\n    \"description\": \"financial data\",\n    \"type\": \"Postgres\",\n    \"workspaceId\": \"ef2b07a0-b612-46cc-9ab7-10abaf5036e6\",\n    \"snapshotTimestamp\": \"2025-10-22T19:40:33.665386Z\",\n    \"lastRefreshTrigger\": \"2025-10-22T19:40:31.245112Z\",\n    \"lastRefreshStatus\": \"completed\",\n    \"snapshotType\": \"full\",\n    \"snapshotScanType\": \"full\"\n}"}],"_postman_id":"d56e8d2a-d2ba-4aa1-b208-2ab6c2a08a20"},{"name":"Get Datasources","id":"cde9c57a-0fef-4dc1-b03d-4ef48a527f9d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources","description":"<p>This endpoint retrieves a list of datasources for a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code> (string): The ID of the workspace for which datasources are to be retrieved.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a <code>datasources</code> object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><code>id</code> (string): The ID of the datasource.</p>\n</li>\n<li><p><code>name</code> (string): The name of the datasource.</p>\n</li>\n<li><p><code>description</code> (string): The description of the datasource.</p>\n</li>\n<li><p><code>type</code> (string): The type of the datasource (e.g., Postgres).</p>\n</li>\n<li><p><code>workspaceId</code> (string): The ID of the workspace to which the datasource belongs.</p>\n</li>\n<li><p><code>data</code> (string): The data associated with the datasource.</p>\n</li>\n<li><p><code>snapshotTimestamp</code> (string): The timestamp of the last snapshot of the datasource.</p>\n</li>\n<li><p><code>lastRefreshTrigger</code> (string): The trigger for the last refresh of the datasource.</p>\n</li>\n<li><p><code>lastRefreshStatus</code> (string): The status of the last refresh of the datasource.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"677b8acb-09cd-4a8e-92ed-d697fdaea955","name":"Get Datasources - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 18 Nov 2024 08:44:56 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1594"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"63a-5pSIveftrzDkttLolzn/ODo1HpQ\""}],"cookie":[],"responseTime":null,"body":"{\n    \"datasources\": [\n        {\n            \"id\": \"ce51af0a-b8ed-4465-9dd4-62d9e32e4408\",\n            \"name\": \"database\",\n            \"description\": \"\",\n            \"type\": \"BigQuery\",\n            \"workspaceId\": \"e963620f-6c8e-42ff-a19a-c86470f42b0e\",\n            \"snapshotTimestamp\": \"2026-02-03T10:24:32.788075Z\",\n            \"lastRefreshStatus\": \"\",\n            \"snapshotType\": \"basic\",\n            \"snapshotScanType\": \"basic\"\n        },\n        {\n            \"id\": \"28db1acd-f4ea-4928-a323-ceb17574b486\",\n            \"name\": \"databricks datasource\",\n            \"description\": \"\",\n            \"type\": \"Databricks\",\n            \"workspaceId\": \"e963620f-6c8e-42ff-a19a-c86470f42b0e\",\n            \"lastRefreshStatus\": \"\",\n            \"snapshotType\": \"none\",\n            \"snapshotScanType\": \"none\"\n        },\n        {\n            \"id\": \"9975f5c0-bff0-43db-9e17-07f0d2104211\",\n            \"name\": \"Demo\",\n            \"description\": \"Test\",\n            \"type\": \"BigQuery\",\n            \"workspaceId\": \"e963620f-6c8e-42ff-a19a-c86470f42b0e\",\n            \"snapshotTimestamp\": \"2026-02-12T14:34:58.493835Z\",\n            \"lastRefreshStatus\": \"\",\n            \"snapshotType\": \"basic\",\n            \"snapshotScanType\": \"basic\"\n        }\n    ]\n}"}],"_postman_id":"cde9c57a-0fef-4dc1-b03d-4ef48a527f9d"},{"name":"Get Datasource Connection Details","id":"d13736ee-128c-45f0-8789-ab57c99f335b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/data/secure","description":"<p>This endpoint retrieves the connection string properties of a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be a datasource object in JSON format and will contain the following fields:</p>\n<ul>\n<li><p><code>id</code> (string): A unique identifier for the datasource.</p>\n</li>\n<li><p><code>name</code> (string): The name of the datasource.</p>\n</li>\n<li><p><code>description</code> (string): A description of the datasource. Can be empty.</p>\n</li>\n<li><p><code>type</code> (string): The type of the datasource (e.g., \"Postgres\").</p>\n</li>\n<li><p><code>workspaceId</code> (string): A unique identifier for the workspace associated with the datasource.</p>\n</li>\n<li><p><code>data</code> (string): The datasource connection properties.</p>\n</li>\n<li><p><code>snapshotTimestamp</code> (string): The timestamp of the last snapshot in ISO 8601 format. Defaults to \"0001-01-01T00:00:00Z\" if not set.</p>\n</li>\n<li><p><code>lastRefreshTrigger</code> (string): The timestamp of the last refresh trigger in ISO 8601 format. Defaults to \"0001-01-01T00:00:00Z\" if not set.</p>\n</li>\n<li><p><code>lastRefreshStatus</code> (string): The status of the last refresh operation.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","data","secure"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"9a7933ab-18b8-4ca7-aa11-6b893258086f","name":"Get Datasource Connection Details - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/data/secure"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 20 Nov 2024 07:52:10 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"483"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"1e3-eggJgW8sjbX7nQKdSOpLHhMwC+I\""}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"19b6294b-6bd5-4db9-9b84-1e67a026c389\",\n    \"name\": \"Transactions\",\n    \"description\": \"financial data\",\n    \"type\": \"Postgres\",\n    \"structuredType\": \"Postgres\",\n    \"workspaceId\": \"fe7bd489-9eab-4fee-a9aa-ba41a2b9ea57\",\n    \"data\": \"{\\\"hostName\\\":\\\"{{postgres_host}}\\\",\\\"username\\\":\\\"{{postgres_username}}\\\",\\\"port\\\":5432,\\\"databaseName\\\":\\\"db_catalog\\\",\\\"ssl\\\":true}\",\n    \"snapshotTimestamp\": \"2025-10-22T19:40:33.665386Z\",\n    \"lastRefreshStatus\": \"\",\n    \"snapshotType\": \"full\",\n    \"snapshotScanType\": \"full\"\n}"}],"_postman_id":"d13736ee-128c-45f0-8789-ab57c99f335b"},{"name":"Update Datasource","id":"4edaedb4-9cb8-41af-b9f0-71f0d70cd093","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n        \"name\": \"databricks warehouse \",\n        \"description\": \"databricks warehouse  check\",\n        \"type\": \"Databricks\",\n        \"data\": \"{\\\"host_name\\\":\\\"{{databricks_hostname}}\\\",\\\"http_path\\\":\\\"{{databricks_http_path}}\\\",\\\"token\\\":\\\"{{databricks_token}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}","description":"<p>This endpoint allows the user to update a specific datasource within a workspace.</p>\n<p>To update name or description, no need to send data (connection string details), just the datsource type.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><code>name</code> (string): The new name for the datasource.</p>\n</li>\n<li><p><code>description</code> (string): The new description for the datasource.</p>\n</li>\n<li><p><code>type</code> (string): The type of the datasource, e.g., \"Postgres\".</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>Upon successful update, the server returns a status code of 201 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"8e9dee4c-539b-4ce3-b48a-88a264678167","name":"Update Datasource - 200 Success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n        \"name\": \"databricks warehouse \",\n        \"description\": \"databricks warehouse  check\",\n        \"type\": \"Databricks\",\n        \"data\": \"{\\\"host_name\\\":\\\"{{databricks_hostname}}\\\",\\\"http_path\\\":\\\"{{databricks_http_path}}\\\",\\\"token\\\":\\\"{{databricks_token}}\\\"}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Thu, 19 Feb 2026 08:09:44 GMT"},{"key":"Content-Length","value":"0"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"4edaedb4-9cb8-41af-b9f0-71f0d70cd093"},{"name":"Delete Datasource","id":"959f68b5-85cb-4db6-abf6-4136842ed590","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}","description":"<p>This endpoint is used to delete a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not require a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response for this request will be empty upon successful deletion of the specified datasource.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"60706419-2cd4-4361-9996-d115d5409d8d","name":"Delete Datasource - 200 Success","originalRequest":{"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"959f68b5-85cb-4db6-abf6-4136842ed590"},{"name":"Ping Datasource","id":"814fca38-8aa6-4c54-a6c2-330dd22ee265","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/ping","description":"<p>This endpoint retrieves the ping status of a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><code>result</code> (string): The status of the ping operation.</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","ping"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"04901f9a-73cc-4b0a-8305-4c948fef7ce9","name":"Ping Datasource - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/ping"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 18 Nov 2024 08:40:22 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"19"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"13-/gcogKwNipIRiYlzyplFuW5BEQ0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": \"passed\"\n}"}],"_postman_id":"814fca38-8aa6-4c54-a6c2-330dd22ee265"}],"id":"9cc63cb1-890f-471f-a49d-bd00374b7c69","description":"<p>Data sources can be connected to your PVML workspace using connection string properties, without the need to move or duplicate the data.</p>\n<p>Each datasource type requires specific connection parameters, so make sure you provide the appropriate values for the selected type (e.g., Snowflake, Databricks, Postgres, etc.).</p>\n<p>After successfuly connecting a new datasource, choose a snapshot type.</p>\n<img src=\"https://content.pstmn.io/20d9ae45-4654-492c-b145-4fe9b6429cca/VW50aXRsZWQgZGVzaWduICgyKS5naWY=\" />","_postman_id":"9cc63cb1-890f-471f-a49d-bd00374b7c69","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Snapshot","item":[{"name":"Get Snapshot","id":"73f0e10d-69bc-45bd-bb8b-d09029f13ffb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/tree","description":"<p>This endpoint retrieves the snapshot, tree structure (schemas) of a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><code>tree</code>: snapshot object containing:</p>\n<ul>\n<li><p><code>datasourceName</code> (string): Name of the data source.</p>\n</li>\n<li><p><code>datasourceType</code> (string): Type of the data source.</p>\n</li>\n<li><p><code>schemas</code>: List of schemas, each with:</p>\n<ul>\n<li><p><code>schemaName</code> (string): Name of the schema.</p>\n</li>\n<li><p><code>tables</code>: List of tables in the schema, each with:</p>\n<ul>\n<li><p><code>tableName</code> (string): Name of the table.</p>\n</li>\n<li><p><code>columns</code>: List of columns in the table, each with:</p>\n<ul>\n<li><p><code>columnName</code> (string): Name of the column.</p>\n</li>\n<li><p><code>columnDataType</code> (string): Data type of the column.</p>\n</li>\n<li><p><code>filterType</code> (string): Type of filter applicable (used in row-level policies).</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","tree"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"5e9832e9-d900-4c0d-a414-be2789b5bda9","name":"Get Snapshot - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/tree"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 28 Nov 2024 11:25:45 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"13793"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"35e1-YvXNskS/592DQkK7jIgYt8FMSwA\""}],"cookie":[],"responseTime":null,"body":"{\n    \"tree\": {\n        \"datasourceName\": \"Transactions\",\n        \"datasourceType\": \"Postgres\",\n        \"schemas\": [\n            {\n                \"schemaName\": \"\\\"demo_catalog\\\".\\\"hospital_light\\\"\",\n                \"tables\": [\n                    {\n                        \"tableName\": \"\\\"appointments\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"doctor_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"patient_id\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"scheduled_end\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"columnGeneralDataType\": \"timestamp\"\n                            },\n                            {\n                                \"columnName\": \"\\\"scheduled_start\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"columnGeneralDataType\": \"timestamp\"\n                            },\n                            {\n                                \"columnName\": \"\\\"urgency\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"certificates\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"code\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"doctor_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"end_date\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"start_date\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"departments\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"budget\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"name\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"target\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"doctors\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"doctors_departments\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"department_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"doctor_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"employees\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"age\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"full_name\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"manager_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"salary\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"studied_abroad\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"medications\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"brand\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"name\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"price\\\"\",\n                                \"columnDataType\": \"real\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"nurse_shifts\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"nurse_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"shift\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"shift_end\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"columnGeneralDataType\": \"timestamp\"\n                            },\n                            {\n                                \"columnName\": \"\\\"shift_start\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"columnGeneralDataType\": \"timestamp\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"nurses\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"department_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"patients\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"admission_date\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"discharge_date\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"gender\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"name\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"ssn\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"prescriptions\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"amount\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"appointment_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"medication_brand\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"medication_name\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"reports\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"appointment_id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"diagnosis\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"integer\",\n                                \"columnGeneralDataType\": \"numeric\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"stock\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"brand\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"expire\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"name\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"warehouse\\\"\",\n                                \"columnDataType\": \"text\",\n                                \"columnGeneralDataType\": \"text\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"73f0e10d-69bc-45bd-bb8b-d09029f13ffb"},{"name":"Get Snapshot Status","id":"47519006-3f18-4b5a-9dd2-c47069cfa8f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/refresh-data","description":"<p>This endpoint retrieves the status of the <em>refresh snapshot</em> operation for a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<ul>\n<li><p><code>lastRefreshTrigger</code> (string): Indicates the trigger for the last refresh.</p>\n</li>\n<li><p><code>LastRefreshStatus</code> (string): Represents the status of the last refresh.</p>\n</li>\n<li><p><code>snapshotTimeStamp</code> (string): Shows the timestamp of the snapshot. Options:</p>\n<ul>\n<li><p><code>init</code></p>\n</li>\n<li><p><code>indexing</code></p>\n</li>\n<li><p><code>failed / completed</code></p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","refresh-data"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"e01323de-9d42-4d1c-aba2-6e9e345d9379","name":"Refresh Snapshot Data - Completed - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/refresh-data"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 18 Nov 2024 09:11:52 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"132"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"84-pUotggf00kAXaEkqjAptuthKS8U\""}],"cookie":[],"responseTime":null,"body":"{\n    \"lastRefreshTrigger\": \"2024-11-18T08:59:56.32392Z\",\n    \"LastRefreshStatus\": \"completed\",\n    \"snapshotTimeStamp\": \"2024-11-18T08:59:57.92147Z\"\n}"},{"id":"24e5bca3-3efc-4dd4-a365-13cd54c78919","name":"Refresh Snapshot Data - Indexing - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/refresh-data"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 18 Nov 2024 09:11:52 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"132"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"84-pUotggf00kAXaEkqjAptuthKS8U\""}],"cookie":[],"responseTime":null,"body":"{\n    \"lastRefreshTrigger\": \"2024-11-18T08:55:25.462209Z\",\n    \"LastRefreshStatus\": \"indexing\",\n    \"snapshotTimeStamp\": \"2024-06-19T11:18:42.585119Z\"\n}"}],"_postman_id":"47519006-3f18-4b5a-9dd2-c47069cfa8f6"},{"name":"Refresh Snapshot","id":"2daf03f2-f1b0-409d-98bc-7920e397e161","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/refresh","description":"<p>This endpoint is used to trigger a manual refresh of a specific datasource snapshot within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>Upon successful refresh of the snapshot, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","refresh"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"598ec60c-a2a0-4e65-a020-0866eda59255","name":"Refresh Snapshot - 200 Success","originalRequest":{"method":"POST","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/refresh"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 18 Nov 2024 08:59:56 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"2daf03f2-f1b0-409d-98bc-7920e397e161"}],"id":"7f255109-c650-4bd0-b37d-8048ac5b52b5","description":"<p>Once the data source is connected, a snapshot of the data schema (the structure of tables and columns) will be pulled.</p>\n<p>You can choose between:</p>\n<ol>\n<li><p><strong>Schema-only snapshot:</strong> Scans datasource structure without collecting data samples; AI accuracy may be impacted.</p>\n</li>\n<li><p><strong>Standard snapshot:</strong> Captures full datasource structure with samples to improve AI insights and enable Differential Privacy controls.</p>\n</li>\n</ol>\n","_postman_id":"7f255109-c650-4bd0-b37d-8048ac5b52b5","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Identifiers","item":[{"name":"Get Identifiers","id":"6858280a-5de7-4907-a1f3-2d565ada32eb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/identifiers","description":"<p>This endpoint retrieves the identifiers for a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be <strong>schemaIdentifiers (array of objects)</strong>: A list of schema identifier objects, each representing an identifier.</p>\n<ul>\n<li><p><strong>workspaceId (string)</strong>: The unique ID of the workspace containing the datasource.</p>\n</li>\n<li><p><strong>datasourceId (string)</strong>: The unique ID of the datasource associated with the schema.</p>\n</li>\n<li><p><strong>schema (string)</strong>: The schema path in the datasource.</p>\n</li>\n<li><p><strong>identifiers (array of objects)</strong>: A list of column identifiers within the schema.</p>\n<ul>\n<li><p><strong>tableName (string)</strong>: The name of a table in the schema.</p>\n</li>\n<li><p><strong>columnNames (array of strings)</strong>: A list of column names within the table.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","metadata","identifiers"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"130f5208-93ea-46e5-a627-c635ab1efcef","name":"Get Identifiers","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/identifiers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 27 Nov 2024 13:32:29 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"251"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"fb-aldXOONwJieGJBkPXmoSD3F62Tc\""}],"cookie":[],"responseTime":null,"body":"{\n    \"schemaIdentifiers\": [\n        {\n            \"workspaceId\": \"8cd55340-7b51-4967-8eae-b23aafaaa3b1\",\n            \"datasourceId\": \"4bdd6dce-c427-454f-8d8c-5f4838b30b3c\",\n            \"schema\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"identifiers\": [\n                {\n                    \"tableName\": \"\\\"accounts\\\"\",\n                    \"columnNames\": [\n                        \"\\\"account_id\\\"\"\n                    ]\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"6858280a-5de7-4907-a1f3-2d565ada32eb"},{"name":"Update Identifiers","id":"b35cac8f-f3fc-4718-b519-19b8fe9edc79","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"schema\": \"\\\"demo_catalog\\\".\\\"aviation\\\"\",\n    \"identifiers\": [\n        {\n            \"tableName\": \"\\\"pilots\\\"\",\n            \"columnNames\": [\n                \"\\\"id\\\"\"\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/identifiers","description":"<p>This endpoint updates the identifiers for a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><code>schema</code> (string): The schema path.</p>\n</li>\n<li><p><code>identifiers</code> (array): An array of objects containing <code>tableName</code> (string) and <code>columnNames</code> (array of strings).</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>Upon successful update, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","metadata","identifiers"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"753b524c-89fd-49bc-94ee-a9b065d864e4","name":"Update Identifiers","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"schema\": \"\\\"demo_catalog\\\".\\\"aviation\\\"\",\n    \"identifiers\": [\n        {\n            \"tableName\": \"\\\"pilots\\\"\",\n            \"columnNames\": [\n                \"\\\"id\\\"\"\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/identifiers"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"b35cac8f-f3fc-4718-b519-19b8fe9edc79"}],"id":"1d940ba1-caa5-41bc-a0b3-99632a8f4818","description":"<p>💡 <strong>What is an identifier?</strong></p>\n<p>An identifier is the entity you're aiming to keep private in the analysis.</p>\n<p>This field specifies the column whose raw data - potentially across multiple rows - you wish to protect when applying a <strong>differential privacy</strong>.</p>\n<p>Note: an identifier <strong>does not have to be PII</strong> (Personally Identifiable Information) because the concept of privacy here is broader than just personal information.</p>\n<p>The identifier is simply the element (like a person, a transaction, or an event) whose presence or absence in the data should not significantly change the query result.</p>\n<p>💡 <strong>Why can't I just mask the identifier or the PII?</strong></p>\n<p>Masking or removing identifiers or PII isn’t enough because other information in the dataset (e.g., role, education, city) can still indirectly identify individuals when combined or cross referenced with external data (e.g., Linkedin profile).</p>\n<img src=\"https://content.pstmn.io/2ca34edb-28be-4002-bde0-10c7d7f3fba2/QW5vbnltaXphdGlvbiAtIFY0LnBuZw==\" alt=\"Re-identification%20of%20Sensitive%20Data%20Through%20Cross-Referencing%20External%20Information:%20Why%20Masking%20the%20Identifier/PII%20isn't%20Good%20Enough\" />","_postman_id":"1d940ba1-caa5-41bc-a0b3-99632a8f4818","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Descriptions","item":[{"name":"Get Descriptions","id":"d1fb8e77-c749-40ee-8a46-34fe889f52b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/descriptions","description":"<p>This endpoint retrieves the descriptions of schemas, tables and columns of a datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>A json object containing all the fields with descriptions:</p>\n<ul>\n<li><p><strong>Key</strong>: A full path to a schema, table, or column.</p>\n</li>\n<li><p><strong>Value</strong>: A descriptive string explaining the purpose or content of the key.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","metadata","descriptions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"cfac4dce-0379-4939-ad19-dfe8c62875cb","name":"Get Descriptions - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/description"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 28 Nov 2024 09:43:41 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"23123"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"5a53-JxQqguEKBKOyLHC+II7DtAlqDdg\""}],"cookie":[],"responseTime":null,"body":"{\n    \"\\\"demo_catalog\\\".\\\"aviation\\\".\\\"flight_schedule\\\".\\\"flight_duration\\\"\": \"duration of the flight in minutes\",\n    \"\\\"demo_catalog\\\".\\\"aviation\\\".\\\"flight_schedule\\\".schema##\": \"This table includes details about the flights schedule. It does not include pilots' names.\",\n    \"\\\"demo_catalog\\\".\\\"aviation\\\".\\\"table##\\\".\\\"schema##\\\"\": \"This schema contains aviation and flights data\"\n}"}],"_postman_id":"d1fb8e77-c749-40ee-8a46-34fe889f52b0"},{"name":"Get Snapshot with Descriptions","id":"be16fdaa-271e-4057-ae75-e2ea0362a63a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/tree?enrich=true&pii=false","description":"<p>This endpoint retrieves the snapshot (tree structure) with descriptions.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>enrich</code></strong> (boolean): When set to <code>true</code>, includes descriptions in the tree response.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><code>tree</code>: snapshot object containing:</p>\n<ul>\n<li><p><code>datasourceName</code> (string): Name of the data source.</p>\n</li>\n<li><p><code>datasourceType</code> (string): Type of the data source.</p>\n</li>\n<li><p><code>schemas</code>: List of schemas, each with:</p>\n<ul>\n<li><p><code>schemaName</code> (string): Name of the schema.</p>\n</li>\n<li><p><code>tables</code>: List of tables in the schema, each with:</p>\n<ul>\n<li><p><code>tableName</code> (string): Name of the table.</p>\n</li>\n<li><p><code>columns</code>: List of columns in the table, each with:</p>\n<ul>\n<li><p><code>columnName</code> (string): Name of the column.</p>\n</li>\n<li><p><code>columnDataType</code> (string): Data type of the column.</p>\n</li>\n<li><p><code>filterType</code> (string): Type of filter applicable (used in row-level policies).</p>\n</li>\n<li><p><strong><code>columnDescription</code></strong> (string): The description of the column.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","tree"],"host":["platform","pvml","com"],"query":[{"key":"enrich","value":"true"},{"key":"pii","value":"false"}],"variable":[]}},"response":[{"id":"e4530d20-2c13-41e7-b98e-b81b34aea81a","name":"Get Snapshot with Descriptions - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/tree?enrich=true&pii=false","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","tree"],"query":[{"key":"enrich","value":"true"},{"key":"pii","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 02 Jan 2025 12:48:01 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"17327"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"43af-8lqdvwbYJJaZqNqUasKY6XtX200\""}],"cookie":[],"responseTime":null,"body":"{\n    \"tree\": {\n        \"datasourceName\": \"Transactions\",\n        \"datasourceType\": \"Postgres\",\n        \"schemas\": [\n            {\n                \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_2\\\"\",\n                \"tables\": [\n                    {\n                        \"tableName\": \"\\\"airplane_allocations\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"filterType\": \"timestamp\",\n                                \"columnDescription\": \"The date and time when the flight is scheduled to departure\"\n                            },\n                            {\n                                \"columnName\": \"\\\"landing_datetime\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"filterType\": \"timestamp\",\n                                \"columnDescription\": \"The date and time when the flight is scheduled to arrive\"\n                            },\n                            {\n                                \"columnName\": \"\\\"mission_id\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"Unique identifier for each flight, mission 000 is maintenance\"\n                            },\n                            {\n                                \"columnName\": \"\\\"flight_number\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The assigned flight number\"\n                            },\n                            {\n                                \"columnName\": \"\\\"airplane_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"Unique identifier for each airplane\"\n                            },\n                            {\n                                \"columnName\": \"\\\"origin_code\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The code representing the origin airport of the flight\"\n                            },\n                            {\n                                \"columnName\": \"\\\"destination_code\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The code representing the destination airport of the flight\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"airplane_static_info\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"max_distance_km\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"per_hour_cost\\\"\",\n                                \"columnDataType\": \"double precision\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The cost per hour of operating the airplane\"\n                            },\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"Unique identifier for each airplane\"\n                            },\n                            {\n                                \"columnName\": \"\\\"model\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"capacity\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The maximum number of passengers that the airplane can accommodate\"\n                            },\n                            {\n                                \"columnName\": \"\\\"req_fa_count\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The number of flight attendants required for the airplane\"\n                            },\n                            {\n                                \"columnName\": \"\\\"req_pilots_count\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The number of pilots required for the airplane\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"crew_static_info\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"Unique identifier for each crew member\"\n                            },\n                            {\n                                \"columnName\": \"\\\"role\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The role of the crew member possible roles: 'pilot' and 'flight-attendant'\"\n                            },\n                            {\n                                \"columnName\": \"\\\"rest_time_min\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The minimum amount of rest time in minutes that the crew member requires\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"route_static_details\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"destination_code\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The code of the airport to which the flight arrives\"\n                            },\n                            {\n                                \"columnName\": \"\\\"destination_min_ground_min\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"departure_time\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The time (24 hour format) representing the scheduled departure time of the flight\"\n                            },\n                            {\n                                \"columnName\": \"\\\"landing_time\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The time (24 hour format) representing the scheduled landing time of the flight\"\n                            },\n                            {\n                                \"columnName\": \"\\\"flight_distance_km\\\"\",\n                                \"columnDataType\": \"double precision\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The flight distance in kilometers between the origin and destination\"\n                            },\n                            {\n                                \"columnName\": \"\\\"flight_number\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"Unique identifier for this route, flight number represents the route, the day and the time it does not represent the date and if a mission was scheduled\"\n                            },\n                            {\n                                \"columnName\": \"\\\"origin_code\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The code of the airport from which the flight departs\"\n                            },\n                            {\n                                \"columnName\": \"\\\"destination_city\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The city to which the flight arrives\"\n                            },\n                            {\n                                \"columnName\": \"\\\"origin_city\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The city from which the flight departs\"\n                            },\n                            {\n                                \"columnName\": \"\\\"day\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The day of the week on which the flight is scheduled (SUN, MON .. )\"\n                            },\n                            {\n                                \"columnName\": \"\\\"flight_time_min\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The duration of the flight in minutes\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"crew_allocations\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"crew_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"Unique identifier for each crew member\"\n                            },\n                            {\n                                \"columnName\": \"\\\"origin_code\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The code representing the origin airport of the flight\"\n                            },\n                            {\n                                \"columnName\": \"\\\"destination_code\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"The code representing the destination airport of the flight\"\n                            },\n                            {\n                                \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"filterType\": \"timestamp\",\n                                \"columnDescription\": \"The date and time when the flight is scheduled to departure\"\n                            },\n                            {\n                                \"columnName\": \"\\\"landing_datetime\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"filterType\": \"timestamp\",\n                                \"columnDescription\": \"The date and time when the flight is scheduled to arrival\"\n                            },\n                            {\n                                \"columnName\": \"\\\"mission_id\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"columnDescription\": \"Unique identifier for each flight, mission 000 is maintenance\"\n                            },\n                            {\n                                \"columnName\": \"\\\"flight_number\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\",\n                                \"columnDescription\": \"The assigned flight number\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"be16fdaa-271e-4057-ae75-e2ea0362a63a"},{"name":"Get View with Descriptions","id":"d5b821e1-8700-41fb-abc5-5f5adf5d5288","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/tree/descriptive","description":"<p>This endpoint allows to get a specific view with descriptions of the schema parts.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the new view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><strong><code>view</code></strong> json containing:</p>\n<ul>\n<li><p><strong><code>viewId</code></strong> (string): Unique identifier for the view.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the datasource (e.g., Postgres).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace where the view is located.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Descriptive name of the view.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Additional information or context about the view.</p>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of view creation.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the most recent modification to the view.</p>\n</li>\n<li><p><strong><code>permissionsLastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the last update to policies in the view.</p>\n</li>\n<li><p><strong><code>image</code></strong> (string): Encoded image representation or thumbnail of the view.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","tree","descriptive"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d5b821e1-8700-41fb-abc5-5f5adf5d5288"},{"name":"Update Descriptions","id":"6929d77f-4558-4011-a315-09041a619582","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"toAdd\": [\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"branch_id\\\"\",\n            \"description\": \"the branch where the account was opened and the funds are stored\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"income\\\"\",\n            \"description\": \"annual income of the account\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"is_business\\\"\",\n            \"description\": \"boolean value that identifies business accounts\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"bank_branches\\\"\",\n            \"columnName\": \"\\\"branch_city\\\"\",\n            \"description\": \"city where the branch is located\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/descriptions","description":"<p>This endpoint allows the user to update the descriptions of schemas, tables and columns of a datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The <code>columns</code> object is a dictionary where:</p>\n<ul>\n<li><p><strong>Key</strong>: A full path to a schema, table, or column.</p>\n</li>\n<li><p><strong>Value</strong>: A descriptive string explaining the purpose or content of the key.</p>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will include the updated columns with their respective descriptions.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","metadata","descriptions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"6fdbda64-31c8-4792-a875-156dc8049437","name":"Update Descriptions - 200 Success","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"toAdd\": [\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"branch_id\\\"\",\n            \"description\": \"the branch where the account was opened and the funds are stored\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"income\\\"\",\n            \"description\": \"annual income of the account\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"is_business\\\"\",\n            \"description\": \"boolean value that identifies business accounts\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/descriptions"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 28 Nov 2024 11:20:37 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"373"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"175-cseiUqLZhlmJOSQ4pKxq/+rv9U8\""}],"cookie":[],"responseTime":null,"body":"{\n    \"toAdd\": [\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"branch_id\\\"\",\n            \"description\": \"the branch where the account was opened and the funds are stored\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"income\\\"\",\n            \"description\": \"annual income of the account\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tableName\": \"\\\"accounts\\\"\",\n            \"columnName\": \"\\\"is_business\\\"\",\n            \"description\": \"boolean value that identifies business accounts\"\n        }\n    ],\n    \"toRemove\": null\n}"}],"_postman_id":"6929d77f-4558-4011-a315-09041a619582"}],"id":"c9f6e688-ceb1-417d-9516-d57b28b3ad5d","description":"<p>💡 <strong>Why do I need to add descriptions?</strong></p>\n<p>Descriptions play a crucial role in <strong>enhancing AI accuracy</strong> when accessing data via AI integrations (Bots) by providing essential context.</p>\n<p>Adding a concise explanation to <strong>data columns, tables, and schemas</strong> helps bridge the gap between internal naming and its intended meaning, particularly when the data includes domain-specific or technical terms.</p>\n<p>By including this metadata, you ensure the AI can handle nuances, resolve ambiguities, and make more informed decisions or responses.</p>\n","_postman_id":"c9f6e688-ceb1-417d-9516-d57b28b3ad5d","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Relations","item":[{"name":"Get Relations","id":"7ca6e0ee-d4d0-4dcd-96d0-1fd0b1b7d655","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/relations","description":"<p>This endpoint retrieves the metadata relations for a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will be <strong>schemaRelations</strong>: a list of schema <strong>relations</strong> objects, each containing details about how tables and columns are related within a schema.</p>\n<ul>\n<li><p><strong>workspaceId (string)</strong>: The ID of the workspace where the datasource resides.</p>\n</li>\n<li><p><strong>datasourceId (string)</strong>: The ID of the datasource containing the schema.</p>\n</li>\n<li><p><strong>schema (string)</strong>: The schema path within the datasource.</p>\n</li>\n<li><p><strong>relations (array of objects)</strong>: A list of table-to-table relationships within the schema.</p>\n<ul>\n<li><p><strong>referencingTable (string)</strong>: The name of the table that references another table.</p>\n</li>\n<li><p><strong>referencedTable (string)</strong>: The name of the table being referenced.</p>\n</li>\n<li><p><strong>columnsReferences (array of objects)</strong>: A list of column-to-column references between the tables.</p>\n<ul>\n<li><p><strong>referencingColumn (string)</strong>: The column in the referencing table.</p>\n</li>\n<li><p><strong>referencedColumn (string)</strong>: The column in the referenced table.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","metadata","relations"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"7202308d-4bf0-4139-a3ec-fedc96874e1d","name":"Get Datasource Relations - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/relations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 18 Nov 2024 09:20:18 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1681"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"691-Ywlerxrggv6+u4GpQeFp9Fa2wRs\""}],"cookie":[],"responseTime":null,"body":"{\n    \"schemaRelations\": [\n        {\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"schema\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"relations\": [\n                {\n                    \"referencingTable\": \"\\\"accounts\\\"\",\n                    \"referencedTable\": \"\\\"transactions\\\"\",\n                    \"columnsReferences\": [\n                        {\n                            \"referencingColumn\": \"\\\"account_id\\\"\",\n                            \"referencedColumn\": \"\\\"account_id\\\"\"\n                        },\n                        {\n                            \"referencingColumn\": \"\\\"income\\\"\",\n                            \"referencedColumn\": \"\\\"amount\\\"\"\n                        }\n                    ]\n                },\n                {\n                    \"referencingTable\": \"\\\"accounts\\\"\",\n                    \"referencedTable\": \"\\\"bank_branches\\\"\",\n                    \"columnsReferences\": [\n                        {\n                            \"referencingColumn\": \"\\\"branch_id\\\"\",\n                            \"referencedColumn\": \"\\\"branch_id\\\"\"\n                        }\n                    ]\n                },\n                {\n                    \"referencingTable\": \"\\\"transactions\\\"\",\n                    \"referencedTable\": \"\\\"bank_branches\\\"\",\n                    \"columnsReferences\": [\n                        {\n                            \"referencingColumn\": \"\\\"processing_branch_id\\\"\",\n                            \"referencedColumn\": \"\\\"branch_id\\\"\"\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"schema\": \"\\\"demo_catalog\\\".\\\"schema_2\\\"\",\n            \"relations\": [\n                {\n                    \"referencingTable\": \"\\\"airplane_allocations\\\"\",\n                    \"referencedTable\": \"\\\"airplane_static_info\\\"\",\n                    \"columnsReferences\": [\n                        {\n                            \"referencingColumn\": \"\\\"airplane_id\\\"\",\n                            \"referencedColumn\": \"\\\"id\\\"\"\n                        }\n                    ]\n                },\n                {\n                    \"referencingTable\": \"\\\"airplane_allocations\\\"\",\n                    \"referencedTable\": \"\\\"route_static_details\\\"\",\n                    \"columnsReferences\": [\n                        {\n                            \"referencingColumn\": \"\\\"flight_number\\\"\",\n                            \"referencedColumn\": \"\\\"flight_number\\\"\"\n                        }\n                    ]\n                },\n                {\n                    \"referencingTable\": \"\\\"crew_allocations\\\"\",\n                    \"referencedTable\": \"\\\"crew_static_info\\\"\",\n                    \"columnsReferences\": [\n                        {\n                            \"referencingColumn\": \"\\\"crew_id\\\"\",\n                            \"referencedColumn\": \"\\\"id\\\"\"\n                        }\n                    ]\n                },\n                {\n                    \"referencingTable\": \"\\\"crew_allocations\\\"\",\n                    \"referencedTable\": \"\\\"route_static_details\\\"\",\n                    \"columnsReferences\": [\n                        {\n                            \"referencingColumn\": \"\\\"flight_number\\\"\",\n                            \"referencedColumn\": \"\\\"flight_number\\\"\"\n                        }\n                    ]\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"7ca6e0ee-d4d0-4dcd-96d0-1fd0b1b7d655"},{"name":"Update Relations","id":"ce5ee800-cf46-4e49-bd32-45899d521d23","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"schema\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n    \"relations\": [\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"transactions\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"account_id\\\"\",\n                    \"referencedColumn\": \"\\\"account_id\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"transactions\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"account_id\\\"\",\n                    \"referencedColumn\": \"\\\"account_id\\\"\"\n                },\n                {\n                    \"referencingColumn\": \"\\\"income\\\"\",\n                    \"referencedColumn\": \"\\\"amount\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"bank_branches\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"branch_id\\\"\",\n                    \"referencedColumn\": \"\\\"branch_id\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"transactions\\\"\",\n            \"referencedTable\": \"\\\"bank_branches\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"processing_branch_id\\\"\",\n                    \"referencedColumn\": \"\\\"branch_id\\\"\"\n                }\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/relations","description":"<p>This endpoint allows you to send an updated list of relations for a specific datasource within a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><code>datasource_id</code> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><code>schema</code> (string): The schema path in the datasource.</p>\n</li>\n<li><p><code>relations</code> (array):</p>\n<ul>\n<li><p><code>referencingTable</code> (string): The referencing table in the relation.</p>\n</li>\n<li><p><code>referencedTable</code> (string): The referenced table in the relation.</p>\n</li>\n<li><p><code>columnsReferences</code> (array):</p>\n<ul>\n<li><p><code>referencingColumn</code> (string): The referencing column in the relation.</p>\n</li>\n<li><p><code>referencedColumn</code> (string): The referenced column in the relation.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response will show the resulting relations (should be the same as in the request unless a race occured):</p>\n<ul>\n<li><p><code>schema</code> (string): The schema path in the datasource.</p>\n</li>\n<li><p><code>relations</code> (array):</p>\n<ul>\n<li><p><code>referencingTable</code> (string): The referencing table in the relation.</p>\n</li>\n<li><p><code>referencedTable</code> (string): The referenced table in the relation.</p>\n</li>\n<li><p><code>columnsReferences</code> (array):</p>\n<ul>\n<li><p><code>referencingColumn</code> (string): The referencing column in the relation.</p>\n</li>\n<li><p><code>referencedColumn</code> (string): The referenced column in the relation.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","metadata","relations"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"73d439e5-24f2-4f1c-aacd-00e4224fd588","name":"Update Relations - 200 Success","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"schema\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n    \"relations\": [\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"transactions\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"account_id\\\"\",\n                    \"referencedColumn\": \"\\\"account_id\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"transactions\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"account_id\\\"\",\n                    \"referencedColumn\": \"\\\"account_id\\\"\"\n                },\n                {\n                    \"referencingColumn\": \"\\\"income\\\"\",\n                    \"referencedColumn\": \"\\\"amount\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"bank_branches\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"branch_id\\\"\",\n                    \"referencedColumn\": \"\\\"branch_id\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"transactions\\\"\",\n            \"referencedTable\": \"\\\"bank_branches\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"processing_branch_id\\\"\",\n                    \"referencedColumn\": \"\\\"branch_id\\\"\"\n                }\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/metadata/relations"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"schema\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n    \"relations\": [\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"transactions\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"account_id\\\"\",\n                    \"referencedColumn\": \"\\\"account_id\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"transactions\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"account_id\\\"\",\n                    \"referencedColumn\": \"\\\"account_id\\\"\"\n                },\n                {\n                    \"referencingColumn\": \"\\\"income\\\"\",\n                    \"referencedColumn\": \"\\\"amount\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"accounts\\\"\",\n            \"referencedTable\": \"\\\"bank_branches\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"branch_id\\\"\",\n                    \"referencedColumn\": \"\\\"branch_id\\\"\"\n                }\n            ]\n        },\n        {\n            \"referencingTable\": \"\\\"transactions\\\"\",\n            \"referencedTable\": \"\\\"bank_branches\\\"\",\n            \"columnsReferences\": [\n                {\n                    \"referencingColumn\": \"\\\"processing_branch_id\\\"\",\n                    \"referencedColumn\": \"\\\"branch_id\\\"\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"ce5ee800-cf46-4e49-bd32-45899d521d23"}],"id":"f96dadaf-a819-4d3a-8336-65cd21586fa3","description":"<p>Relations define the connections and associations between different tables or entities within a data source.</p>\n<p>If you're using Bots for secure RAG, relations provide an additional benefit by:</p>\n<ol>\n<li><p><strong>Contextual Data Access</strong>: Understanding relationships ensures the model generates queries that accurately combine data from multiple tables.</p>\n</li>\n<li><p><strong>Minimized Errors</strong>: Relationships guide the AI to avoid invalid computations or mismatched data.</p>\n</li>\n<li><p><strong>Optimized Performance</strong>: Leveraging relationships helps create efficient data queries, reducing computational overhead and ensuring faster results.</p>\n</li>\n<li><p><strong>Dynamic Adaptation</strong>: Relations allow the model to adapt queries to user-specific needs by retrieving only relevant, interconnected data.</p>\n</li>\n</ol>\n","_postman_id":"f96dadaf-a819-4d3a-8336-65cd21586fa3","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"PII Catalog","item":[{"name":"Get Snapshot with PII","id":"9caf5156-0433-42f7-b758-857429abbc89","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/tree?enrich=false&pii=true","description":"<p>This endpoint retrieves the datasource snapshot (tree structure) <strong>with PIIs tagged</strong> (<code>\"pii\": true</code>).</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n<li><p><strong><code>pii</code></strong> (boolean): When set to <code>true</code>, includes PII tag in the tree response.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><strong><code>tree</code></strong>: snapshot object containing:</p>\n<ul>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the data source.</p>\n</li>\n<li><p><strong><code>schemas</code></strong>: List of schemas, each with:</p>\n<ul>\n<li><p><strong><code>schemaName</code></strong> (string): Name of the schema.</p>\n</li>\n<li><p><strong><code>tables</code></strong>: List of tables in the schema, each with:</p>\n<ul>\n<li><p><strong><code>tableName</code></strong> (string): Name of the table.</p>\n</li>\n<li><p><strong><code>columns</code></strong>: List of columns in the table, each with:</p>\n<ul>\n<li><p><strong><code>columnName</code></strong> (string): Name of the column.</p>\n</li>\n<li><p><strong><code>columnDataType</code></strong> (string): Data type of the column.</p>\n</li>\n<li><p><strong><code>filterType</code></strong> (string): Type of filter applicable (used in row-level policies).</p>\n</li>\n<li><p><strong><code>pii</code></strong> (boolean): Appears if the field was tagged as PII (equals <code>true</code>).</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","tree"],"host":["platform","pvml","com"],"query":[{"key":"enrich","value":"false"},{"key":"pii","value":"true"}],"variable":[]}},"response":[{"id":"d96424c2-4ac4-4457-af3c-7a7a75a27fbe","name":"Get Snapshot with PII - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/tree?enrich=false&pii=true","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","tree"],"query":[{"key":"enrich","value":"false"},{"key":"pii","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 02 Jan 2025 13:01:57 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"13848"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"3618-Yu7SPOTu0fLxfZg8VQXpGaQaNNA\""}],"cookie":[],"responseTime":null,"body":"{\n    \"tree\": {\n        \"datasourceName\": \"Transactions\",\n        \"datasourceType\": \"Postgres\",\n        \"schemas\": [\n            {\n                \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n                \"tables\": [\n                    {\n                        \"tableName\": \"\\\"accounts\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"account_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"holder_first_name\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"pii\": true\n                            },\n                            {\n                                \"columnName\": \"\\\"holder_last_name\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"pii\": true\n                            },\n                            {\n                                \"columnName\": \"\\\"branch_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"holder_date_of_birth\\\"\",\n                                \"columnDataType\": \"date\",\n                                \"filterType\": \"date\",\n                                \"pii\": true\n                            },\n                            {\n                                \"columnName\": \"\\\"address_city\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\",\n                                \"pii\": true\n                            },\n                            {\n                                \"columnName\": \"\\\"address_country_iso3\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"is_business\\\"\",\n                                \"columnDataType\": \"boolean\",\n                                \"filterType\": \"boolean\"\n                            },\n                            {\n                                \"columnName\": \"\\\"income\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"bank_branches\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"branch_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"branch_city\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"branch_country_iso3\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"branch_name\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"parent_bank\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"transactions\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"account_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"processing_branch_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"balance\\\"\",\n                                \"columnDataType\": \"double precision\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"transaction_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"transaction_datetime\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"filterType\": \"timestamp\"\n                            },\n                            {\n                                \"columnName\": \"\\\"amount\\\"\",\n                                \"columnDataType\": \"double precision\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"deposit_or_withdrawal\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"place_of_business\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"9caf5156-0433-42f7-b758-857429abbc89"},{"name":"Get PII Catalog","id":"863aec3f-4b4e-49b1-8e0b-579a29cdda27","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/snapshots/catalog","description":"<p>This endpoint retrieves the PII catalog of a specific datasource in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace associated with the datasource.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong> (string): The unique identifier for the datasource.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><strong><code>catalogs</code></strong>: an array containing snapshots of the catalog:</p>\n<ul>\n<li><p><strong><code>changeTime</code></strong> (string, ISO 8601 format): Represents the timestamp when the PII catalog was last modified, creating this version.</p>\n</li>\n<li><p><strong><code>userId</code></strong> (string): The unique ID of the catalog's version editor.</p>\n</li>\n<li><p><strong><code>userEmail</code></strong> (string): The email of the user who edited the catlaog, creating the version.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): The unique ID of the datasource.</p>\n</li>\n<li><p><strong><code>id</code></strong> (string): The unique id of the catalog snapshot.</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique ID of the workspace containing the datasource.</p>\n</li>\n<li><p><strong><code>tree</code></strong> object containing an array of:</p>\n<ul>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the data source.</p>\n</li>\n<li><p><strong><code>schemas</code></strong>: List of schemas, each with:</p>\n<ul>\n<li><p><strong><code>schemaName</code></strong> (string): Name of the schema.</p>\n</li>\n<li><p><strong><code>tables</code></strong>: List of tables in the schema, each with:</p>\n<ul>\n<li><p><strong><code>tableName</code></strong> (string): Name of the table.</p>\n</li>\n<li><p><strong><code>columns</code></strong>: List of columns in the table, each with:</p>\n<ul>\n<li><p><strong><code>columnName</code></strong> (string): Name of the column.</p>\n</li>\n<li><p><strong><code>columnDataType</code></strong> (string): Data type of the column.</p>\n</li>\n<li><p><strong><code>filterType</code></strong> (string): Type of filter applicable (used in row-level policies).</p>\n</li>\n<li><p><strong><code>pii</code></strong> (boolean): Set to <code>true</code> if the field was tagged as PII.</p>\n</li>\n<li><p><strong><code>piiScanIgnore</code></strong> (boolean): Set to <code>true</code> if the field is ignored as PII in future scans.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","snapshots","catalog"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"56cce639-05b3-4395-8be7-038a6385c2e4","name":"Get PII Catalog - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/snapshots/catalog"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 02 Jan 2025 17:36:13 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"31676"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"7bbc-m8woW8NEdsTD3U84da5m/UCKAno\""}],"cookie":[],"responseTime":null,"body":"{\n    \"catalogs\": [\n        {\n            \"changeTime\": \"2025-01-02T13:01:17.608Z\",\n            \"userId\": \"3c6f7768-3f43-4d10-bee1-e38c55392049\",\n            \"userEmail\": \"david@acme.com\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"id\": \"67768e1d4f602dac04287b77\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"tree\": [\n                {\n                    \"schemaName\": \"\\\"demo_catalog\\\".\\\"aviation\\\"\",\n                    \"tables\": [\n                        {\n                            \"tableName\": \"\\\"pilots_seniority_employment\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"under_training\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"hire_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": true,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"seniority\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"gender\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"dob\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule_pilots_assignment\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_role\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule_assignment_metadata\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"dep\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"sta\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"rt_base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"take_off\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"touch_down\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block_off\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_length\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"std\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"eta\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pblk\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"arr\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"etd\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block_on\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pilots_qualification_data\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"training_qual_codes\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"primary_ac_type\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"main_base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"position\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"from_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"to_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"not_to_be_rostered\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"aircraft_list\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"delivery_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"release_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_owner\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_config\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"po_complement\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_number\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"duration_days\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"cm_complement\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"start_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"end_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_flights\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"st\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"dh\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"departure\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"arrival\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"sta\\\"\",\n                                    \"columnDataType\": \"time with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"trip_day\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"tp\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"std\\\"\",\n                                    \"columnDataType\": \"time with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"ground_time_min\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"ftl\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"route_departure\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"utc_arrival\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"utc_departure\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"local_departure\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"local_arrival\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_duration\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"day\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"route_arrival\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pilots_crew_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"activity_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"position\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"activity_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_number\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"start_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"end_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n                    \"tables\": [\n                        {\n                            \"tableName\": \"\\\"accounts\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"account_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"holder_first_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": true,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"holder_last_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": true,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"branch_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"holder_date_of_birth\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": true,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"address_city\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": true,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"address_country_iso3\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"is_business\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"income\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"bank_branches\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"branch_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"branch_city\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"branch_country_iso3\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"branch_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"parent_bank\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"transactions\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"account_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"processing_branch_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"balance\\\"\",\n                                    \"columnDataType\": \"double precision\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"transaction_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"transaction_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"amount\\\"\",\n                                    \"columnDataType\": \"double precision\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"deposit_or_withdrawal\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"place_of_business\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_2\\\"\",\n                    \"tables\": [\n                        {\n                            \"tableName\": \"\\\"airplane_allocations\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"landing_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"mission_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_number\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"airplane_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"origin_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"destination_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"airplane_static_info\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"max_distance_km\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"per_hour_cost\\\"\",\n                                    \"columnDataType\": \"double precision\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"model\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"capacity\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"req_fa_count\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"req_pilots_count\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"crew_static_info\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"role\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"rest_time_min\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"route_static_details\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"destination_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"destination_min_ground_min\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"departure_time\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"landing_time\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_distance_km\\\"\",\n                                    \"columnDataType\": \"double precision\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_number\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"origin_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"destination_city\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"origin_city\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"day\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_time_min\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"crew_allocations\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"crew_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"origin_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"destination_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"landing_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"mission_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_number\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            \"changeTime\": \"2025-01-02T12:44:42.883Z\",\n            \"userId\": \"3c6f7768-3f43-4d10-bee1-e38c55392049\",\n            \"userEmail\": \"rina.galperin@pvml.com\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"id\": \"67768a3a4f602dac04287b75\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"tree\": [\n                {\n                    \"schemaName\": \"\\\"demo_catalog\\\".\\\"aviation\\\"\",\n                    \"tables\": [\n                        {\n                            \"tableName\": \"\\\"pilots_seniority_employment\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"under_training\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"hire_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": true,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"seniority\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"gender\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"dob\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule_pilots_assignment\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_role\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule_assignment_metadata\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"dep\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"sta\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"rt_base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"take_off\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"touch_down\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block_off\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_length\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"std\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"eta\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pblk\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"arr\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"etd\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block_on\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pilots_qualification_data\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"training_qual_codes\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"primary_ac_type\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"main_base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"position\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"from_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"to_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"not_to_be_rostered\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"aircraft_list\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"delivery_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"release_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_owner\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_config\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"po_complement\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_number\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"duration_days\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"cm_complement\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"start_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"end_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_flights\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"st\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"dh\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"departure\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"arrival\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"sta\\\"\",\n                                    \"columnDataType\": \"time with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"trip_day\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"tp\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"std\\\"\",\n                                    \"columnDataType\": \"time with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"ground_time_min\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"ftl\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"route_departure\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"utc_arrival\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"utc_departure\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"local_departure\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"local_arrival\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_duration\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"day\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"route_arrival\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pilots_crew_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"activity_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"position\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"activity_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_number\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"start_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"end_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n                    \"tables\": [\n                        {\n                            \"tableName\": \"\\\"accounts\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"account_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"holder_first_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"holder_last_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"branch_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"holder_date_of_birth\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"address_city\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"address_country_iso3\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"is_business\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"income\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"bank_branches\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"branch_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"branch_city\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"branch_country_iso3\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"branch_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"parent_bank\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"transactions\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"account_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"processing_branch_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"balance\\\"\",\n                                    \"columnDataType\": \"double precision\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"transaction_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"transaction_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"amount\\\"\",\n                                    \"columnDataType\": \"double precision\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"deposit_or_withdrawal\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"place_of_business\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_2\\\"\",\n                    \"tables\": [\n                        {\n                            \"tableName\": \"\\\"airplane_allocations\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"landing_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"mission_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_number\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"airplane_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"origin_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"destination_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"airplane_static_info\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"max_distance_km\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"per_hour_cost\\\"\",\n                                    \"columnDataType\": \"double precision\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"model\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"capacity\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"req_fa_count\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"req_pilots_count\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"crew_static_info\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"role\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"rest_time_min\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"route_static_details\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"destination_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"destination_min_ground_min\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"departure_time\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"landing_time\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_distance_km\\\"\",\n                                    \"columnDataType\": \"double precision\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_number\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"origin_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"destination_city\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"origin_city\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"day\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_time_min\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"crew_allocations\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"crew_id\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"origin_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"destination_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"landing_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp without time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"mission_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_number\\\"\",\n                                    \"columnDataType\": \"bigint\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    \"pagination\": null\n}"}],"_postman_id":"863aec3f-4b4e-49b1-8e0b-579a29cdda27"},{"name":"Add to Catalog","id":"c33d0f2c-d9b5-43a9-bd83-e11e6707f550","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"tree\": [\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"aviation\\\"\",\n            \"tables\": [\n                {\n                    \"tableName\": \"\\\"pilots_seniority_employment\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"under_training\\\"\",\n                            \"columnDataType\": \"boolean\",\n                            \"filterType\": \"boolean\"\n                        },\n                        {\n                            \"columnName\": \"\\\"hire_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"seniority\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"gender\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"dob\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\",\n                            \"pii\": true\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"flight_schedule_pilots_assignment\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_role\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"flight_schedule_assignment_metadata\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"dep\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"sta\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"rt_base\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"take_off\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"touch_down\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"block_off\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"block\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_length\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"reg\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"std\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"eta\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pblk\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"arr\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"etd\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"block_on\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pilots_qualification_data\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"pilot_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"training_qual_codes\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"primary_ac_type\\\"\",\n                            \"columnDataType\": \"boolean\",\n                            \"filterType\": \"boolean\"\n                        },\n                        {\n                            \"columnName\": \"\\\"name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"main_base\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"position\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"from_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"to_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"not_to_be_rostered\\\"\",\n                            \"columnDataType\": \"boolean\",\n                            \"filterType\": \"boolean\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"aircraft_list\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"reg\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"delivery_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"release_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_owner\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pairing_config\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"po_complement\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_number\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"duration_days\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"cm_complement\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pairing_schedule\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"start_datetime\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"end_datetime\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pairing_flights\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"st\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"dh\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"departure\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"arrival\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"sta\\\"\",\n                            \"columnDataType\": \"time with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"trip_day\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"tp\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"std\\\"\",\n                            \"columnDataType\": \"time with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"ground_time_min\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"ftl\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"flight_schedule\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"route_departure\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"utc_arrival\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"utc_departure\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"local_departure\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"local_arrival\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_duration\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"duration of the flight in minutes\"\n                        },\n                        {\n                            \"columnName\": \"\\\"reg\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"day\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"route_arrival\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pilots_crew_schedule\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"activity_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"base\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"position\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"activity_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_number\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"start_datetime\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"end_datetime\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                }\n            ],\n            \"schemaDescription\": \"This schema contains aviation and flights data\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tables\": [\n                {\n                    \"tableName\": \"\\\"accounts\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"account_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"holder_first_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"holder_last_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"branch_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"the branch where the account was opened and the funds are stored\"\n                        },\n                        {\n                            \"columnName\": \"\\\"holder_date_of_birth\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"address_city\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"address_country_iso3\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"is_business\\\"\",\n                            \"columnDataType\": \"boolean\",\n                            \"filterType\": \"boolean\",\n                            \"columnDescription\": \"boolean value that identifies business accounts\"\n                        },\n                        {\n                            \"columnName\": \"\\\"income\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"annual income of the account\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"bank_branches\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"branch_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"unique id of the branch\"\n                        },\n                        {\n                            \"columnName\": \"\\\"branch_city\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"city where the branch is located\"\n                        },\n                        {\n                            \"columnName\": \"\\\"branch_country_iso3\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"a three-letter code that uniquely identifies a country (e.g., USA, GBR, IND)\"\n                        },\n                        {\n                            \"columnName\": \"\\\"branch_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"unique name of the branch\"\n                        },\n                        {\n                            \"columnName\": \"\\\"parent_bank\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"global bank name (can span multiple countries)\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"transactions\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"account_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"processing_branch_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"balance\\\"\",\n                            \"columnDataType\": \"double precision\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"the overall account balance after the transaction is concluded\"\n                        },\n                        {\n                            \"columnName\": \"\\\"transaction_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"transaction_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\"\n                        },\n                        {\n                            \"columnName\": \"\\\"amount\\\"\",\n                            \"columnDataType\": \"double precision\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"the transaction amount\"\n                        },\n                        {\n                            \"columnName\": \"\\\"deposit_or_withdrawal\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"withdrawal reduces the balance in account. deposit increases, deposits happen at a bank.\"\n                        },\n                        {\n                            \"columnName\": \"\\\"place_of_business\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"the location name where the transaction took place, deposit happen only in bank branchs\"\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_2\\\"\",\n            \"tables\": [\n                {\n                    \"tableName\": \"\\\"airplane_allocations\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\",\n                            \"columnDescription\": \"The date and time when the flight is scheduled to departure\"\n                        },\n                        {\n                            \"columnName\": \"\\\"landing_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\",\n                            \"columnDescription\": \"The date and time when the flight is scheduled to arrive\"\n                        },\n                        {\n                            \"columnName\": \"\\\"mission_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"Unique identifier for each flight, mission 000 is maintenance\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_number\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The assigned flight number\"\n                        },\n                        {\n                            \"columnName\": \"\\\"airplane_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for each airplane\"\n                        },\n                        {\n                            \"columnName\": \"\\\"origin_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code representing the origin airport of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"destination_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code representing the destination airport of the flight\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"airplane_static_info\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"max_distance_km\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"per_hour_cost\\\"\",\n                            \"columnDataType\": \"double precision\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The cost per hour of operating the airplane\"\n                        },\n                        {\n                            \"columnName\": \"\\\"id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for each airplane\"\n                        },\n                        {\n                            \"columnName\": \"\\\"model\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"capacity\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The maximum number of passengers that the airplane can accommodate\"\n                        },\n                        {\n                            \"columnName\": \"\\\"req_fa_count\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The number of flight attendants required for the airplane\"\n                        },\n                        {\n                            \"columnName\": \"\\\"req_pilots_count\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The number of pilots required for the airplane\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"crew_static_info\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for each crew member\"\n                        },\n                        {\n                            \"columnName\": \"\\\"role\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The role of the crew member possible roles: 'pilot' and 'flight-attendant'\"\n                        },\n                        {\n                            \"columnName\": \"\\\"rest_time_min\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The minimum amount of rest time in minutes that the crew member requires\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"route_static_details\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"destination_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code of the airport to which the flight arrives\"\n                        },\n                        {\n                            \"columnName\": \"\\\"destination_min_ground_min\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"departure_time\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The time (24 hour format) representing the scheduled departure time of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"landing_time\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The time (24 hour format) representing the scheduled landing time of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_distance_km\\\"\",\n                            \"columnDataType\": \"double precision\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The flight distance in kilometers between the origin and destination\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_number\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for this route, flight number represents the route, the day and the time it does not represent the date and if a mission was scheduled\"\n                        },\n                        {\n                            \"columnName\": \"\\\"origin_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code of the airport from which the flight departs\"\n                        },\n                        {\n                            \"columnName\": \"\\\"destination_city\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The city to which the flight arrives\"\n                        },\n                        {\n                            \"columnName\": \"\\\"origin_city\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The city from which the flight departs\"\n                        },\n                        {\n                            \"columnName\": \"\\\"day\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The day of the week on which the flight is scheduled (SUN, MON .. )\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_time_min\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The duration of the flight in minutes\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"crew_allocations\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"crew_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for each crew member\"\n                        },\n                        {\n                            \"columnName\": \"\\\"origin_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code representing the origin airport of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"destination_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code representing the destination airport of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\",\n                            \"columnDescription\": \"The date and time when the flight is scheduled to departure\"\n                        },\n                        {\n                            \"columnName\": \"\\\"landing_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\",\n                            \"columnDescription\": \"The date and time when the flight is scheduled to arrival\"\n                        },\n                        {\n                            \"columnName\": \"\\\"mission_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"Unique identifier for each flight, mission 000 is maintenance\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_number\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The assigned flight number\"\n                        }\n                    ]\n                }\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/snapshots/catalog","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","snapshots","catalog"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"28fcc384-11ab-4462-9046-ceb2cbf40a11","name":"Add to Catalog - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"tree\": [\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"aviation\\\"\",\n            \"tables\": [\n                {\n                    \"tableName\": \"\\\"pilots_seniority_employment\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"under_training\\\"\",\n                            \"columnDataType\": \"boolean\",\n                            \"filterType\": \"boolean\"\n                        },\n                        {\n                            \"columnName\": \"\\\"hire_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"seniority\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"gender\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"dob\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"flight_schedule_pilots_assignment\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_role\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"flight_schedule_assignment_metadata\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"dep\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"sta\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"rt_base\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"take_off\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"touch_down\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"block_off\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"block\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_length\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"reg\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"std\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"eta\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pblk\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"arr\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"etd\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"block_on\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pilots_qualification_data\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"pilot_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"training_qual_codes\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"primary_ac_type\\\"\",\n                            \"columnDataType\": \"boolean\",\n                            \"filterType\": \"boolean\"\n                        },\n                        {\n                            \"columnName\": \"\\\"name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"main_base\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"position\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"from_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"to_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"not_to_be_rostered\\\"\",\n                            \"columnDataType\": \"boolean\",\n                            \"filterType\": \"boolean\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"aircraft_list\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"reg\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"delivery_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"release_date\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_owner\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pairing_config\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"po_complement\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_number\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"duration_days\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"cm_complement\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pairing_schedule\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"start_datetime\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"end_datetime\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pairing_flights\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"st\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"dh\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"departure\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"arrival\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"sta\\\"\",\n                            \"columnDataType\": \"time with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"trip_day\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"tp\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"std\\\"\",\n                            \"columnDataType\": \"time with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"ground_time_min\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"ftl\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"flight_schedule\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"route_departure\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"utc_arrival\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"utc_departure\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"local_departure\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"local_arrival\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_duration\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"duration of the flight in minutes\"\n                        },\n                        {\n                            \"columnName\": \"\\\"reg\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"day\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"route_arrival\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"pilots_crew_schedule\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"activity_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"base\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"position\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pilot_id\\\"\",\n                            \"columnDataType\": \"integer\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"activity_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"pairing_number\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"aircraft_type\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"start_datetime\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"end_datetime\\\"\",\n                            \"columnDataType\": \"timestamp with time zone\",\n                            \"filterType\": \"text\"\n                        }\n                    ]\n                }\n            ],\n            \"schemaDescription\": \"This schema contains aviation and flights data\"\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n            \"tables\": [\n                {\n                    \"tableName\": \"\\\"accounts\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"account_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"holder_first_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"holder_last_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"branch_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"the branch where the account was opened and the funds are stored\"\n                        },\n                        {\n                            \"columnName\": \"\\\"holder_date_of_birth\\\"\",\n                            \"columnDataType\": \"date\",\n                            \"filterType\": \"date\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"address_city\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"pii\": true\n                        },\n                        {\n                            \"columnName\": \"\\\"address_country_iso3\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"is_business\\\"\",\n                            \"columnDataType\": \"boolean\",\n                            \"filterType\": \"boolean\",\n                            \"columnDescription\": \"boolean value that identifies business accounts\"\n                        },\n                        {\n                            \"columnName\": \"\\\"income\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"annual income of the account\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"bank_branches\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"branch_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"unique id of the branch\"\n                        },\n                        {\n                            \"columnName\": \"\\\"branch_city\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"city where the branch is located\"\n                        },\n                        {\n                            \"columnName\": \"\\\"branch_country_iso3\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"a three-letter code that uniquely identifies a country (e.g., USA, GBR, IND)\"\n                        },\n                        {\n                            \"columnName\": \"\\\"branch_name\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"unique name of the branch\"\n                        },\n                        {\n                            \"columnName\": \"\\\"parent_bank\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"global bank name (can span multiple countries)\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"transactions\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"account_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"processing_branch_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"balance\\\"\",\n                            \"columnDataType\": \"double precision\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"the overall account balance after the transaction is concluded\"\n                        },\n                        {\n                            \"columnName\": \"\\\"transaction_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"transaction_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\"\n                        },\n                        {\n                            \"columnName\": \"\\\"amount\\\"\",\n                            \"columnDataType\": \"double precision\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"the transaction amount\"\n                        },\n                        {\n                            \"columnName\": \"\\\"deposit_or_withdrawal\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"withdrawal reduces the balance in account. deposit increases, deposits happen at a bank.\"\n                        },\n                        {\n                            \"columnName\": \"\\\"place_of_business\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"the location name where the transaction took place, deposit happen only in bank branchs\"\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_2\\\"\",\n            \"tables\": [\n                {\n                    \"tableName\": \"\\\"airplane_allocations\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\",\n                            \"columnDescription\": \"The date and time when the flight is scheduled to departure\"\n                        },\n                        {\n                            \"columnName\": \"\\\"landing_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\",\n                            \"columnDescription\": \"The date and time when the flight is scheduled to arrive\"\n                        },\n                        {\n                            \"columnName\": \"\\\"mission_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"Unique identifier for each flight, mission 000 is maintenance\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_number\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The assigned flight number\"\n                        },\n                        {\n                            \"columnName\": \"\\\"airplane_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for each airplane\"\n                        },\n                        {\n                            \"columnName\": \"\\\"origin_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code representing the origin airport of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"destination_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code representing the destination airport of the flight\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"airplane_static_info\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"max_distance_km\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"per_hour_cost\\\"\",\n                            \"columnDataType\": \"double precision\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The cost per hour of operating the airplane\"\n                        },\n                        {\n                            \"columnName\": \"\\\"id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for each airplane\"\n                        },\n                        {\n                            \"columnName\": \"\\\"model\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\"\n                        },\n                        {\n                            \"columnName\": \"\\\"capacity\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The maximum number of passengers that the airplane can accommodate\"\n                        },\n                        {\n                            \"columnName\": \"\\\"req_fa_count\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The number of flight attendants required for the airplane\"\n                        },\n                        {\n                            \"columnName\": \"\\\"req_pilots_count\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The number of pilots required for the airplane\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"crew_static_info\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for each crew member\"\n                        },\n                        {\n                            \"columnName\": \"\\\"role\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The role of the crew member possible roles: 'pilot' and 'flight-attendant'\"\n                        },\n                        {\n                            \"columnName\": \"\\\"rest_time_min\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The minimum amount of rest time in minutes that the crew member requires\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"route_static_details\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"destination_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code of the airport to which the flight arrives\"\n                        },\n                        {\n                            \"columnName\": \"\\\"destination_min_ground_min\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\"\n                        },\n                        {\n                            \"columnName\": \"\\\"departure_time\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The time (24 hour format) representing the scheduled departure time of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"landing_time\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The time (24 hour format) representing the scheduled landing time of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_distance_km\\\"\",\n                            \"columnDataType\": \"double precision\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The flight distance in kilometers between the origin and destination\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_number\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for this route, flight number represents the route, the day and the time it does not represent the date and if a mission was scheduled\"\n                        },\n                        {\n                            \"columnName\": \"\\\"origin_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code of the airport from which the flight departs\"\n                        },\n                        {\n                            \"columnName\": \"\\\"destination_city\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The city to which the flight arrives\"\n                        },\n                        {\n                            \"columnName\": \"\\\"origin_city\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The city from which the flight departs\"\n                        },\n                        {\n                            \"columnName\": \"\\\"day\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The day of the week on which the flight is scheduled (SUN, MON .. )\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_time_min\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The duration of the flight in minutes\"\n                        }\n                    ]\n                },\n                {\n                    \"tableName\": \"\\\"crew_allocations\\\"\",\n                    \"columns\": [\n                        {\n                            \"columnName\": \"\\\"crew_id\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"Unique identifier for each crew member\"\n                        },\n                        {\n                            \"columnName\": \"\\\"origin_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code representing the origin airport of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"destination_code\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"The code representing the destination airport of the flight\"\n                        },\n                        {\n                            \"columnName\": \"\\\"takeoff_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\",\n                            \"columnDescription\": \"The date and time when the flight is scheduled to departure\"\n                        },\n                        {\n                            \"columnName\": \"\\\"landing_datetime\\\"\",\n                            \"columnDataType\": \"timestamp without time zone\",\n                            \"filterType\": \"timestamp\",\n                            \"columnDescription\": \"The date and time when the flight is scheduled to arrival\"\n                        },\n                        {\n                            \"columnName\": \"\\\"mission_id\\\"\",\n                            \"columnDataType\": \"character varying\",\n                            \"filterType\": \"text\",\n                            \"columnDescription\": \"Unique identifier for each flight, mission 000 is maintenance\"\n                        },\n                        {\n                            \"columnName\": \"\\\"flight_number\\\"\",\n                            \"columnDataType\": \"bigint\",\n                            \"filterType\": \"numeric\",\n                            \"columnDescription\": \"The assigned flight number\"\n                        }\n                    ]\n                }\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/snapshots/catalog"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 05 Jan 2025 10:35:44 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"70357"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"112d5-RdWvIiLko+IRFJ/KIKgPUYl8vsw\""}],"cookie":[],"responseTime":null,"body":"{\n    \"catalogs\": [\n        {\n            \"changeTime\": \"2025-01-05T10:35:44.621Z\",\n            \"userId\": \"3c6f7768-3f43-4d10-bee1-e38c55392049\",\n            \"userEmail\": \"david@acme.com\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"id\": \"677a60804f602dac04287b81\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"tree\": [\n                {\n                    \"schemaName\": \"\\\"demo_catalog\\\".\\\"aviation\\\"\",\n                    \"tables\": [\n                        {\n                            \"tableName\": \"\\\"pilots_seniority_employment\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"under_training\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"hire_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": true,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"seniority\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"gender\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"dob\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule_pilots_assignment\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_role\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule_assignment_metadata\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"dep\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"sta\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"rt_base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"take_off\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"touch_down\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block_off\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_length\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_assigment_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"std\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"eta\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pblk\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"arr\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"etd\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"block_on\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pilots_qualification_data\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"training_qual_codes\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"primary_ac_type\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"main_base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"position\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"from_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"to_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"not_to_be_rostered\\\"\",\n                                    \"columnDataType\": \"boolean\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"aircraft_list\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_name\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"delivery_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"release_date\\\"\",\n                                    \"columnDataType\": \"date\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_owner\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_config\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"po_complement\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_number\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"duration_days\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"cm_complement\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"start_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"end_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pairing_flights\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"st\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"dh\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_id\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"departure\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"arrival\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"sta\\\"\",\n                                    \"columnDataType\": \"time with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"trip_day\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"tp\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"std\\\"\",\n                                    \"columnDataType\": \"time with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"ground_time_min\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"ftl\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"flight_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"route_departure\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"utc_arrival\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"utc_departure\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"local_departure\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"local_arrival\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"flight_duration\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"reg\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"day\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"route_arrival\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        },\n                        {\n                            \"tableName\": \"\\\"pilots_crew_schedule\\\"\",\n                            \"columns\": [\n                                {\n                                    \"columnName\": \"\\\"activity_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"base\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"position\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pilot_id\\\"\",\n                                    \"columnDataType\": \"integer\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"activity_code\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"pairing_number\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"aircraft_type\\\"\",\n                                    \"columnDataType\": \"character varying\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"start_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                },\n                                {\n                                    \"columnName\": \"\\\"end_datetime\\\"\",\n                                    \"columnDataType\": \"timestamp with time zone\",\n                                    \"pii\": false,\n                                    \"piiScanIgnore\": false\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    \"pagination\": null\n}"}],"_postman_id":"c33d0f2c-d9b5-43a9-bd83-e11e6707f550"}],"id":"ead9614e-9ce0-4392-820f-df39ccbce3e8","description":"<p>💡 <strong>What is PII?</strong></p>\n<p><strong>PII</strong> stands for <strong>Personally Identifiable Information</strong>. It refers to any data that can be used to identify a specific individual, for exmaple:</p>\n<ul>\n<li><p>Full name</p>\n</li>\n<li><p>Phone number</p>\n</li>\n<li><p>Social security number</p>\n</li>\n<li><p>Creadit card or bank account number</p>\n</li>\n</ul>\n<p>By tagging fields as PII, organizations can easily identify protected data, enforce stricter access controls, and tailor policies to restrict access based on user roles, responsibilities, and business use cases.</p>\n<p>This approach not only supports compliance with privacy regulations but also minimizes exposure of sensitive data, reduces breach risks, and ensures that only authorized users or systems have access to critical information.</p>\n<p>💡 <strong>How does the PII Catalog Work?</strong></p>\n<ol>\n<li><p>Begin by either tagging the schemas structure manually or performing an AI-automated scan</p>\n</li>\n<li><p>Resolve conflicts between the scan and the current version by accepting the relevant suggestions from the scan</p>\n</li>\n<li><p>Tagging fields as ignored means you want to exclude the AI suggestions for this field (either as PII or as non-PII) - in practice, this means that performing \"merge\" will ignore the scan's tag for these fields.</p>\n</li>\n</ol>\n<p>💡 <strong>Merge vs. Replace</strong></p>\n<ul>\n<li><p>Merge takes everything from the scan over the current version, while keeping the extra tags in current version</p>\n</li>\n<li><p>Replace takes the scan as-is over the current version</p>\n</li>\n</ul>\n","_postman_id":"ead9614e-9ce0-4392-820f-df39ccbce3e8","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}}],"id":"6b688da9-612a-4d10-b35b-3139c2cb7a69","description":"<img src=\"https://pvml.com/wp-content/uploads/2023/12/img-product-hero.svg\" />\n\n<p>Data sources can be connected to your PVML workspace using connection string properties, without the need to move or duplicate the data. Once the data source is connected, a snapshot of the data schema (the structure of tables and columns) will be pulled.</p>\n<p>You can choose between:</p>\n<ol>\n<li><p><strong>Schema-only snapshot:</strong> Scans datasource structure without collecting data samples; AI accuracy may be impacted.</p>\n</li>\n<li><p><strong>Standard snapshot:</strong> Captures full datasource structure with samples to improve AI insights and enable Differential Privacy controls.</p>\n</li>\n</ol>\n<img src=\"https://content.pstmn.io/c512474e-33b2-43ab-af40-9fee2a0db366/U2NyZWVuc2hvdCAyMDI2LTAyLTE4IGF0IDE2LjE1LjIyLnBuZw==\" alt=\"Connect%20a%20Datasource\" />\n\n<p>After the schema snapshot is complete, you can define relations, identifiers, and more.</p>\n","_postman_id":"6b688da9-612a-4d10-b35b-3139c2cb7a69","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Virtual DBs","item":[{"name":"Create Virtual DB","id":"f22aaf32-1a3f-45c3-bacd-3de67046b33a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\": \"my view\",\n    \"datasourceId\":\"{{datasource_id}}\"\n}","type":"text"},{"key":"image","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["L2nFgwfNj/FAVICON.png"],"src":"postman-cloud:///1efb2ef0-c378-4df0-a88b-deece4b74912"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views","description":"<p>This endpoint allows to create a View in a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>Form data containing:</p>\n<ul>\n<li><p><strong><code>data</code></strong> (text): Json with the following properties:</p>\n<ul>\n<li><p><strong><code>name</code></strong>(string): The name of the new view.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong>(string): The unique id of the datasource for this view.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>image</code></strong> (File): The image for the view.</p>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <code>view</code> object in json format that includes the details of the newly created view:</p>\n<ul>\n<li><p><strong><code>viewId</code></strong> (string): Unique identifier for the view.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the datasource (e.g., Postgres).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace where the view is located.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Descriptive name of the view.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Additional information or context about the view.</p>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of view creation.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the most recent modification to the view.</p>\n</li>\n<li><p><strong><code>permissionsLastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the last update to policies in the view.</p>\n</li>\n<li><p><strong><code>image</code></strong> (string): Encoded image representation or thumbnail of the view.</p>\n</li>\n<li><p><strong><code>permissionsIds</code></strong> (array or null): List of policies' IDs associated with the view, if any.</p>\n</li>\n<li><p><strong><code>entities</code></strong> (array): List of related users or groups associated with the view.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"c233756c-faa6-460f-b315-0fbc64375593","name":"Create View - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\": \"my view\",\n    \"datasourceId\":\"{{datasource_id}}\"\n}","type":"text"},{"key":"image","type":"file","src":"L2nFgwfNj/FAVICON.png"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 02 Dec 2024 10:21:45 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"27377"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"6af1-KHTZyWUDrnlZZFsMhGLvBIqTvLU\""}],"cookie":[],"responseTime":null,"body":"{\n    \"view\": {\n        \"viewId\": \"7e8e573b-e55d-47b6-8839-f21ffd9431d3\",\n        \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n        \"datasourceType\": \"Postgres\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"name\": \"my view\",\n        \"description\": \"\",\n        \"createdAt\": 1733134905449,\n        \"lastModifiedAt\": 1733134905449,\n        \"permissionsLastModifiedAt\": 1733134905449,\n        \"image\": \"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\",\n        \"permissionsIds\": null,\n        \"entities\": []\n    }\n}"}],"_postman_id":"f22aaf32-1a3f-45c3-bacd-3de67046b33a"},{"name":"Get Virtual DB","id":"72be6a2c-3cc3-42f4-948b-4788692ab959","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}?image=false","description":"<p>This endpoint allows to get a specific view in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the new view.</p>\n</li>\n<li><p><strong><code>image</code></strong> (boolean): Specifies whether to include image data in the response.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><strong><code>view</code></strong> json containing:</p>\n<ul>\n<li><p><strong><code>viewId</code></strong> (string): Unique identifier for the view.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the datasource (e.g., Postgres).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace where the view is located.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Descriptive name of the view.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Additional information or context about the view.</p>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of view creation.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the most recent modification to the view.</p>\n</li>\n<li><p><strong><code>permissionsLastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the last update to policies in the view.</p>\n</li>\n<li><p><strong><code>image</code></strong> (string): Encoded image representation or thumbnail of the view.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}"],"host":["platform","pvml","com"],"query":[{"key":"image","value":"false"}],"variable":[]}},"response":[{"id":"be2ae7a5-4be1-46de-bc92-006226a750b5","name":"Get View - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}?image=false","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}"],"query":[{"key":"image","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 04 Dec 2024 13:32:57 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"387"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"183-MdVvUUvWVPLx2PKwq+/1Fdpg1Xw\""}],"cookie":[],"responseTime":null,"body":"{\n    \"view\": {\n        \"viewId\": \"b1e0317b-0e57-4a39-b8b1-ef701743e6d7\",\n        \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n        \"datasourceType\": \"Postgres\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"name\": \"Transactions Direct\",\n        \"description\": \"Direct Data Access\",\n        \"createdAt\": 1724758363464,\n        \"lastModifiedAt\": 1733219473150,\n        \"permissionsLastModifiedAt\": 1733219473149,\n        \"image\": null\n    }\n}"}],"_postman_id":"72be6a2c-3cc3-42f4-948b-4788692ab959"},{"name":"Get Virtual DB Users","id":"87e27dd5-ebd0-42ac-a129-fd0a743f1ab5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/entities","description":"<p>This endpoint allows to get the users of a specific view in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<ul>\n<li><p><strong><code>entities</code></strong> (array):</p>\n<ul>\n<li><p><strong><code>type</code></strong> (string): The type of entity (group / user. Note: a service account is considered a user in this context).</p>\n</li>\n<li><p><strong><code>group</code></strong> (object or null): Contains group-related details if the entity is of type <code>group</code>.</p>\n<ul>\n<li><p><strong><code>groupId</code></strong> (string): Unique identifier for the group.</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the group belongs.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the group.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Description or additional details about the group.</p>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, ISO 8601 format): Timestamp of group creation.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, ISO 8601 format): Timestamp of the last modification to the group.</p>\n</li>\n<li><p><strong><code>image</code></strong> (string): Encoded image representation of the group.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>user</code></strong> (object or null): Contains user-related details if the entity is of type <code>user</code>.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","entities"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"450d2838-adb1-41af-ac40-0bc6eeded5d0","name":"Get View Users - Empty - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/entities"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 09:54:25 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"15"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"f-jZO+EOOmT0VOGszwpErGu4jL2Yk\""}],"cookie":[],"responseTime":null,"body":"{\n    \"entities\": []\n}"},{"id":"ce72b0a2-aa09-4b69-87f3-7dec0f2cdf9e","name":"Get View Users - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/entities"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 09:59:14 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"272"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"110-s7dPCa2KHB9xCso4TghmCrKeYEI\""}],"cookie":[],"responseTime":null,"body":"{\n    \"entities\": [\n        {\n            \"type\": \"user\",\n            \"group\": null,\n            \"user\": {\n                \"id\": \"47dbe99e-a079-4f80-924b-a1aaf270be03\",\n                \"email\": \"chad@gmail.com\",\n                \"created_at\": \"0001-01-01T00:00:00Z\",\n                \"image\": \"https://lh3.googleusercontent.com/a/ACg8ocIzfim_UrzBihyNHGZbAHWhBYYumaVjZEYmuBAjYOtW8vCMnw=s96-c\"\n            }\n        }\n    ]\n}"}],"_postman_id":"87e27dd5-ebd0-42ac-a129-fd0a743f1ab5"},{"name":"Get Full Virtual DB","id":"bbf69202-fd91-449e-8693-49248ee4bba4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/full?image=false","description":"<p>This endpoint allows to get a full view in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the new view.</p>\n</li>\n<li><p><strong><code>/full</code></strong>: returns also <code>permissionsIds</code> and <code>entities</code> in the response.</p>\n</li>\n<li><p><strong><code>image</code></strong> (boolean): Specifies whether to include image data in the response.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<ul>\n<li><p><strong><code>viewId</code></strong> (string): Unique identifier for the view.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the datasource (e.g., Postgres).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace where the view is located.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Descriptive name of the view.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Additional information or context about the view.</p>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of view creation.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the most recent modification to the view.</p>\n</li>\n<li><p><strong><code>permissionsLastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the last update to policies in the view.</p>\n</li>\n<li><p><strong><code>image</code></strong> (string): Encoded image representation or thumbnail of the view (returned if <code>image</code> parameter is set to <code>true</code>).</p>\n</li>\n<li><p><strong><code>permissionsIds</code></strong> (array or null): List of policies' IDs associated with the view, if any.</p>\n</li>\n<li><p><strong><code>entities</code></strong> (array): List of related users or groups associated with the view.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","full"],"host":["platform","pvml","com"],"query":[{"key":"image","value":"false"}],"variable":[]}},"response":[{"id":"1939fbd3-d3db-48f5-a69b-20a812954fd0","name":"Get Full View - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/full?image=false","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","full"],"query":[{"key":"image","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 09:06:00 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"577"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"241-5E/0nKHkn4vvMkNuH3MAy/YgFGw\""}],"cookie":[],"responseTime":null,"body":"{\n    \"view\": {\n        \"viewId\": \"b1e0317b-0e57-4a39-b8b1-ef701743e6d7\",\n        \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n        \"datasourceType\": \"Postgres\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"name\": \"Transactions Direct\",\n        \"description\": \"Direct Data Access\",\n        \"createdAt\": 1724758363464,\n        \"lastModifiedAt\": 1733340064977,\n        \"permissionsLastModifiedAt\": 1733340064976,\n        \"image\": null,\n        \"permissionsIds\": [\n            \"699e6b30-0f61-4df6-a98b-f766f68606ae\",\n            \"e17837c6-26f9-4aef-92c5-d5ba09395113\"\n        ],\n        \"entities\": [\n            {\n                \"type\": \"group\",\n                \"groupId\": \"72aa551a-bca4-4a17-85d7-2b27abba2290\",\n                \"userId\": null\n            }\n        ]\n    }\n}"}],"_postman_id":"bbf69202-fd91-449e-8693-49248ee4bba4"},{"name":"Get Virtual DBs","id":"9384146d-c16e-4a0b-8dde-bea314671d63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views","description":"<p>This endpoint allows to get all the views in a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code>(string): The unique identifier of the workspace.</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <strong><code>views</code></strong> object in json format that includes an array of views with the following details on each view:</p>\n<ul>\n<li><p><strong><code>viewId</code></strong> (string): Unique identifier for the view.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the datasource (e.g., Postgres).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace where the view is located.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Descriptive name of the view.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Additional information or context about the view.</p>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of view creation.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the most recent modification to the view.</p>\n</li>\n<li><p><strong><code>permissionsLastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the last update to policies in the view.</p>\n</li>\n<li><p><strong><code>image</code></strong> (string): Encoded image representation or thumbnail of the view.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"320819bd-4817-4f2d-b7e1-8c364470d904","name":"Get Views - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 02 Dec 2024 10:21:22 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2923"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"b6b-f23VyV6tdh9+zAsz4D/S+HF3v40\""}],"cookie":[],"responseTime":null,"body":"{\n    \"views\": [\n        {\n            \"viewId\": \"b1e0317b-0e57-4a39-b8b1-ef701743e6d7\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceType\": \"Postgres\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"name\": \"Transactions Direct\",\n            \"description\": \"View for PVML x GPT integration demo\",\n            \"createdAt\": 1724758363464,\n            \"lastModifiedAt\": 1732187440871,\n            \"permissionsLastModifiedAt\": 1732187440870,\n            \"image\": null\n        },\n        {\n            \"viewId\": \"0c9d50e2-1c93-4b75-8d99-cac2baf40e6b\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceType\": \"Postgres\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"name\": \"Transactions DP\",\n            \"description\": \"Transactions DP\",\n            \"createdAt\": 1724758274438,\n            \"lastModifiedAt\": 1728285335236,\n            \"permissionsLastModifiedAt\": 1729515260332,\n            \"image\": null\n        },\n        {\n            \"viewId\": \"025c8034-8370-4864-a35e-99c003e7e499\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceType\": \"Postgres\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"name\": \"Transactions London\",\n            \"description\": \"Transactions London\",\n            \"createdAt\": 1724758415278,\n            \"lastModifiedAt\": 1725374227982,\n            \"permissionsLastModifiedAt\": 1729515260332,\n            \"image\": null\n        }\n    ]\n}"}],"_postman_id":"9384146d-c16e-4a0b-8dde-bea314671d63"},{"name":"Get Virtual DB with Descriptions","id":"4120ccc7-de39-4bae-8a0b-022535fb67ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/tree/descriptive","description":"<p>This endpoint allows to get a specific view with descriptions of the schema parts.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the new view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><strong><code>view</code></strong> json containing:</p>\n<ul>\n<li><p><strong><code>viewId</code></strong> (string): Unique identifier for the view.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the datasource (e.g., Postgres).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace where the view is located.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Descriptive name of the view.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Additional information or context about the view.</p>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of view creation.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the most recent modification to the view.</p>\n</li>\n<li><p><strong><code>permissionsLastModifiedAt</code></strong> (timestamp, Unix epoch in milliseconds): Timestamp of the last update to policies in the view.</p>\n</li>\n<li><p><strong><code>image</code></strong> (string): Encoded image representation or thumbnail of the view.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","tree","descriptive"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4120ccc7-de39-4bae-8a0b-022535fb67ce"},{"name":"Get Virtual DB Schemas","id":"14115766-0435-4cce-9300-05b4bf8e7144","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/tree/display","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","tree","display"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"0f304729-2d22-4c53-a07f-3f6eec13ffb2","name":"Get View Schemas - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/tree/display"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 09 Jan 2025 13:33:34 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2257"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"8d1-zjAXWma6t8ZOyL8K0ffKkriVZEA\""}],"cookie":[],"responseTime":null,"body":"{\n    \"tree\": {\n        \"datasourceName\": \"Transactions Direct\",\n        \"datasourceType\": \"Postgres\",\n        \"schemas\": [\n            {\n                \"schemaName\": \"\\\"demo_catalog\\\".\\\"schema_1\\\"\",\n                \"tables\": [\n                    {\n                        \"tableName\": \"\\\"accounts\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"account_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"holder_first_name\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"holder_last_name\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"branch_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"holder_date_of_birth\\\"\",\n                                \"columnDataType\": \"date\",\n                                \"filterType\": \"date\"\n                            },\n                            {\n                                \"columnName\": \"\\\"address_city\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"address_country_iso3\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"is_business\\\"\",\n                                \"columnDataType\": \"boolean\",\n                                \"filterType\": \"boolean\"\n                            },\n                            {\n                                \"columnName\": \"\\\"income\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"bank_branches\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"branch_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"branch_city\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"branch_country_iso3\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"branch_name\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"parent_bank\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            }\n                        ]\n                    },\n                    {\n                        \"tableName\": \"\\\"transactions\\\"\",\n                        \"columns\": [\n                            {\n                                \"columnName\": \"\\\"account_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"processing_branch_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"balance\\\"\",\n                                \"columnDataType\": \"double precision\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"transaction_id\\\"\",\n                                \"columnDataType\": \"bigint\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"transaction_datetime\\\"\",\n                                \"columnDataType\": \"timestamp without time zone\",\n                                \"filterType\": \"timestamp\"\n                            },\n                            {\n                                \"columnName\": \"\\\"amount\\\"\",\n                                \"columnDataType\": \"double precision\",\n                                \"filterType\": \"numeric\"\n                            },\n                            {\n                                \"columnName\": \"\\\"deposit_or_withdrawal\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            },\n                            {\n                                \"columnName\": \"\\\"place_of_business\\\"\",\n                                \"columnDataType\": \"character varying\",\n                                \"filterType\": \"text\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"14115766-0435-4cce-9300-05b4bf8e7144"},{"name":"Update Virtual DB Info","id":"1c6ec41c-3259-49ea-b30e-853fec9b3b00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\": \"new name 2\"\n}","type":"text"},{"key":"image","type":"file","src":"postman-cloud:///1efb2ef0-c378-4df0-a88b-deece4b74912"}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/info","description":"<p>This endpoint allows to update a specific view in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>Form data containing:</p>\n<ul>\n<li><p><code>data</code> (text): Json with the following properties:</p>\n<ul>\n<li><p><code>name</code>(string): The name of the new workspace.</p>\n</li>\n<li><p><code>description</code> (string): The description of the view.</p>\n</li>\n</ul>\n</li>\n<li><p><code>image</code> (File): The image for the workspace.</p>\n</li>\n</ul>\n<p>💡 <strong>Note:</strong> Omitting any of the fields listed above will <strong>override</strong> their previous values. For example, if the <code>image</code> field is not sent, the view's image will be reset to its default.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>Upon successful update, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","info"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"bdd43e75-1490-4d16-9d1c-6d46e094ffdd","name":"Update View - 200 Success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"data","value":"{\n    \"name\": \"new name\",\n    \"description\": \"new description\"\n}","type":"text"},{"key":"image","type":"file","value":null}]},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/info"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 09:33:55 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"1c6ec41c-3259-49ea-b30e-853fec9b3b00"},{"name":"Update Virtual DB Users","id":"0d482ff2-ec93-4781-9e46-415f6207a909","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"entitiesToAdd\": [\n         {\n        \"type\":\"user\",\n        \"userId\":\"d4c2d731-0498-4827-b691-84fd9f0c608e\"\n    }\n    ],\n    \"entitiesToRemove\":[]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/entities","description":"<p>This endpoint allows to update the users of a specific view in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><p><strong><code>entitiesToAdd</code></strong> <strong>(array):</strong> A list of entities to be added. Each entity in the array should include the following fields:</p>\n<ul>\n<li><p><strong><code>type</code></strong> <strong>(string):</strong> Specifies the type of entity to add (user / group).</p>\n</li>\n<li><p><strong><code>userId</code></strong> <strong>(string):</strong> The unique identifier of the user or group to add.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Note:</strong> This array can be left empty (<code>[]</code>) if no entities need to be added.</p>\n<ul>\n<li><strong><code>entitiesToRemove</code></strong> <strong>(array):</strong> A list of entities to be removed. Each entity would include the same fields as in <code>entitiesToAdd.</code> This array can also be left empty (<code>[]</code>) if no entities need to be removed.</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>Upon successful update, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","entities"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"b2f54f58-17c6-439d-8d62-ce6d58994fe6","name":"Update View Users - 200 Success","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"entitiesToAdd\": [\n         {\n        \"type\":\"user\",\n        \"userId\":\"d4c2d731-0498-4827-b691-84fd9f0c608e\"\n    }\n    ],\n    \"entitiesToRemove\":[]\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/entities"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 10:11:49 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"0d482ff2-ec93-4781-9e46-415f6207a909"},{"name":"Update Virtual DB Policies","id":"1fa7b360-b965-41ef-87bd-46de25a87282","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"permissionsToAdd\": [\"{{row_policy}}\"],\n    \"permissionsToRemove\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/permissions","description":"<p>This endpoint allows to update the policies of a specific view in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><p><strong><code>permissionsToAdd</code></strong> (array)<strong>:</strong> A list of policies to be added.</p>\n</li>\n<li><p><strong><code>permissionsToRemove</code></strong> (array)<strong>:</strong> A list of policies to be removed. Each policy would include the same fields as in <code>policiesToAdd.</code></p>\n</li>\n</ul>\n<p><strong>Note:</strong> Each array can be left empty (<code>[]</code>) if no policies need to be added or removed.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>Upon successful update, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","permissions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"ea47667b-1d4a-4b48-a526-9179d70fc38f","name":"Update View Policies - 200 Success","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"permissionsToAdd\": [\"{{row_policy}}\"],\n    \"permissionsToRemove\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/permissions"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 02 Jan 2025 13:27:42 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"1fa7b360-b965-41ef-87bd-46de25a87282"},{"name":"Delete Virtual DB","id":"cbb6c8a5-9ce4-4600-ac77-94ae6fc80a0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}","description":"<p>This endpoint allows to delete a specific view in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>Upon successful deletion, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"968fff37-3d83-44ea-af64-d745bd63d394","name":"Delete View - 200 Success","originalRequest":{"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 09:50:10 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"cbb6c8a5-9ce4-4600-ac77-94ae6fc80a0d"},{"name":"Execute Query on Virtual DB","id":"7addd090-e216-427e-b92f-afcb50f9603a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"query\":\"select 1 from demo_catalog.schema_1.accounts limit 1\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/execute","description":"<p>This endpoint allows to directly execute a query using a View.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><strong><code>query</code></strong> (string): the SQL query to execute.</li>\n</ul>\n<h3 id=\"response-body\">Response Body</h3>\n<p>The response represents a <strong>database query result</strong> in a tabular format:</p>\n<ul>\n<li><p><strong>Outer Array</strong>: Contains rows of the result set.</p>\n</li>\n<li><p><strong>First Inner Array</strong>: Represents the <strong>column</strong> <strong>headers</strong> (first row of the table).</p>\n</li>\n<li><p><strong>Subsequent Inner Arrays</strong>: Represent individual <strong>rows</strong> <strong>of data</strong> from the query result.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","execute"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"5cd49b80-7cbe-434d-affc-04246123eb77","name":"Execute Query - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"query\":\"select 1 from demo_catalog.schema_1.accounts limit 1\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/execute"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 02 Dec 2024 10:11:01 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"18"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"12-I6zubMbQ/LY/+0A/1OLvObes2ww\""}],"cookie":[],"responseTime":null,"body":"[\n    [\n        \"?column?\"\n    ],\n    [\n        1\n    ]\n]"},{"id":"53d17bed-a802-48fa-a788-77be09fff713","name":"Execute Query - 401 Unauthorized","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"query\":\"select 1 from demo_catalog.demo_schema.schema_1 limit 1\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/execute"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 02 Dec 2024 09:30:11 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"70"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"46-MPZG/dhI6G8n4d6g3XT6acrD2AY\""}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized User\",\n    \"code\": 2800,\n    \"reason\": \"Unauthorized User\"\n}"},{"id":"8fb2cea7-8da5-4068-aa8c-f68a5f1cc192","name":"Execute Query - 400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"query\":\"select 1 from demo_catalog.demo_schema.schema_1 limit 1\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/execute"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 02 Dec 2024 09:30:57 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"104"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"68-feMjOyc9ru1hN0ODOQIN0vqOb9c\""}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"invalid query syntax\",\n    \"code\": 2300,\n    \"reason\": \"relation \\\"demo_schema.schema_1\\\" does not exist\"\n}"}],"_postman_id":"7addd090-e216-427e-b92f-afcb50f9603a"},{"name":"Generate Secure Connection String","id":"a0c562d5-7ad3-493b-a8e6-4dc380217a05","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"expiryInDays\": 30\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/connection_string","description":"<p>This endpoint allows to generate a secure connection string (ODBC/JDBC) for a specific view.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>view_id</code></strong> (string): The unique identifier of the view.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>💡 <strong>Note:</strong> response body depends on the type of the datasource of the view since it simulates a connection string to that specific datasource.</p>\n<p>Example for databricks reponse:</p>\n<ul>\n<li><p><strong><code>hostname</code></strong> (string)<strong>:</strong> The server's hostname for the connection, specifying the endpoint to connect to.</p>\n</li>\n<li><p><strong><code>httpPath</code></strong> (string): The HTTP path for the connector, specifying the route on the server.</p>\n</li>\n<li><p><strong><code>accessToken</code></strong> (string): A unique token used to authenticate and authorize this connection. Ensure the token is kept secure, as it grants access to the specified resource.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","views","{{view_id}}","connection_string"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"325098d3-34ca-410d-b503-2bc330b62ee7","name":"Generate Secure Connection String - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"expiryInDays\": 30\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/views/{{view_id}}/connection_string"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2024 11:07:36 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"140"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"8c-fYQnnCTSTC5zFkvYN+liD6DDfdM\""}],"cookie":[],"responseTime":null,"body":"{\n    \"hostname\": \"connect.pvml.com\",\n    \"httpPath\": \"pvml/connector\",\n    \"accessToken\": \"botu43U8wAARmFTJXCS0GhTF3fi0JLWCIt5DRmVz2JGYT1xAcl9OVd3LENYalnqa\"\n}"}],"_postman_id":"a0c562d5-7ad3-493b-a8e6-4dc380217a05"}],"id":"8bcd80f9-8ee0-4c9a-9b73-7ee907ee7990","description":"<p>A virtual database contains a collection of data access policies that determine the scope of data that users can see and interact with, as well as the privacy controls applied to them.</p>\n<p>A virtual database has the following properties:</p>\n<ul>\n<li><p>Datasource</p>\n</li>\n<li><p>Users</p>\n</li>\n<li><p>Policies</p>\n</li>\n</ul>\n<p>Once a virtual database is set up, you can generate <strong>a secure connection string</strong> for it (JDBC/ODBC).</p>\n<p>This ensures that all data interactions are processed through PVML, with permissions enforced in real time.</p>\n<img src=\"https://content.pstmn.io/3ca4b39e-8431-4212-8c08-06f26835d319/QVBJIGltYWdlcy5naWY=\" alt=\"Generate%20a%20Secure%20Connection%20String%20for%20a%20virtual%20database%20(JDBC/ODBC).\" />\n\n<p>You can also use this virtual database in the <strong>PVML Notebook or Chat debug applications</strong>, attach it to a <strong>Bot</strong> (AI integration for RAG), or run SQL queries <strong>directly</strong> through it like any other database.</p>\n<h4 id=\"🕵🏻♂️-common-mistakes-when-configuring-a-virtual-database\">🕵🏻‍♂️ <strong>Common Mistakes When Configuring a V</strong>irtual Database**:**</h4>\n<ol>\n<li><p><strong>Forgetting to Attach a Column-Level Policy</strong>:<br /> A virtual database must have a column-level policy to be considered valid. Ensure this is set up.</p>\n</li>\n<li><p><strong>Not Adding Users</strong>:<br /> Even if you're the admin or owner of the workspace, or even if there's only one user or group in your workspace, you must explicitly add the users/groups to the virtual database.</p>\n</li>\n</ol>\n<p>#howto #bestpractice</p>\n","_postman_id":"8bcd80f9-8ee0-4c9a-9b73-7ee907ee7990","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Policies","item":[{"name":"Get Policies","id":"165c7440-54ad-4c0f-8a06-0a65f0eff43e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/permissions?type=data_privacy","description":"<p>This endpoint return all the different policies associated with a specific workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string, optional): Filters the permissions to a specific type. Options:</p>\n<ul>\n<li><p><strong>data_access</strong>: column policy</p>\n</li>\n<li><p><strong>data_filter</strong>: row policy</p>\n</li>\n<li><p><strong>data_privacy</strong>: Differential Privacy (DP) policy</p>\n</li>\n<li><p><strong>data_masking</strong>: dynamic masking policy</p>\n</li>\n<li><p><strong>data_validation</strong>: data validation policy</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><strong><code>permissions</code></strong>: Array of permission objects, each containing:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the permission.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the permission.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Description of the permission (can be empty).</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): Type of permission (e.g., <code>data_access</code>).</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier of the associated workspace.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON string detailing schema, table, and column-level access.</p>\n</li>\n<li><p><strong><code>createdAt</code></strong> (string): ISO 8601 timestamp of permission creation.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (string): ISO 8601 timestamp of last modification.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): ID of the data source.</p>\n</li>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the data source.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of data source (e.g., <code>Postgres</code>).</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","permissions"],"host":["platform","pvml","com"],"query":[{"key":"type","value":"data_privacy"}],"variable":[]}},"response":[{"id":"96d9253a-aacb-477e-9548-227a5b2f8e61","name":"Get Policies - column policies - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/permissions?enrich=true&type=data_access","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","permissions"],"query":[{"key":"enrich","value":"true"},{"key":"type","value":"data_access"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 04 Dec 2024 13:31:36 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"36293"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"8dc5-q9G2uQBtHPamem/FhNJLs7ritbI\""}],"cookie":[],"responseTime":null,"body":"{\n    \"permissions\": [\n        {\n            \"id\": \"dc4c9c44-a90e-41f4-819f-1fd14e5f70da\",\n            \"name\": \"Aviation schema access\",\n            \"description\": \"\",\n            \"type\": \"data_access\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"data\": \"[{\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"seniority\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"gender\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"dob\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"under_training\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"hire_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_pilots_assignment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_pilots_assignment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_role\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_pilots_assignment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_pilots_assignment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_assigment_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"dep\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"block\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"reg\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pblk\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"touch_down\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"etd\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"block_on\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"rt_base\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"take_off\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"arr\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"eta\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"block_off\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"sta\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"std\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight_length\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_assigment_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"position\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"to_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"training_qual_codes\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"primary_ac_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"from_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"main_base\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"not_to_be_rostered\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"delivery_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"release_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_owner\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"reg\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"cm_complement\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"po_complement\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_number\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"duration_days\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"end_datetime\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"start_datetime\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"arrival\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"trip_day\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"tp\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"dh\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"std\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"st\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"departure\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"sta\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"ground_time_min\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"ftl\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"utc_arrival\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight_duration\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"day\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"local_departure\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"reg\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"route_departure\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"local_arrival\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"utc_departure\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"route_arrival\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"position\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"end_datetime\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_number\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"base\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"activity_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"start_datetime\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"activity_code\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}]\",\n            \"createdAt\": \"2024-06-13T08:55:11.905796Z\",\n            \"lastModifiedAt\": \"2024-11-27T12:14:43.877564Z\",\n            \"viewId\": \"\",\n            \"viewName\": \"\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceName\": \"Transactions\",\n            \"datasourceType\": \"Postgres\"\n        },\n        {\n            \"id\": \"c58ff37f-e636-4743-b4ef-838ccbc274bc\",\n            \"name\": \"Aviation schema access copy\",\n            \"description\": \"\",\n            \"type\": \"data_access\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"data\": \"[{\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"seniority\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"gender\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"dob\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"under_training\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"hire_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_pilots_assignment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_pilots_assignment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_role\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_pilots_assignment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_pilots_assignment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_assigment_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"dep\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"block\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"reg\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pblk\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"touch_down\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"etd\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"block_on\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"rt_base\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"take_off\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"arr\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"eta\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"block_off\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"sta\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"std\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight_length\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule_assignment_metadata\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_assigment_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"position\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"to_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"training_qual_codes\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"primary_ac_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"from_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"main_base\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_qualification_data\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"not_to_be_rostered\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"delivery_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"release_date\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_owner\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"reg\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"aircraft_list\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"cm_complement\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"po_complement\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_number\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_config\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"duration_days\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"end_datetime\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"start_datetime\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"arrival\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"trip_day\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"tp\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"dh\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"std\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"st\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"departure\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"sta\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"ground_time_min\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"ftl\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pairing_flights\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"utc_arrival\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"flight_duration\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"day\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"local_departure\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"reg\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"route_departure\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"local_arrival\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"utc_departure\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"flight_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"route_arrival\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"position\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"end_datetime\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pairing_number\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"base\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"aircraft_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"activity_type\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"start_datetime\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_crew_schedule\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"activity_code\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}]\",\n            \"createdAt\": \"2024-12-02T11:19:04.674152Z\",\n            \"lastModifiedAt\": \"2024-12-02T11:19:04.674152Z\",\n            \"viewId\": \"\",\n            \"viewName\": \"\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceName\": \"Transactions\",\n            \"datasourceType\": \"Postgres\"\n        }\n    ]\n}"},{"id":"73b8e974-8d57-4ea5-920d-3a9e960750a6","name":"Get Policies - filter policies - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/permissions?enrich=true&type=data_filter","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","permissions"],"query":[{"key":"enrich","value":"true"},{"key":"type","value":"data_filter"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 01 Jan 2025 13:46:15 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1204"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"4b4-zYjsRzZX1Zl3wn+bYzQjfsWB0bg\""}],"cookie":[],"responseTime":null,"body":"{\n    \"permissions\": [\n        {\n            \"id\": \"1b8c9df3-e7ff-473f-bf9f-b328f8de8ca8\",\n            \"name\": \"databricks transactions london\",\n            \"description\": \"\",\n            \"type\": \"data_filter\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"data\": \"{\\\"filters\\\": [{\\\"basic\\\": {\\\"type\\\": \\\"string\\\", \\\"value\\\": \\\"London\\\", \\\"column\\\": \\\"`demo_catalog`.`schema_1`.`accounts`.`address_city`\\\", \\\"compOperator\\\": \\\"=\\\"}}]}\",\n            \"createdAt\": \"2024-09-02T09:33:34.242838Z\",\n            \"lastModifiedAt\": \"2024-09-03T15:38:51.71025Z\",\n            \"viewId\": \"\",\n            \"viewName\": \"\",\n            \"datasourceId\": \"5f8bc3f1-2405-4dcc-98a9-e55edca54b34\",\n            \"datasourceName\": \"databricks\",\n            \"datasourceType\": \"Databricks\"\n        },\n        {\n            \"id\": \"e17837c6-26f9-4aef-92c5-d5ba09395113\",\n            \"name\": \"London filter\",\n            \"description\": \"\",\n            \"type\": \"data_filter\",\n            \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n            \"data\": \"{\\\"filters\\\": [{\\\"basic\\\": {\\\"type\\\": \\\"character varying\\\", \\\"value\\\": \\\"London\\\", \\\"column\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\".\\\\\\\"accounts\\\\\\\".\\\\\\\"address_city\\\\\\\"\\\", \\\"compOperator\\\": \\\"=\\\"}}]}\",\n            \"createdAt\": \"2024-09-03T14:04:45.721108Z\",\n            \"lastModifiedAt\": \"2024-09-03T14:36:59.319539Z\",\n            \"viewId\": \"\",\n            \"viewName\": \"\",\n            \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n            \"datasourceName\": \"Transactions\",\n            \"datasourceType\": \"Postgres\"\n        }\n    ]\n}"}],"_postman_id":"165c7440-54ad-4c0f-8a06-0a65f0eff43e"},{"name":"Create Column Policy","id":"b3c3f511-05ff-4c7b-8c00-fdc1d2863bab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"transactions access test2\",\n    \"description\": \"access to transactions columns and tables\",\n    \"type\": \"data_access\",\n    \"data\": \"[{\\\"table\\\": \\\"*\\\", \\\"column\\\": \\\"*\\\", \\\"schema\\\": \\\"*\\\"}]\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions","description":"<p>This endpoint allows to create a column policy for a specific datasource, without explicitly choosing the structure (using \"*\" as a <em>select all</em> mechanism).</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong>(string): The unique id of the datasource for this policy.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>Form data containing:</p>\n<ul>\n<li><p><strong><code>name</code></strong>(string): The name of the new policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): The name of the new workspace.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the new policy. Options:</p>\n<ul>\n<li><p><strong>data_access</strong>: column policy</p>\n</li>\n<li><p><strong>data_filter</strong>: row policy</p>\n</li>\n<li><p><strong>data_privacy</strong>: Differential Privacy (DP) policy</p>\n</li>\n<li><p><strong>data_masking</strong>: dynamic masking policy</p>\n</li>\n<li><p><strong>data_validation</strong>: data validation policy</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>data</code></strong> (json): Json containing the relevant schema tree structure:</p>\n<ul>\n<li><p><strong>schema(s)</strong>: Specifies the schema(s) involved.</p>\n</li>\n<li><p><strong>table(s)</strong>: Identifies one or more tables within the schema(s) to which access is granted.</p>\n</li>\n<li><p><strong>column(s)</strong>: Lists the specific columns from each table to which access is granted.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <strong><code>permission</code></strong> object in json format that includes the details of the newly created policy:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the policy.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the policy, describing its purpose or scope.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A detailed description of what the policy allows.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of policy, e.g., \"data_access\".</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the policy belongs.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded string representing the schema, table, and columns to which access is granted.</p>\n<ul>\n<li><p>Each element in the JSON array represents an access object with the following fields:</p>\n<ul>\n<li><p><strong>table</strong> (string): The name of the database table.</p>\n</li>\n<li><p><strong>column</strong> (string): The specific column in the table that is accessible.</p>\n</li>\n<li><p><strong>schema</strong> (string): The schema path for the table within the database.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, ISO 8601): Timestamp indicating when the policy was created.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, ISO 8601): Timestamp indicating when the policy was last modified.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the data source related to the policy.</p>\n</li>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the data source related to the policy.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): The type of the data source, e.g., Postgres.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","permissions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"b3c3f511-05ff-4c7b-8c00-fdc1d2863bab"},{"name":"Create Column Policy - Explicit","id":"71836c1b-b2e4-45ca-b725-70364b5459db","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Aviation core details access\",\n    \"description\": \"access only to pilots' id and name columns\",\n    \"type\": \"data_access\",\n    \"data\": \"[{\\\"schema\\\":\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\",\\\"table\\\":\\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\",\\\"column\\\":\\\"\\\\\\\"pilot_id\\\\\\\"\\\"},{\\\"schema\\\":\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\",\\\"table\\\":\\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\",\\\"column\\\":\\\"\\\\\\\"name\\\\\\\"\\\"}]\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions","description":"<p>This endpoint allows to create a column policy for a specific datasource with explicit selection of the database structure.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong>(string): The unique id of the datasource for this policy.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>Form data containing:</p>\n<ul>\n<li><p><strong><code>name</code></strong>(string): The name of the new policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): The name of the new workspace.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the new policy. Options:</p>\n<ul>\n<li><p><strong>data_access</strong>: column policy</p>\n</li>\n<li><p><strong>data_filter</strong>: row policy</p>\n</li>\n<li><p><strong>data_privacy</strong>: Differential Privacy (DP) policy</p>\n</li>\n<li><p><strong>data_masking</strong>: dynamic masking policy</p>\n</li>\n<li><p><strong>data_validation</strong>: data validation policy</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>data</code></strong> (json): Json containing the relevant schema tree structure:</p>\n<ul>\n<li><p><strong>schema(s)</strong>: Specifies the schema(s) involved.</p>\n</li>\n<li><p><strong>table(s)</strong>: Identifies one or more tables within the schema(s) to which access is granted.</p>\n</li>\n<li><p><strong>column(s)</strong>: Lists the specific columns from each table to which access is granted.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <strong><code>permission</code></strong> object in json format that includes the details of the newly created policy:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the policy.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the policy, describing its purpose or scope.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A detailed description of what the policy allows.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of policy, e.g., \"data_access\".</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the policy belongs.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded string representing the schema, table, and columns to which access is granted.</p>\n<ul>\n<li><p>Each element in the JSON array represents an access object with the following fields:</p>\n<ul>\n<li><p><strong>table</strong> (string): The name of the database table.</p>\n</li>\n<li><p><strong>column</strong> (string): The specific column in the table that is accessible.</p>\n</li>\n<li><p><strong>schema</strong> (string): The schema path for the table within the database.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, ISO 8601): Timestamp indicating when the policy was created.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, ISO 8601): Timestamp indicating when the policy was last modified.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the data source related to the policy.</p>\n</li>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the data source related to the policy.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): The type of the data source, e.g., Postgres.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","permissions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"af9cf736-17d3-4437-a737-35547aa63fb9","name":"Create Column Policy - Explicit - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Aviation core details access\",\n    \"description\": \"access only to pilots' id and name columns\",\n    \"type\": \"data_access\",\n    \"data\": \"[{\\\"schema\\\":\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\",\\\"table\\\":\\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\",\\\"column\\\":\\\"\\\\\\\"pilot_id\\\\\\\"\\\"},{\\\"schema\\\":\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\",\\\"table\\\":\\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\",\\\"column\\\":\\\"\\\\\\\"name\\\\\\\"\\\"}]\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 06 Jan 2025 08:16:34 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"732"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2dc-81QTJBl94PNbFOKUlDrlWor2FXs\""}],"cookie":[],"responseTime":null,"body":"{\n    \"permission\": {\n        \"id\": \"da953d43-3a3b-4d38-b025-20bbc082bf1d\",\n        \"name\": \"Aviation core details access\",\n        \"description\": \"access only to pilots' id and name columns\",\n        \"type\": \"data_access\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"data\": \"[{\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"pilot_id\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}, {\\\"table\\\": \\\"\\\\\\\"pilots_seniority_employment\\\\\\\"\\\", \\\"column\\\": \\\"\\\\\\\"name\\\\\\\"\\\", \\\"schema\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"aviation\\\\\\\"\\\"}]\",\n        \"createdAt\": \"2025-01-06T08:16:34.007009Z\",\n        \"lastModifiedAt\": \"2025-01-06T08:16:34.007009Z\",\n        \"viewId\": \"\",\n        \"viewName\": \"\",\n        \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n        \"datasourceName\": \"\",\n        \"datasourceType\": \"\"\n    }\n}"}],"_postman_id":"71836c1b-b2e4-45ca-b725-70364b5459db"},{"name":"Create Row Policy","id":"ff251785-a1ef-4355-a717-c2555e3430e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"branch filter\",\n    \"description\": \"\",\n    \"type\": \"data_filter\",\n    \"data\": \"{\\\"filters\\\":[{\\\"basic\\\":{\\\"column\\\":\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\".\\\\\\\"bank_branches\\\\\\\".\\\\\\\"branch_name\\\\\\\"\\\",\\\"value\\\":\\\"main branch\\\",\\\"compOperator\\\":\\\"=\\\"}}],\\\"operators\\\":[]}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions","description":"<p>This endpoint allows to create a row policy (filter) for a specific datasource.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong>(string): The unique id of the datasource for this policy.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><p><strong><code>name</code></strong> <strong>(string):</strong> The name of the row policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> <strong>(string):</strong> A brief description or additional details about the row policy.</p>\n</li>\n<li><p><strong><code>type</code></strong> <strong>(string):</strong> The type of the policy, in this case \"data_filter\".</p>\n</li>\n<li><p><strong><code>data</code></strong> <strong>(string):</strong> A serialized JSON string containing filters and operators used in the data filter.</p>\n<ul>\n<li><p><strong>filters (array):</strong> A list of filter objects defining filtering criteria.</p>\n<ul>\n<li><p><strong>basic (object):</strong> Contains basic filter details.</p>\n<ul>\n<li><p><strong>column (string):</strong> The fully qualified name of the column being filtered (e.g., \"demo_catalog.schema_1.bank_branches.branch_name\").</p>\n</li>\n<li><p><strong>value (string):</strong> The value to filter for (e.g., \"main branch\").</p>\n</li>\n<li><p><strong>compOperator (string):</strong> The comparison operator used in the filter (e.g., \"=\").</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>operators (array):</strong> An empty array reserved for defining logical operators (e.g., AND, OR) between filters, currently unused in this example.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <strong><code>permission</code></strong> object in json format that includes the details of the newly created row policy:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the policy.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the policy, describing its purpose or scope.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A detailed description of what the policy allows.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of policy, in this case \"data_filter\".</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the policy belongs.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded string representing the schema, table, and columns to which access is granted.</p>\n<ul>\n<li><p>Each element in the JSON array represents an access object with the following fields:</p>\n<ul>\n<li><p><strong>table</strong> (string): The name of the database table.</p>\n</li>\n<li><p><strong>column</strong> (string): The specific column in the table that is accessible.</p>\n</li>\n<li><p><strong>schema</strong> (string): The schema path for the table within the database.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, ISO 8601): Timestamp indicating when the policy was created.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, ISO 8601): Timestamp indicating when the policy was last modified.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the data source related to the policy.</p>\n</li>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the data source related to the policy.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): The type of the data source, e.g., Postgres.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","permissions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"208bbe2c-8220-4ba1-b2f7-a62daf7c5a76","name":"Create Row Policy - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"branch filter\",\n    \"description\": \"\",\n    \"type\": \"data_filter\",\n    \"data\": \"{\\\"filters\\\":[{\\\"basic\\\":{\\\"column\\\":\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\".\\\\\\\"bank_branches\\\\\\\".\\\\\\\"branch_name\\\\\\\"\\\",\\\"value\\\":\\\"main branch\\\",\\\"compOperator\\\":\\\"=\\\"}}],\\\"operators\\\":[]}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 06 Jan 2025 11:35:27 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"593"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"251-aOqkQGYopRUG6psOyKOHWo0l4f0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"permission\": {\n        \"id\": \"d3aa9424-86fd-4fa3-915b-05fcb4aff441\",\n        \"name\": \"branch filter\",\n        \"description\": \"\",\n        \"type\": \"data_filter\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"data\": \"{\\\"filters\\\": [{\\\"basic\\\": {\\\"type\\\": \\\"text\\\", \\\"value\\\": \\\"main branch\\\", \\\"column\\\": \\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\".\\\\\\\"bank_branches\\\\\\\".\\\\\\\"branch_name\\\\\\\"\\\", \\\"compOperator\\\": \\\"=\\\"}}]}\",\n        \"createdAt\": \"2025-01-06T11:35:27.097012Z\",\n        \"lastModifiedAt\": \"2025-01-06T11:35:27.097012Z\",\n        \"viewId\": \"\",\n        \"viewName\": \"\",\n        \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n        \"datasourceName\": \"\",\n        \"datasourceType\": \"\"\n    }\n}"}],"_postman_id":"ff251785-a1ef-4355-a717-c2555e3430e9"},{"name":"Create DP Policy","id":"a31965ba-d315-4dca-a4db-ec0229c85d63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"branch filter\",\n    \"description\": \"\",\n    \"type\": \"data_filter\",\n    \"data\": \"{\\\"filters\\\":[{\\\"basic\\\":{\\\"column\\\":\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\".\\\\\\\"bank_branches\\\\\\\".\\\\\\\"branch_name\\\\\\\"\\\",\\\"value\\\":\\\"main branch\\\",\\\"compOperator\\\":\\\"=\\\"}}],\\\"operators\\\":[]}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions","description":"<p>This endpoint allows to create a row policy (filter) for a specific datasource.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong>(string): The unique id of the datasource for this policy.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description or additional details about the policy.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the object, which in this case is \"data_privacy\".</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): A serialized JSON string containing details about the schemas covered by the policy.</p>\n<ul>\n<li><strong><code>schemas</code></strong> (array)<strong>:</strong> A list of schema names to which the policy applies.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <strong><code>permission</code></strong> object in json format that includes the details of the newly created DP policy:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the policy.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Description or additional details about the policy.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): Type of the permission, in this case data_privacy.</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the policy belongs.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded string containing schemas details.</p>\n<ul>\n<li><strong><code>schemas</code></strong> (array of strings): List of schema paths included in the policy, encoded as a string.</li>\n</ul>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, ISO 8601): The timestamp when the permission was created.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, ISO 8601): The timestamp when the permission was last modified.</p>\n</li>\n<li><p><strong><code>viewId</code></strong> (string): Identifier for the associated view, if applicable.</p>\n</li>\n<li><p><strong><code>viewName</code></strong> (string): Name of the associated view, if applicable.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated datasource.</p>\n</li>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the associated datasource.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the associated datasource.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","permissions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"c8d87f78-2b6f-4269-89d2-b5a459fee62c","name":"Create DP Policy - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"statistical analysis policy\",\n    \"description\": \"\",\n    \"type\": \"data_privacy\",\n    \"data\": \"{\\\"schemas\\\":[\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\"\\\"]}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 06 Jan 2025 11:53:09 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"466"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"1d2-Q8J2J2n03GalIojPUd3GoRPkUGg\""}],"cookie":[],"responseTime":null,"body":"{\n    \"permission\": {\n        \"id\": \"59dec083-7a47-4e6d-a85f-a67db7a413c0\",\n        \"name\": \"statistical analysis policy\",\n        \"description\": \"\",\n        \"type\": \"data_privacy\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"data\": \"{\\\"schemas\\\": [\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\"\\\"]}\",\n        \"createdAt\": \"2025-01-06T11:53:09.015879Z\",\n        \"lastModifiedAt\": \"2025-01-06T11:53:09.015879Z\",\n        \"viewId\": \"\",\n        \"viewName\": \"\",\n        \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n        \"datasourceName\": \"\",\n        \"datasourceType\": \"\"\n    }\n}"}],"_postman_id":"a31965ba-d315-4dca-a4db-ec0229c85d63"},{"name":"Create Validation Policy","id":"96ef7fb6-a0b9-43b2-8590-ab882586ae6c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"mask location details\",\n    \"description\": \"\",\n    \"type\": \"data_masking\",\n    \"data\": \"[{\\\"column\\\":\\\"`bigqueryproxy-398914`.`ProxyDataSet`.`demo_locations`.`latitude`\\\",\\\"unmaskLeft\\\":0,\\\"unmaskRight\\\":0},{\\\"column\\\":\\\"`bigqueryproxy-398914`.`ProxyDataSet`.`demo_locations`.`longitude`\\\",\\\"unmaskLeft\\\":0,\\\"unmaskRight\\\":0}]\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions","description":"<p>This endpoint allows to create a validation policy for a specific datasource.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong>(string): The unique id of the datasource for this policy.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string)<strong>:</strong> The name of the policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string)<strong>:</strong> A brief description or additional details about the policy.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string)<strong>:</strong> The type of the object, which in this case is \"data_validation\".</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded object containing details about the validation configuration.</p>\n<ul>\n<li><p><strong>header</strong> (string): the type of validation. Options: aggregation.</p>\n</li>\n<li><p><strong>aggregationPermission</strong> (object): Contains details about the schemas permitted for aggregation.</p>\n<ul>\n<li><strong>schemas</strong> (array of strings): A list of schema identifiers that are permitted for aggregation operations, encoded as strings.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <strong><code>permission</code></strong> object in json format that includes the details of the newly created masking policy:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the policy.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Description or additional details about the policy.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): Type of the permission, in this case data_masking.</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the policy belongs.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded string containing schemas details.</p>\n<ul>\n<li><p><strong><code>column</code></strong> (string): The fully qualified column name that is subject to masking.</p>\n</li>\n<li><p><strong><code>unmaskLeft</code></strong> (number): The number of characters to leave unmasked from the beginning of the value.</p>\n</li>\n<li><p><strong><code>unmaskRight</code></strong> (number): The number of characters to leave unmasked from the end of the value.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, ISO 8601): The timestamp when the permission was created.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, ISO 8601): The timestamp when the permission was last modified.</p>\n</li>\n<li><p><strong><code>viewId</code></strong> (string): Identifier for the associated view, if applicable.</p>\n</li>\n<li><p><strong><code>viewName</code></strong> (string): Name of the associated view, if applicable.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated datasource.</p>\n</li>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the associated datasource.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the associated datasource.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","permissions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"14e28a58-61e5-47e3-a523-2ca08da64894","name":"Create Validation Policy - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"validate agg only\",\n    \"description\": \"\",\n    \"type\": \"data_validation\",\n    \"data\": \"{\\\"header\\\":\\\"aggregation\\\",\\\"aggregationPermission\\\":{\\\"schemas\\\":[\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\"\\\"]}}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 06 Jan 2025 12:13:16 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"517"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"205-xzWC45TbmESr9Pzk0KZVgULldTI\""}],"cookie":[],"responseTime":null,"body":"{\n    \"permission\": {\n        \"id\": \"87df7f03-54ba-4aa4-bf0c-335ae9963f15\",\n        \"name\": \"validate agg only\",\n        \"description\": \"\",\n        \"type\": \"data_validation\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"data\": \"{\\\"header\\\": \\\"aggregation\\\", \\\"aggregationPermission\\\": {\\\"schemas\\\": [\\\"\\\\\\\"demo_catalog\\\\\\\".\\\\\\\"schema_1\\\\\\\"\\\"]}}\",\n        \"createdAt\": \"2025-01-06T12:13:16.608191Z\",\n        \"lastModifiedAt\": \"2025-01-06T12:13:16.608191Z\",\n        \"viewId\": \"\",\n        \"viewName\": \"\",\n        \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n        \"datasourceName\": \"\",\n        \"datasourceType\": \"\"\n    }\n}"}],"_postman_id":"96ef7fb6-a0b9-43b2-8590-ab882586ae6c"},{"name":"Create Masking Policy","id":"9d10231a-0404-49fe-8d43-800990d968a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"mask location details\",\n    \"description\": \"\",\n    \"type\": \"data_masking\",\n    \"data\": \"[{\\\"column\\\":\\\"`bigqueryproxy-398914`.`ProxyDataSet`.`demo_locations`.`latitude`\\\",\\\"unmaskLeft\\\":0,\\\"unmaskRight\\\":0},{\\\"column\\\":\\\"`bigqueryproxy-398914`.`ProxyDataSet`.`demo_locations`.`longitude`\\\",\\\"unmaskLeft\\\":0,\\\"unmaskRight\\\":0}]\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions","description":"<p>This endpoint allows to create a masking policy for a specific datasource.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong>(string): The unique id of the datasource for this policy.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string)<strong>:</strong> The name of the policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string)<strong>:</strong> A brief description or additional details about the policy.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string)<strong>:</strong> The type of the object, which in this case is \"data_masking\".</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded array containing details of the columns to be masked.</p>\n<ul>\n<li><p><strong><code>column</code></strong> (string): The fully qualified column name that is subject to masking.</p>\n</li>\n<li><p><strong><code>unmaskLeft</code></strong> (number): The number of characters to leave unmasked from the beginning of the value.</p>\n</li>\n<li><p><strong><code>unmaskRight</code></strong> (number): The number of characters to leave unmasked from the end of the value.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <strong><code>permission</code></strong> object in json format that includes the details of the newly created masking policy:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the policy.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Description or additional details about the policy.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): Type of the permission, in this case data_masking.</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the policy belongs.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded string containing schemas details.</p>\n<ul>\n<li><p><strong><code>column</code></strong> (string): The fully qualified column name that is subject to masking.</p>\n</li>\n<li><p><strong><code>unmaskLeft</code></strong> (number): The number of characters to leave unmasked from the beginning of the value.</p>\n</li>\n<li><p><strong><code>unmaskRight</code></strong> (number): The number of characters to leave unmasked from the end of the value.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, ISO 8601): The timestamp when the permission was created.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, ISO 8601): The timestamp when the permission was last modified.</p>\n</li>\n<li><p><strong><code>viewId</code></strong> (string): Identifier for the associated view, if applicable.</p>\n</li>\n<li><p><strong><code>viewName</code></strong> (string): Name of the associated view, if applicable.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the associated datasource.</p>\n</li>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the associated datasource.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): Type of the associated datasource.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","permissions"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"28ba6a0a-2a50-49f6-808f-1944ac18207e","name":"Create Masking Policy - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"mask location details\",\n    \"description\": \"\",\n    \"type\": \"data_masking\",\n    \"data\": \"[{\\\"column\\\":\\\"`bigqueryproxy-398914`.`ProxyDataSet`.`demo_locations`.`latitude`\\\",\\\"unmaskLeft\\\":0,\\\"unmaskRight\\\":0},{\\\"column\\\":\\\"`bigqueryproxy-398914`.`ProxyDataSet`.`demo_locations`.`longitude`\\\",\\\"unmaskLeft\\\":0,\\\"unmaskRight\\\":0}]\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 06 Jan 2025 12:03:34 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"651"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"28b-mHmZwvU4qsXE8nZHEQJdOMxV0tM\""}],"cookie":[],"responseTime":null,"body":"{\n    \"permission\": {\n        \"id\": \"70bcd736-6d30-4577-9b99-fe81da88ef15\",\n        \"name\": \"mask location details\",\n        \"description\": \"\",\n        \"type\": \"data_masking\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"data\": \"[{\\\"column\\\": \\\"`bigqueryproxy-398914`.`ProxyDataSet`.`demo_locations`.`latitude`\\\", \\\"unmaskLeft\\\": 0, \\\"unmaskRight\\\": 0}, {\\\"column\\\": \\\"`bigqueryproxy-398914`.`ProxyDataSet`.`demo_locations`.`longitude`\\\", \\\"unmaskLeft\\\": 0, \\\"unmaskRight\\\": 0}]\",\n        \"createdAt\": \"2025-01-06T12:03:34.349883Z\",\n        \"lastModifiedAt\": \"2025-01-06T12:03:34.349883Z\",\n        \"viewId\": \"\",\n        \"viewName\": \"\",\n        \"datasourceId\": \"ee1e995e-b02a-45b7-8655-d93987e3e859\",\n        \"datasourceName\": \"\",\n        \"datasourceType\": \"\"\n    }\n}"}],"_postman_id":"9d10231a-0404-49fe-8d43-800990d968a1"},{"name":"Delete Policy","id":"a7c67dbe-cf68-4917-bf6b-4ef9039aa00a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions/{{policy_id}}","description":"<p>This endpoint allows to create a column policy for a specific datasource with explicit selection of the database structure.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>datasource_id</code></strong>(string): The unique id of the datasource for this policy.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>Form data containing:</p>\n<ul>\n<li><p><strong><code>name</code></strong>(string): The name of the new policy.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): The name of the new workspace.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of the new policy. Options:</p>\n<ul>\n<li><p><strong>data_access</strong>: column policy</p>\n</li>\n<li><p><strong>data_filter</strong>: row policy</p>\n</li>\n<li><p><strong>data_privacy</strong>: Differential Privacy (DP) policy</p>\n</li>\n<li><p><strong>data_masking</strong>: dynamic masking policy</p>\n</li>\n<li><p><strong>data_validation</strong>: data validation policy</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>data</code></strong> (json): Json containing the relevant schema tree structure:</p>\n<ul>\n<li><p><strong>schema(s)</strong>: Specifies the schema(s) involved.</p>\n</li>\n<li><p><strong>table(s)</strong>: Identifies one or more tables within the schema(s) to which access is granted.</p>\n</li>\n<li><p><strong>column(s)</strong>: Lists the specific columns from each table to which access is granted.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>The response is a <strong><code>permission</code></strong> object in json format that includes the details of the newly created policy:</p>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the policy.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): Name of the policy, describing its purpose or scope.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A detailed description of what the policy allows.</p>\n</li>\n<li><p><strong><code>type</code></strong> (string): The type of policy, e.g., \"data_access\".</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the policy belongs.</p>\n</li>\n<li><p><strong><code>data</code></strong> (string): JSON-encoded string representing the schema, table, and columns to which access is granted.</p>\n<ul>\n<li><p>Each element in the JSON array represents an access object with the following fields:</p>\n<ul>\n<li><p><strong>table</strong> (string): The name of the database table.</p>\n</li>\n<li><p><strong>column</strong> (string): The specific column in the table that is accessible.</p>\n</li>\n<li><p><strong>schema</strong> (string): The schema path for the table within the database.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong><code>createdAt</code></strong> (timestamp, ISO 8601): Timestamp indicating when the policy was created.</p>\n</li>\n<li><p><strong><code>lastModifiedAt</code></strong> (timestamp, ISO 8601): Timestamp indicating when the policy was last modified.</p>\n</li>\n<li><p><strong><code>datasourceId</code></strong> (string): Identifier for the data source related to the policy.</p>\n</li>\n<li><p><strong><code>datasourceName</code></strong> (string): Name of the data source related to the policy.</p>\n</li>\n<li><p><strong><code>datasourceType</code></strong> (string): The type of the data source, e.g., Postgres.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","datasources","{{datasource_id}}","permissions","{{policy_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"0d3b3036-8cee-4fb1-8961-7f82b5da7b58","name":"Create Row Policy - 200 Success","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/datasources/{{datasource_id}}/permissions/{{policy_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 06 Jan 2025 11:36:02 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"a7c67dbe-cf68-4917-bf6b-4ef9039aa00a"}],"id":"30addf35-8f1f-4d42-9abc-7629a422e1da","description":"<p>PVML provides full granularity in access policies to support any level of security and privacy according to the specific requirements of the business use case. Policies can be attached to a <a href=\"https://api.pvml.com/#8bcd80f9-8ee0-4c9a-9b73-7ee907ee7990\">view</a> to create a certain scope for a datasource.</p>\n<p>Policies include:</p>\n<ol>\n<li><p>Column level</p>\n</li>\n<li><p>Row level (filter)</p>\n</li>\n<li><p>Differential Privacy</p>\n</li>\n<li><p>Masking</p>\n</li>\n<li><p>Validation</p>\n</li>\n</ol>\n<h3 id=\"column-level-policy\">Column Level Policy</h3>\n<ul>\n<li><p>Specifies the parts of a data source that are accessible, including schemas, tables, and individual columns.</p>\n</li>\n<li><p>A column-level policy must be added to a View for it to be valid. Ensure this is set up.</p>\n</li>\n</ul>\n<h3 id=\"row-level-policy\">Row Level Policy</h3>\n<ul>\n<li><p>Allows the definition of filters to control access to specific rows, ranging from simple conditions like <code>city='London'</code> to more complex expressions using extended <code>AND</code> and <code>OR</code> logic.</p>\n</li>\n<li><p>The policy can also leverage user attributes to filter rows, e.g., <code>user.team='Sales'</code>.</p>\n</li>\n</ul>\n<h3 id=\"differential-privacy-policy\">Differential Privacy Policy</h3>\n<h4 id=\"💡-what-is-differential-privacy\"><strong>💡 What is Differential Privacy?</strong></h4>\n<ul>\n<li><p><a href=\"https://pvml.com/our-technology/#differential-privacy\">Differential Privacy</a> is a mathematical framework that offers the strongest data safeguard in data-driven systems.</p>\n</li>\n<li><p>It achieves this by <strong>adding controlled noise to the output of a query or algorithm</strong>, making it <strong>statistically indistinguishable whether a particular individual’s data was included or excluded</strong>.</p>\n</li>\n<li><p>This nominal amount of variance is insignificant in a broader analytical context, but is crucial to create a robust barrier against attempts to extract sensitive information.</p>\n</li>\n</ul>\n<img src=\"https://pvml.com/wp-content/uploads/2023/12/DP-algorithm-v2-1.svg\" alt=\"A%20DP%20algorithm%20makes%20it%20statistically%20indistinguishable%20whether%20a%20particular%20individual’s%20data%20was%20included%20or%20excluded%20in%20the%20computation%20(so%20whether%20there%20were%2010K%20records%20or%209,999%20records).\" width=\"616\" height=\"685\" />\n\n<ul>\n<li><p>A Differential Privacy policy allows to choose a <strong>schema</strong> for which outputs will be differentially private.</p>\n</li>\n<li><p>With a DP policy in place, the user can extract insights about populations (groups of <a href=\"https://api.pvml.com/#1d940ba1-caa5-41bc-a0b3-99632a8f4818\">identifiers</a> as defined when connecting the datasource) but cannot access raw data for individual identifiers or very small samples.</p>\n</li>\n<li><p>This mechanism is based on mathematical Differential Privacy algorithms that are applied in real time and require no additional configurations or alterations to the underlying data.</p>\n</li>\n</ul>\n<h4 id=\"💡-when-should-i-use-a-differential-privacy-policy\"><strong>💡 When should I use a Differential Privacy policy?</strong></h4>\n<ul>\n<li><p>When you need to protect the privacy of individuals in the data (e.g., users, transactions, etc.).</p>\n</li>\n<li><p>When your focus is on statistical analysis rather than retrieving or analyzing values related to individual records.</p>\n</li>\n<li><p>When working with large datasets (roughly &gt;10K records) rather than small datasets.</p>\n</li>\n</ul>\n<p>⚠️ <strong>Note:</strong></p>\n<ul>\n<li><p>To use a Differential Privacy policy, an <a href=\"https://api.pvml.com/#1d940ba1-caa5-41bc-a0b3-99632a8f4818\">Identifier</a> must be configured for the datasource.</p>\n</li>\n<li><p>Differential Privacy algorithms can be highly complex, thus adding some overhead in query execution times.</p>\n</li>\n</ul>\n<h3 id=\"masking-policy\">Masking Policy</h3>\n<ul>\n<li><p>Specifies the columns to be masked, either fully or partially.</p>\n</li>\n<li><p>Fields are dynamically masked at the latest possible step, preserving the underlying values and enabling operations like Joins on masked fields.</p>\n</li>\n<li><p>This unlocks analytical use cases on masked fields, for example, fetching the countries with top paying accounts, while the transaction amount itself is masked at the outout.</p>\n</li>\n</ul>\n<h3 id=\"validation-policy\">Validation Policy</h3>\n<ul>\n<li><p>Validation policies enable the creation of rules to enforce specific query requirements, for example:</p>\n<ul>\n<li><p>a mandatory use of the <em>LIMIT</em> clause</p>\n</li>\n<li><p>restriction to aggregation functions only</p>\n</li>\n<li><p>avoiding <em>SELECT</em> *</p>\n</li>\n<li><p>and more.</p>\n</li>\n</ul>\n</li>\n<li><p>These can be particularly valuable when used with <a href=\"https://api.pvml.com/#fcc93712-2b69-492c-b2ed-2d368c02cbfb\">Bots</a> (our AI integrations) for RAG, providing enhanced control over the generated computations.</p>\n</li>\n</ul>\n","_postman_id":"30addf35-8f1f-4d42-9abc-7629a422e1da","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Connections","item":[{"name":"Create User API Key","id":"999051e8-684f-4621-9d90-7fc77c6a7137","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"description\": \"a string that describes the token\",\n    \"expiration\": 1766750237000\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/token","description":"<p>This endpoint allows to create an API token for a user.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>workspace_id</code>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><code>user_id</code> (string): The unique identifier of the user in the workspace.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><p><code>description</code> (string)<strong>:</strong> A string that describes the token's purpose.</p>\n</li>\n<li><p><code>expiration</code> (string): The token expiration time represented in Unix epoch time, measured in milliseconds.</p>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<ul>\n<li><p><code>token</code> (string)<strong>:</strong> The JSON Web Token (JWT) containing encoded user claims, expiration, and metadata.</p>\n</li>\n<li><p><code>tokenId</code> (string): A unique identifier for the token instance, used for tracking or revocation.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","users","{{user_id}}","token"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"13952db7-87ff-4a7e-9da2-da5cdba7afc0","name":"Create User API Key - time in the past - 400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"description\": \"a string that describes the token\",\n    \"expiration\": 1728087095\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/token"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 11:56:44 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"71"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"47-cycX7mS0YHN+28JAxJKXg9JprDU\""}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Failed to create managed user token\",\n    \"code\": 2000,\n    \"reason\": \"\"\n}"},{"id":"2d65de50-ca4b-4ba3-964a-ab2ae7e8825f","name":"Create User API Key - 201 Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"description\": \"a string that describes the token\",\n    \"expiration\": 1766750237000\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/users/{{user_id}}/token"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 12:07:15 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"550"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"226-kS/BFTt+EQ6PZBSIlcJHr33cKn8\""}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoIiwiZGF0YXNvdXJjZSI6IiIsImV4cCI6MTc2Njc1MDIzNywiaWF0IjoxNzMzNjU5NjM1LCJpc3MiOiJhdXRoIiwicm9sZSI6IiIsInN1YiI6InVzZXIiLCJ0b2tlbklkIjoiMDJmYTBkZmYtNTQ5ZS00NDY2LWJkM2MtY2I2MDliMjdiYTFkIiwidXNlciI6IjNjNmY3NzY4LTNmNDMtNGQxMC1iZWUxLWUzOGM1NTM5MjA0OSIsIndvcmtzcGFjZSI6IiJ9.n1BK3KVcIP7NWDT7D5UeJAtz8dukSZqm2KDD_Ms4d7jSqiO2d81Hr9W6JpY6Xhuacq8-h4zD7grR8I9l-QT_rmryq224z27vhmrJj-ImIAkpe4ZizxJZo7VBV3IiQqAEOhy2ToErFjC985HTCEwTkUPr-EmlGX_g0OwxmaF2VRg\",\n    \"tokenId\": \"02fa0dff-549e-4466-bd3c-cb609b27ba1d\"\n}"}],"_postman_id":"999051e8-684f-4621-9d90-7fc77c6a7137"},{"name":"Revoke API Key","id":"e9905d2b-e57d-47b6-ac38-13e214ec27f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"tokenId\":\"02fa0dff-549e-4466-bd3c-cb609b27ba1d\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/token/revoke","description":"<p>This endpoint allows to revoke an API token.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>workspace_id</code>(string): The unique identifier of the workspace.</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><code>tokenId</code> (string)<strong>:</strong> A unique identifier of the token to revoke.</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p>Upon successfully revoking the token, the server returns a status code of 200 and an empty JSON response.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","token","revoke"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"4bbea1b9-0eca-49d8-aedf-eb59e2e42e88","name":"Revoke API Key - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"tokenId\":\"02fa0dff-549e-4466-bd3c-cb609b27ba1d\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/token/revoke"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 08 Dec 2024 12:09:55 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"e9905d2b-e57d-47b6-ac38-13e214ec27f2"}],"id":"b11ae3ab-dc55-413e-9849-70af1aefed43","_postman_id":"b11ae3ab-dc55-413e-9849-70af1aefed43","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"GenAI","item":[{"name":"MCPs","item":[],"id":"6a632de0-0efa-4fc7-b8b4-0062b4fa680c","description":"<p>The PVML-generated MCP is built to enhance GenAI accuracy and efficiency by including a semantic layer consisting of data descriptions, relations, and business context, in addition to the built-in privacy, security and authentication.</p>\n","_postman_id":"6a632de0-0efa-4fc7-b8b4-0062b4fa680c","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Agents","item":[{"name":"Create Agent","id":"43e45122-8a61-4f21-8c5d-563cb8e36c57","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"chat bot - title generator\",\n    \"description\": \"a bot that generates a chat title based on first user message in the chat\",\n    \"views\": [],\n    \"llmId\": \"5d7c3a68-78a3-4817-b96a-ff9560ac0e50\",\n    \"instructions\": \"Given the following messages in the chat:\\n{{input.messages}}\\n\\nGenerate a concise and engaging title (up to 4 words) for the upcoming conversation based on the user's first message.\\n\\n- Please ensure the title is relevant and captures the essence of the conversation.\\n- Limit the title to a maximum of 4 words.\\n### Response Format (JSON)\\nRespond in the following JSON format. Do not add any text or code before or after it.\\n{\\n  \\\"title\\\": \\\"generated title\\\"\\n}\",\n    \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots","description":"<p>This endpoint allows you to create a bot in a workspace.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<ul>\n<li><p><strong><code>name</code></strong> (string): The name of the bot.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): A brief description of the bot's purpose.</p>\n</li>\n<li><p><strong><code>views</code></strong> (array): A list of associated views, defnining the scope of the bot and the privacy controls to be enforced (or empty).</p>\n</li>\n<li><p><strong><code>llmId</code></strong> (string): The unique identifier of the large language model (LLM) associated with the bot.</p>\n</li>\n<li><p><strong><code>instructions</code></strong> (string): Detailed instructions for the bot's operation, describing how it processes input and what output is expected. This fine tunes the model's behavior to the relevant business use case.</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): The unique identifier of the workspace to which the bot belongs.</p>\n</li>\n</ul>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<ul>\n<li><p><strong><code>id</code></strong> (string): Unique identifier for the bot.</p>\n</li>\n<li><p><strong><code>views</code></strong> (array): A list of views associated with the bot.</p>\n</li>\n<li><p><strong><code>workspaceId</code></strong> (string): Identifier for the workspace to which the bot belongs.</p>\n</li>\n<li><p><strong><code>name</code></strong> (string): The name of the bot.</p>\n</li>\n<li><p><strong><code>description</code></strong> (string): Description or additional details about the bot.</p>\n</li>\n<li><p><strong><code>creationTime</code></strong> (timestamp, Unix epoch in milliseconds): The time when the bot was created.</p>\n</li>\n<li><p><strong><code>createdBy</code></strong> (string): Unique identifier of the user who created the object.</p>\n</li>\n<li><p><strong><code>instructions</code></strong> (string): Detailed instructions for the bot's operation, describing how it processes input and what output is expected. This fine tunes the model's behavior to the relevant business use case.</p>\n</li>\n<li><p><strong><code>llmId</code></strong> (string): Identifier for the large language model (LLM) associated with the bot.</p>\n</li>\n<li><p><strong><code>actions</code></strong> (null or object): Actions to be performed on the output of the bot, or <code>null</code>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","bots"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"da8b251b-8fa8-4b88-9071-5fc5c51df2c0","name":"Create Bot - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"chat bot - title generator\",\n    \"description\": \"a bot that generates a chat title based on first user message in the chat\",\n    \"views\": [],\n    \"llmId\": \"5d7c3a68-78a3-4817-b96a-ff9560ac0e50\",\n    \"instructions\": \"Given the following messages in the chat:\\n{{input.messages}}\\n\\nGenerate a concise and engaging title (up to 4 words) for the upcoming conversation based on the user's first message.\\n\\n- Please ensure the title is relevant and captures the essence of the conversation.\\n- Limit the title to a maximum of 4 words.\\n### Response Format (JSON)\\nRespond in the following JSON format. Do not add any text or code before or after it.\\n{\\n  \\\"title\\\": \\\"generated title\\\"\\n}\",\n    \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"eb32c9d4-755d-4350-9314-8596a5030fd5\",\n    \"views\": [],\n    \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n    \"name\": \"test\",\n    \"description\": \"\",\n    \"creationTime\": 1734557858963,\n    \"createdBy\": \"3c6f7768-3f43-4d10-bee1-e38c55392049\",\n    \"instructions\": \"Given the following messages in the chat:\\n{{input.messages}}\\n\\nGenerate a concise and engaging title (up to 4 words) for the upcoming conversation based on the user's first message.\\n\\n- Please ensure the title is relevant and captures the essence of the conversation.\\n- Limit the title to a maximum of 4 words.\\n### Response Format (JSON)\\nRespond in the following JSON format. Do not add any text or code before or after it.\\n{\\n  \\\"title\\\": \\\"generated title\\\"\\n}\",\n    \"llmId\": \"5d7c3a68-78a3-4817-b96a-ff9560ac0e50\",\n    \"actions\": null\n}"}],"_postman_id":"43e45122-8a61-4f21-8c5d-563cb8e36c57"},{"name":"Get Agents","id":"e026457f-1a40-40be-ae4d-05fad7a85d7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","bots"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"18e874ec-06dc-4a7b-a4f1-8f9e8bd56fa6","name":"Get Bots - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 18 Dec 2024 21:32:35 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"13170"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"3372-5C6zU0Ei9GgdYjQaOUD/Eoby9Bo\""}],"cookie":[],"responseTime":null,"body":"{\n    \"workspaceBots\": [\n        {\n            \"id\": \"5000d4fb-f912-4993-a7b6-1e65d241aa3a\",\n            \"views\": null,\n            \"workspaceId\": \"b5850d11-6c6b-4d47-81ef-ae0ac67e7399\",\n            \"name\": \"Insights bot\",\n            \"description\": \"\",\n            \"creationTime\": 1734126101388,\n            \"createdBy\": \"3c6f7768-3f43-4d10-bee1-e38c55392049\",\n            \"instructions\": \"You are a data analysis assistant. Your task is to analyze the provided SQL context and deliver a comprehensive summary.\\n\\nSQL Explanation: {{input.explanation}}\\nSQL Query: {{input.sql}}\\nResults: {{input.result_set}}\\nBased on the information above, provide a detailed summary of the data patterns, trends, and insights you observe\",\n            \"llmId\": \"50152df0-439b-4ba4-b583-724ac79463f0\",\n            \"actions\": null\n        },\n        {\n            \"id\": \"9fb36241-61d7-486c-9ec5-9dae1e762b28\",\n            \"views\": [\n                \"3cc04f40-b8ba-41a0-b985-d42b2a3399f4\"\n            ],\n            \"workspaceId\": \"b5850d11-6c6b-4d47-81ef-ae0ac67e7399\",\n            \"name\": \"RAG bot\",\n            \"description\": \"\",\n            \"creationTime\": 1734125328634,\n            \"createdBy\": \"3c6f7768-3f43-4d10-bee1-e38c55392049\",\n            \"instructions\": \"### Objective\\nGenerate a {{view.datasource.type}} SQL query in response to the User Inquiry. When generating the query use the relevant table and column descriptions from Database Schema with Descriptions section. Leverage the User Interaction History and Database Relations. For reference, today is: {{time.now}}.\\n\\n### Database Schema with Descriptions\\n```\\n{{view.datasource.describe}}\\n```\\n\\n### Database Relations\\n```\\n{{view.datasource.relations}}\\n```\\n\\n### User Inquiry\\n```\\n{{input.user_query}}\\n```\\n\\n### Guidelines\\n- Explicitly construct the query without using placeholders.\\n- When generating the query use the relevant table and column descriptions from Database Schema with Descriptions section.\\n- Ensure that your SQL queries explicitly reference tables using the schema-qualified format to include the full path.\\n- Incorporate basic numeric values where relevant.\\n- Terminate each query with a semicolon.\\n- Address ambiguous requests by making reasonable assumptions or approximate calculations.\\n- Consider your latest available information.\\n- Do not use UNION statement.\\n- Do not use placeholders (with @).\\n- Do not generate new functions.\\n- Do not WITH statement.\\n- Do not generate more than one {{view.datasource.type}} query.\\n\\n### Response Format (JSON)\\nRespond in the following JSON format. Do not add any text or code before or after it.\\n{\\n  \\\"query\\\": \\\"The {{view.datasource.type}} query.\\\",\\n  \\\"explanation\\\": \\\"Explain the analysis logic in simple terms without referencing any SQL functions or keywords or the word 'SQL' itself. This will be returned to the user alongside the result. Address the user directly.\\\",\\n  \\\"errorCode\\\": \\\"ERROR_1, ERROR_2 or Null if no error occurred.\\\"\\n}\\n\\n### Error Codes\\n- ERROR_1: If and only if columns in the data are insufficient for generating a query based on the User Inquiry.\\n- ERROR_2: If and only if the User Inquiry is unrelated to legitimate data analysis (e.g., \\\"hi,\\\" \\\"hello,\\\" or weather-related inquiries).\",\n            \"llmId\": \"50152df0-439b-4ba4-b583-724ac79463f0\",\n            \"actions\": null\n        }\n    ]\n}"}],"_postman_id":"e026457f-1a40-40be-ae4d-05fad7a85d7e"},{"name":"Get Agent","id":"57fb6dfe-3bf6-434d-bd0a-f492384d875b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots/{{bot_id}}","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","bots","{{bot_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"85d8c67d-2006-4cb8-b65f-c005d355f8a0","name":"Get Bot - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots/{{bot_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 18 Dec 2024 21:35:40 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2603"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"a2b-uIT4VcZ/YYBlMtSmQ2E3Ym77y2E\""}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"034f8bac-0c02-4885-80a1-54a9f2d1f017\",\n    \"views\": [\n        \"b1e0317b-0e57-4a39-b8b1-ef701743e6d7\"\n    ],\n    \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n    \"name\": \"RAG Transactions\",\n    \"description\": \"\",\n    \"creationTime\": 1734094706523,\n    \"createdBy\": \"71cfdcc7-af6c-40dd-983b-f5158abf30d5\",\n    \"instructions\": \"### Objective\\nGenerate a {{view.datasource.type}} SQL query in response to the User Inquiry. When generating the query use the relevant table and column descriptions from Database Schema with Descriptions section. Leverage the User Interaction History and Database Relations. For reference, today is: {{time.now}}.\\n\\n### Database Schema with Descriptions\\n```\\n{{view.datasource.describe}}\\n```\\n\\n### Database Relations\\n```\\n{{view.datasource.relations}}\\n```\\n\\n### User Interaction History\\n```\\n{{input.messages[:-1]}}\\n```\\n\\n### User Inquiry\\n```\\n{{input.messages[-1]}}\\n```\\n\\n### Guidelines\\n- Explicitly construct the query without using placeholders.\\n- When generating the query use the relevant table and column descriptions from Database Schema with Descriptions section.\\n- Ensure that your SQL queries explicitly reference tables using the schema-qualified format to include the full path.\\n- Incorporate basic numeric values where relevant.\\n- Terminate each query with a semicolon.\\n- Address ambiguous requests by making reasonable assumptions or approximate calculations.\\n- Consider your latest available information.\\n- Do not use UNION statement.\\n- Do not use placeholders (with @).\\n- Do not generate new functions.\\n- Do not WITH statement.\\n- Do not generate more than one {{view.datasource.type}} query.\\n\\n### Response Format (JSON)\\nRespond in the following JSON format. Do not add any text or code before or after it.\\n{\\n  \\\"query\\\": \\\"The {{view.datasource.type}} query.\\\",\\n  \\\"explanation\\\": \\\"Explain the analysis logic in simple terms without referencing any SQL functions or keywords or the word 'SQL' itself. This will be returned to the user alongside the result. Address the user directly.\\\",\\n  \\\"errorCode\\\": \\\"ERROR_1, ERROR_2 or Null if no error occurred.\\\"\\n}\\n\\n### Error Codes\\n- ERROR_1: If and only if columns in the data are insufficient for generating a query based on the User Inquiry.\\n- ERROR_2: If and only if the User Inquiry is unrelated to legitimate data analysis (e.g., \\\"hi,\\\" \\\"hello,\\\" or weather-related inquiries).\",\n    \"llmId\": \"7ba0a9b3-7ac5-48fb-80e3-d605a56bc2db\",\n    \"actions\": [\n        {\n            \"id\": \"448df3e4-ab58-439f-a5ce-a15d15fbc5ec\",\n            \"botId\": \"034f8bac-0c02-4885-80a1-54a9f2d1f017\",\n            \"actionType\": \"ExecuteQuery\",\n            \"params\": {\n                \"query\": \"query\",\n                \"resultSet\": \"result_set\"\n            }\n        }\n    ]\n}"}],"_postman_id":"57fb6dfe-3bf6-434d-bd0a-f492384d875b"},{"name":"Delete Agent","id":"221f8a51-d8e8-4266-abbb-ca2350e0671b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots/{{bot_id}}","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","bots","{{bot_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"c4faa35f-acd0-4afc-b811-4297a8b1d61c","name":"Delete Bot - 200 Success","originalRequest":{"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots/{{bot_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 18 Dec 2024 21:37:47 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"221f8a51-d8e8-4266-abbb-ca2350e0671b"},{"name":"Generate","id":"1d7e618e-c813-4022-b543-fbe19eee79f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"user_query\": \"how many records are there in the users table?\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots/{{bot_id}}/generate","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","bots","{{bot_id}}","generate"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"8d942420-30bc-474d-84c4-792f5c01ba82","name":"Generate - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"user_query\": \"how many records are there in the users table?\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/bots/{{bot_id}}/generate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 16 Apr 2025 09:15:37 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"289"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"121-/4SqQsj/GEvZM88UKpBca+zXRao\""}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"Null\",\n    \"explanation\": \"I counted the number of records in the accounts table, which holds information about users. This gives us the total number of users in our database.\",\n    \"query\": \"SELECT COUNT(*) FROM `demo_catalog`.`schema_1`.`accounts`;\",\n    \"result_set\": [\n        [\n            \"COUNT(*)\"\n        ],\n        [\n            5000\n        ]\n    ]\n}"}],"_postman_id":"1d7e618e-c813-4022-b543-fbe19eee79f1"}],"id":"fcc93712-2b69-492c-b2ed-2d368c02cbfb","description":"<p>Agents seamlessly integrate both the <a href=\"https://api.pvml.com/#d5139ef9-ea26-43e0-8f12-b9bddd2f52a1\">Semantic and Behavioral Layers</a>, serving as dynamic access interfaces that enable secure, efficient, and context-aware interactions between LLMs (Large Language Models) and your data sources.</p>\n<p>Agents act as an intermediary that <strong>shapes, customizes, and controls the LLM's responses</strong> to align with specific business requirements or use cases.</p>\n<p>For example, in a multi-agent AI pipeline, one agent could specialize in retrieving relevant data from a scoped view, passing that information to another agent that dynamically generates customer-facing responses. A third agent could then validate the generated response against compliance rules before returning the final output, ensuring that each step in the chain operates efficiently and adheres to business requirements.</p>\n<p>All queries to PVML-connected data sources are processed through our Privacy Engine, ensuring that the results returned are strictly aligned with each user's permissions.</p>\n","_postman_id":"fcc93712-2b69-492c-b2ed-2d368c02cbfb","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"LLMs","item":[{"name":"Create LLM - GPT","id":"c3b348a8-bb04-43cb-a342-b6659a277742","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Project LLM 5\",\n    \"description\": \"llm to be used in AI customer support agent\",\n    \"workspaceId\": \"{{workspace_id}}\",\n    \"vendorName\": \"openAi\",\n    \"modelName\": \"gpt-4o-2024-05-13\",\n    \"token\": \"{{gpt_token}}\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","llms"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"6414e6a4-ee5d-4b4c-981f-8ac02ffaeee0","name":"Create LLM - GPT - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Project LLM 5\",\n    \"description\": \"llm to be used in AI customer support agent\",\n    \"workspaceId\": \"{{workspace_id}}\",\n    \"vendorName\": \"openAi\",\n    \"modelName\": \"gpt-4o-2024-05-13\",\n    \"token\": \"{{gpt_token}}\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 16 Jan 2025 08:06:38 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"408"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"198-KZMV0GFFMboVbyfNj9xjyYeMDNo\""}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"dbe519b3-daeb-43fa-9d31-78e43985f44a\",\n    \"name\": \"Project LLM 5\",\n    \"description\": \"llm to be used in AI customer support agent\",\n    \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n    \"vendorName\": \"openAi\",\n    \"modelName\": \"gpt-4o-2024-05-13\",\n    \"url\": \"\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        },\n        \"azureProps\": null,\n        \"databricksProps\": null,\n        \"customProps\": null\n    },\n    \"createTime\": 1737014798731,\n    \"lastModifiedAt\": 1737014798731\n}"}],"_postman_id":"c3b348a8-bb04-43cb-a342-b6659a277742"},{"name":"Create LLM - Databricks","id":"b4c2af9f-0e82-49d2-8a06-cf76f844ee45","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Project LLM 55\",\n    \"description\": \"llm to be used in AI customer support agent\",\n    \"workspaceId\": \"{{workspace_id}}\",\n    \"vendorName\": \"databricks\",\n    \"modelName\": \"databricks-meta-llama-3-1-70b-instruct\",\n    \"token\": \"{{databricks_llm_token}}\",\n    \"llmProps\": {\n        \"databricksProps\": {\n            \"temperature\": 0.7,\n            \"url\": \"{{databricks_llm_url}}\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","llms"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"f732c785-bb7b-4ba2-9a43-f7f3dd9ef6d8","name":"Create LLM - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Project LLM\",\n    \"description\": \"llm to be used in AI customer support agent\",\n    \"workspaceId\": \"b5850d11-6c6b-4d47-81ef-ae0ac67e7399\",\n    \"vendorName\": \"databricks\",\n    \"modelName\": \"databricks-meta-llama-3-1-70b-instruct\",\n    \"token\": \"{{databricks_llm_token}}\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 18 Dec 2024 21:25:49 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"438"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"1b6-niEXi2rYKj9lJbR3pAS6wgl6us0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"5d7c3a68-78a3-4817-b96a-ff9560ac0e50\",\n    \"name\": \"Project LLM\",\n    \"description\": \"llm to be used in AI customer support agent\",\n    \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n    \"vendorName\": \"databricks\",\n    \"modelName\": \"databricks-meta-llama-3-1-70b-instruct\",\n    \"url\": \"\",\n    \"llmProps\": {\n        \"basicProps\": null,\n        \"azureProps\": null,\n        \"databricksProps\": {\n            \"temperature\": 0,\n            \"url\": \"\"\n        },\n        \"customProps\": null\n    },\n    \"createTime\": 1734557149236,\n    \"lastModifiedAt\": 1734557149236\n}"}],"_postman_id":"b4c2af9f-0e82-49d2-8a06-cf76f844ee45"},{"name":"Test LLM","id":"435614cf-22da-4763-bff3-3bf193433908","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"workspaceId\": \"{{workspace_id}}\",\n    \"vendorName\": \"databricks\",\n    \"modelName\": \"databricks-meta-llama-3-1-70b-instruct\",\n    \"id\": \"{{llm_id}}\",\n    \"token\": \"{{databricks_llm_token}}\",\n    \"llmProps\": {\n        \"databricksProps\": {\n            \"temperature\": 0.7,\n            \"url\": \"https://dbc-45a12971-2644.cloud.databricks.com/\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/test","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","llms","test"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"d340e42c-3182-4767-95b2-a586e14af4ed","name":"Test LLM - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"workspaceId\": \"{{workspace_id}}\",\n    \"vendorName\": \"databricks\",\n    \"modelName\": \"databricks-meta-llama-3-1-70b-instruct\",\n    \"id\": \"{{llm_id}}\",\n    \"token\": \"{{databricks_llm_token}}\",\n    \"llmProps\": {\n        \"databricksProps\": {\n            \"temperature\": 0.7,\n            \"url\": \"https://dbc-45a12971-2644.cloud.databricks.com/\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/test"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 18 Dec 2024 21:16:12 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"2-3Sns9SSwMKZSYeMFnEirnh7LJYU\""}],"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"435614cf-22da-4763-bff3-3bf193433908"},{"name":"Get LLM","id":"b3328160-6e78-465a-b215-8f95a0749b83","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/{{llm_id}}","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","llms","{{llm_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"577f9384-ff1d-4108-acb7-6cd80479309e","name":"Get LLM - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/{{llm_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 18 Dec 2024 20:56:42 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"370"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"172-DbzPSVePjO1Ld59tE2itU8FrSw8\""}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"8bf78389-e73f-40ed-b503-87bb05a1de45\",\n    \"name\": \"ChatGPT\",\n    \"description\": \"ChatGPT llm\",\n    \"workspaceId\": \"76ea56a9-84d0-4931-9e68-c3c99dc31829\",\n    \"vendorName\": \"openAi\",\n    \"modelName\": \"gpt-4o-2024-05-13\",\n    \"url\": \"\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        },\n        \"azureProps\": null,\n        \"databricksProps\": null,\n        \"customProps\": null\n    },\n    \"createTime\": 1726386166365,\n    \"lastModifiedAt\": 1733068293455\n}"}],"_postman_id":"b3328160-6e78-465a-b215-8f95a0749b83"},{"name":"Get LLMs","id":"47be5e31-05c6-45a8-a920-7fccf2c53997","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","llms"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"4a6c3eda-ff66-409f-aa10-170ce058d948","name":"Get LLMs - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 18 Dec 2024 20:45:29 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"381"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"17d-eSNzpGmIYtqEYyUisAZUfSGza4Y\""}],"cookie":[],"responseTime":null,"body":"{\n    \"Llms\": [\n        {\n            \"id\": \"8bf78389-e73f-40ed-b503-87bb05a1de45\",\n            \"name\": \"ChatGPT\",\n            \"description\": \"ChatGPT llm\",\n            \"workspaceId\": \"76ea56a9-84d0-4931-9e68-c3c99dc31829\",\n            \"vendorName\": \"openAi\",\n            \"modelName\": \"gpt-4o-2024-05-13\",\n            \"url\": \"\",\n            \"llmProps\": {\n                \"basicProps\": {\n                    \"temperature\": 0.7\n                },\n                \"azureProps\": null,\n                \"databricksProps\": null,\n                \"customProps\": null\n            },\n            \"createTime\": 1726386166365,\n            \"lastModifiedAt\": 1733068293455\n        }\n    ]\n}"}],"_postman_id":"47be5e31-05c6-45a8-a920-7fccf2c53997"},{"name":"Get Supported LLMs","id":"5b6c6ee5-859b-4659-91cb-7be78d898102","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/llms","urlObject":{"protocol":"https","path":["platform","api","v1","llms"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"f421f0ba-9500-4fb7-af16-9caa0d5a0056","name":"Get Supported LLMs - 200 Success","originalRequest":{"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/llms"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 15 Jan 2025 08:35:16 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"288"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"120-XlhHWrAEncLQ1dB6FYtvzS8jcs8\""}],"cookie":[],"responseTime":null,"body":"{\n    \"openAi\": [\n        \"gpt-4-0125-preview\",\n        \"gpt-4-turbo-2024-04-09\",\n        \"gpt-4o-2024-05-13\",\n        \"gpt-4o-mini-2024-07-18\"\n    ],\n    \"anthropic\": [\n        \"claude-3-haiku-20240307\",\n        \"claude-3-5-sonnet-20240620\"\n    ],\n    \"google\": [\n        \"gemini-pro\"\n    ],\n    \"azure\": [\n        \"gpt\"\n    ],\n    \"databricks\": [\n        \"databricks-meta-llama-3-1-70b-instruct\"\n    ],\n    \"custom\": [\n        \"custom\"\n    ]\n}"}],"_postman_id":"5b6c6ee5-859b-4659-91cb-7be78d898102"},{"name":"Update LLM - Token properties","id":"ce6f2324-a7b6-4859-843c-8b05c9471eb3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"new llm name\",\n    \"description\": \"\",\n    \"workspaceId\": \"b5850d11-6c6b-4d47-81ef-ae0ac67e7399\",\n    \"vendorName\": \"openAi\",\n    \"modelName\": \"gpt-4o-mini-2024-07-18\",\n    \"id\": \"7ba0a9b3-7ac5-48fb-80e3-d605a56bc2db\",\n    \"token\": \"\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/{{llm_id}}","description":"<p>if token is empty - it is unchanged.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","llms","{{llm_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"4bfa0a24-3999-4edb-9ad8-f529760dedb1","name":"Update LLM - Token properties - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Project LLM\",\n    \"description\": \"\",\n    \"workspaceId\": \"{{workspace_id}}\",\n    \"vendorName\": \"openAi\",\n    \"modelName\": \"gpt-4o-mini-2024-07-18\",\n    \"id\": \"{{llm_id}}\",\n    \"token\": \"\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/{{llm_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 18 Dec 2024 21:01:59 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"369"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"171-UZFoLCeiPcNOkB14khvFjErZKn0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"8bf78389-e73f-40ed-b503-87bb05a1de45\",\n    \"name\": \"new llm name\",\n    \"description\": \"ChatGPT llm\",\n    \"workspaceId\": \"76ea56a9-84d0-4931-9e68-c3c99dc31829\",\n    \"vendorName\": \"openAi\",\n    \"modelName\": \"gpt-4o-mini-2024-07-18\",\n    \"url\": \"\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        },\n        \"azureProps\": null,\n        \"databricksProps\": null,\n        \"customProps\": null\n    },\n    \"createTime\": 1726386166365,\n    \"lastModifiedAt\": 1734555719342\n}"}],"_postman_id":"ce6f2324-a7b6-4859-843c-8b05c9471eb3"},{"name":"Update LLM - Details only","id":"097c4592-d9a6-4bfd-8168-81c9d8b6bcf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"new llm name\",\n    \"description\": \"\",\n    \"workspaceId\": \"b5850d11-6c6b-4d47-81ef-ae0ac67e7399\",\n    \"vendorName\": \"openAi\",\n    \"modelName\": \"gpt-4o-mini-2024-07-18\",\n    \"id\": \"7ba0a9b3-7ac5-48fb-80e3-d605a56bc2db\",\n    \"token\": \"\",\n    \"llmProps\": {\n        \"basicProps\": {\n            \"temperature\": 0.7\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/{{llm_id}}","description":"<p>if token is empty - it is unchanged.</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","llms","{{llm_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"2e71c009-097d-40a2-ab92-fdb1ce5dbaba","name":"Update LLM - Details only - 200 Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"new llm name\",\n    \"description\": \"\",\n    \"workspaceId\": \"{{workspace_id}}\",\n    \"vendorName\": \"databricks\",\n    \"modelName\": \"databricks-meta-llama-3-1-70b-instruct\",\n    \"id\": \"{{llm_id}}\",\n    \"token\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/{{llm_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sun, 12 Jan 2025 15:19:21 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"395"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"18b-gcsCsSkGNGezjtLjQxQcHAcugnc\""}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"50152df0-439b-4ba4-b583-724ac79463f0\",\n    \"name\": \"Project LLM\",\n    \"description\": \"\",\n    \"workspaceId\": \"b5850d11-6c6b-4d47-81ef-ae0ac67e7399\",\n    \"vendorName\": \"databricks\",\n    \"modelName\": \"databricks-meta-llama-3-1-70b-instruct\",\n    \"url\": \"\",\n    \"llmProps\": {\n        \"basicProps\": null,\n        \"azureProps\": null,\n        \"databricksProps\": {\n            \"temperature\": 0,\n            \"url\": \"\"\n        },\n        \"customProps\": null\n    },\n    \"createTime\": 1734124839073,\n    \"lastModifiedAt\": 1736695161728\n}"}],"_postman_id":"097c4592-d9a6-4bfd-8168-81c9d8b6bcf3"},{"name":"Delete LLM","id":"e9f7a4dc-cb90-44b2-a218-a512eb441a71","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/{{llm_id}}","description":"<p>cant be deleted if attached to bot</p>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","llms","{{llm_id}}"],"host":["platform","pvml","com"],"query":[],"variable":[]}},"response":[{"id":"c63e3e72-a261-49e9-a59c-7c31f46ceb1c","name":"Delete LLM - 200 Success","originalRequest":{"method":"DELETE","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/llms/{{llm_id}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"\"\""}],"_postman_id":"e9f7a4dc-cb90-44b2-a218-a512eb441a71"}],"id":"ffde6352-f27a-4bff-a923-765b9916b262","description":"<p>In PVML, an LLM (Large Language Model) functions as an independent building block for A2A protocol export. It is a connection that can be established to an open-source model or a custom model of your choice (for example a local server).</p>\n<p>Using the LLM as a building block in your AI pipeline eliminates vendor lock-in and provides the flexibility to change the model in the future. This can be done by simply updating the AI provider or the model version and requires no changes to your application.</p>\n","_postman_id":"ffde6352-f27a-4bff-a923-765b9916b262","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}}],"id":"d5139ef9-ea26-43e0-8f12-b9bddd2f52a1","description":"<img src=\"https://content.pstmn.io/e03a30bb-4014-4d01-b372-0ba8a63cdb31/UFZNTCBJbmZvZ3JhcGhpY3MgcHJlc2VudGF0aW9uICgxKS5wbmc=\" />\n\n<p>The PVML infrastructure for secure RAG (AI integration with your data) consists of two main components, designed to enhance the <strong>accuracy, efficiency and security</strong> of the AI pipeline:</p>\n<h3 id=\"1-semantic-layer\">1. <strong>Semantic Layer</strong></h3>\n<p>The Semantic Layer provides the foundational structure for the AI pipeline, including <a href=\"https://api.pvml.com/#f96dadaf-a819-4d3a-8336-65cd21586fa3\">relations</a>, <a href=\"https://api.pvml.com/#c9f6e688-ceb1-417d-9516-d57b28b3ad5d\">descriptions</a>, and a <em>scoped</em> data schema defined by <a href=\"https://api.pvml.com/#8bcd80f9-8ee0-4c9a-9b73-7ee907ee7990\">the view</a>, ensuring the model is exposed only to the data structure it needs for the task.</p>\n<p>Benefits of this include:</p>\n<ol>\n<li><p><strong>Optimized tokens usage</strong>: By narrowing the context to only what’s relevant, token consumption is minimized, and the AI pipeline operates more efficiently.</p>\n</li>\n<li><p><strong>Improved task-specific performance</strong>: The scoped schema focuses the model on the exact data required for the job, aligning with best practices for small, dedicated contexts for AI agents.</p>\n</li>\n<li><p><strong>Regulatory compliance</strong>: Limiting access to specific data fields (e.g., excluding irrelevant fields like \"gender\" for a loan recommendation agent) ensures adherence to compliance and ethical standards.</p>\n</li>\n</ol>\n<p>The view is <strong>consumed as an MCP</strong> and it defines the scope of metadata that can be further leveraged in the <strong>Behavioral Layer</strong> using dynamic tags, enabling more precise and contextually aware prompt engineering.</p>\n<img src=\"https://content.pstmn.io/87c212b3-1ce4-4c91-ab17-49d5ea98b7d4/QVBJIGltYWdlcyAoMykucG5n\" alt=\"RAG:%20The%20Semantic%20Layer%20(descriptions)\" />\n\n<h3 id=\"2-behavioral-layer\">2. <strong>Behavioral Layer</strong></h3>\n<p>The Behavioral Layer builds on the scoped metadata from the Semantic Layer, serving as a <strong>dynamic orchestration layer</strong> for tailoring the AI to specific business use cases. Dynamic tags, which are part of this layer, play a critical role in <strong>fine-tuning the model’s behavior</strong> by injecting scoped metadata into prompts. For example:</p>\n<ul>\n<li><p><strong>Metadata derived from the view</strong>: Tags like <code>{{view.datasource.type}}</code> and <code>{{view.datasource.relations}}</code> provide context about the data source, dynamically adapting the model’s responses.</p>\n</li>\n<li><p><strong>Business-specific tags</strong>: Tags such as <code>{{input.user_query}}</code> are used to create a seamless pipeline, adapting the model’s responses to live inputs from users or other agents within the AI chain.</p>\n</li>\n<li><p><strong>Real-time contextual data</strong>: Tags like <code>{{time.now}}</code> (the current timestamp) inject real-time contextual data into prompts to enhance relevance and accuracy.</p>\n</li>\n</ul>\n<p>This layer focuses on turning the scoped data into actionable prompts, ensuring that the model operates efficiently, contextually, and in line with business objectives.</p>\n<p>To help you achieve these goals quickly and with minimal trial and error, PVML offers a set of templates such as a SQL Agent template for RAG pipelines.</p>\n<img src=\"https://content.pstmn.io/bfc4abfe-93db-4d6a-b18f-9808c6357165/QVBJIGltYWdlcyAoMikucG5n\" alt=\"RAG:%20The%20Behavioral%20Layer\" />\n\n<p>The <strong>Semantic Layer</strong> ensures the AI pipeline is efficient, accurate, and compliant by providing structured, scoped, and enriched metadata. The <strong>Behavioral Layer</strong> translates this metadata into actionable prompts using dynamic tags, customizing the model’s behavior in real time</p>\n<p>In addition to these dedicated layers, agents function as an access interface through which users (or other agents) interact with your data sources (just like BI tools, direct SQL queries or python code). This means that you benefit from PVML's <strong>permissions enforcement and privacy guarantees for a secure AI pipeline.</strong></p>\n","_postman_id":"d5139ef9-ea26-43e0-8f12-b9bddd2f52a1","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}},{"name":"Audit","item":[{"name":"Get Audit Records","id":"96c5f353-4a1c-4629-92c5-89685420287e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/query-audit?&projectionColumns=id,query,duration,source,startTime,status,endTime,userEmail,datasourceType,userQuestion,id&pageSize=15&pageNumber=1","description":"<p>This endpoint allows you to get ecords from audit.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>projectionColumns</code></strong> (string, query): A comma-separated list of specific columns to include in the response. Example values include <code>id</code>, <code>query</code>, <code>duration</code>, <code>source</code>, <code>startTime</code>, <code>status</code>, <code>endTime</code>, <code>userEmail</code>, <code>datasourceType</code>, <code>userQuestion</code>.</p>\n</li>\n<li><p><strong><code>pageSize</code></strong> (number, query): The number of results to return per page. Defaults to 15.</p>\n</li>\n<li><p><strong><code>pageNumber</code></strong> (number, query): The page number of results to retrieve. Defaults to 1.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><strong>data</strong> (array): A list of audit entries, each containing details about a specific audited operation:</p>\n<ul>\n<li><p><strong>startTime</strong> (timestamp, ISO 8601): The time when the query execution started.</p>\n</li>\n<li><p><strong>status</strong> (string): The status of the query execution (e.g., Success, Failure).</p>\n</li>\n<li><p><strong>endTime</strong> (timestamp, ISO 8601): The time when the query execution ended.</p>\n</li>\n<li><p><strong>duration</strong> (number): The duration of the query execution in milliseconds.</p>\n</li>\n<li><p><strong>query</strong> (string): The SQL query that was executed.</p>\n</li>\n<li><p><strong>userEmail</strong> (string): The email address of the user who executed the query.</p>\n</li>\n<li><p><strong>datasourceType</strong> (string): The type of data source used for the query (e.g., Databricks, Snowflake).</p>\n</li>\n<li><p><strong>source</strong> (string): The source from which the query was initiated (e.g., Connector, API).</p>\n</li>\n<li><p><strong>id</strong> (string): The unique identifier for the query or operation.</p>\n</li>\n</ul>\n<p><strong>pagination</strong> (object): Contains pagination details for the response.</p>\n<ul>\n<li><p><strong>totalRecords</strong> (number): The total number of query audit entries available.</p>\n</li>\n<li><p><strong>currentPage</strong> (number): The current page number in the results.</p>\n</li>\n<li><p><strong>totalPages</strong> (number): The total number of pages available.</p>\n</li>\n<li><p><strong>pageSize</strong> (number): The number of query audit entries returned per page.</p>\n</li>\n<li><p><strong>nextPage</strong> (number or null): The page number of the next page, or <code>null</code> if there are no more pages.</p>\n</li>\n<li><p><strong>prevPage</strong> (number or null): The page number of the previous page, or <code>null</code> if it is the first page.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","query-audit"],"host":["platform","pvml","com"],"query":[{"key":null,"value":null},{"key":"projectionColumns","value":"id,query,duration,source,startTime,status,endTime,userEmail,datasourceType,userQuestion,id"},{"key":"pageSize","value":"15"},{"key":"pageNumber","value":"1"}],"variable":[]}},"response":[{"id":"877de5eb-8a69-4459-bf69-eae07bcd59a6","name":"Get Audit Records - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/query-audit?&projectionColumns=id,query,duration,source,startTime,status,endTime,userEmail,datasourceType,userQuestion,id&pageSize=15&pageNumber=1","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","query-audit"],"query":[{"key":null,"value":null},{"key":"projectionColumns","value":"id,query,duration,source,startTime,status,endTime,userEmail,datasourceType,userQuestion,id"},{"key":"pageSize","value":"15"},{"key":"pageNumber","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 16 Jan 2025 08:25:30 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"7120"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"1bd0-qGStOpsp45WRcGYa4QxbsbJIcEY\""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"startTime\": \"2025-01-15T14:18:29.786Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:18:29.824Z\",\n            \"duration\": 38,\n            \"query\": \"select `account_id`,\\r\\n    count(`address_country_iso3`) as `C1`\\r\\nfrom `demo_catalog`.`schema_1`.`accounts`\\r\\ngroup by `account_id`\\r\\nlimit 1000001\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c3b58a830bd8c9b574de\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:18:25.144Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:18:25.2Z\",\n            \"duration\": 56,\n            \"query\": \"select `account_id`\\r\\nfrom `demo_catalog`.`schema_1`.`accounts`\\r\\ngroup by `account_id`\\r\\nlimit 1000001\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c3b18a830bd8c9b574dc\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:48.683Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:48.734Z\",\n            \"duration\": 51,\n            \"query\": \"select cast(count(distinct(`account_id`)) as DOUBLE) + cast(max(`C1`) as DOUBLE) as `C1`,\\r\\n    cast(count(distinct(`branch_id`)) as DOUBLE) + cast(max(`C2`) as DOUBLE) as `C2`\\r\\nfrom \\r\\n(\\r\\n    select `account_id`,\\r\\n        `branch_id`,\\r\\n        case\\r\\n            when `account_id` is null\\r\\n            then 1\\r\\n            else 0\\r\\n        end as `C1`,\\r\\n        case\\r\\n            when `branch_id` is null\\r\\n            then 1\\r\\n            else 0\\r\\n        end as `C2`\\r\\n    from `demo_catalog`.`schema_1`.`accounts`\\r\\n) as `ITBL`\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c3148a830bd8c9b574da\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:48.667Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:48.705Z\",\n            \"duration\": 38,\n            \"query\": \"select cast(count(distinct(`branch_id`)) as DOUBLE) + cast(max(`C1`) as DOUBLE) as `C1`\\r\\nfrom \\r\\n(\\r\\n    select `branch_id`,\\r\\n        case\\r\\n            when `branch_id` is null\\r\\n            then 1\\r\\n            else 0\\r\\n        end as `C1`\\r\\n    from `demo_catalog`.`schema_1`.`bank_branches`\\r\\n) as `ITBL`\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c3148a830bd8c9b574d8\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:46.786Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:46.82Z\",\n            \"duration\": 34,\n            \"query\": \"select cast(count(distinct(`processing_branch_id`)) as DOUBLE) + cast(max(`C1`) as DOUBLE) as `C1`,\\r\\n    cast(count(distinct(`account_id`)) as DOUBLE) + cast(max(`C2`) as DOUBLE) as `C2`\\r\\nfrom \\r\\n(\\r\\n    select `account_id`,\\r\\n        `processing_branch_id`,\\r\\n        case\\r\\n            when `processing_branch_id` is null\\r\\n            then 1\\r\\n            else 0\\r\\n        end as `C1`,\\r\\n        case\\r\\n            when `account_id` is null\\r\\n            then 1\\r\\n            else 0\\r\\n        end as `C2`\\r\\n    from `demo_catalog`.`schema_1`.`transactions`\\r\\n) as `ITBL`\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c3128a830bd8c9b574d6\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:41.37Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:41.407Z\",\n            \"duration\": 37,\n            \"query\": \"select `account_id`,\\r\\n    `holder_first_name`,\\r\\n    `holder_last_name`,\\r\\n    `holder_date_of_birth`,\\r\\n    `address_city`,\\r\\n    `address_country_iso3`,\\r\\n    `is_business`,\\r\\n    `income`,\\r\\n    `branch_id`\\r\\nfrom `demo_catalog`.`schema_1`.`accounts`\\r\\norder by `account_id`\\r\\nlimit 1000\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c30d8a830bd8c9b574d4\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:40.846Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:40.882Z\",\n            \"duration\": 36,\n            \"query\": \"select `branch_id`,\\r\\n    `branch_city`,\\r\\n    `branch_country_iso3`,\\r\\n    `branch_name`,\\r\\n    `parent_bank`\\r\\nfrom `demo_catalog`.`schema_1`.`bank_branches`\\r\\norder by `branch_id`\\r\\nlimit 1000\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c30c8a830bd8c9b574d2\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:40.321Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:40.357Z\",\n            \"duration\": 36,\n            \"query\": \"use CATALOG `demo_catalog`\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c30c8a830bd8c9b574d0\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:38.958Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:38.995Z\",\n            \"duration\": 37,\n            \"query\": \"select `transaction_id`,\\r\\n    `transaction_datetime`,\\r\\n    `amount`,\\r\\n    `deposit_or_withdrawal`,\\r\\n    `place_of_business`,\\r\\n    `account_id`,\\r\\n    `processing_branch_id`,\\r\\n    `balance`\\r\\nfrom `demo_catalog`.`schema_1`.`transactions`\\r\\norder by `transaction_id`\\r\\nlimit 1000\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c30a8a830bd8c9b574ce\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:34.67Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:34.714Z\",\n            \"duration\": 44,\n            \"query\": \"select `transaction_id`,\\r\\n    `transaction_datetime`,\\r\\n    `amount`,\\r\\n    `deposit_or_withdrawal`,\\r\\n    `place_of_business`,\\r\\n    `account_id`,\\r\\n    `processing_branch_id`,\\r\\n    `balance`\\r\\nfrom `demo_catalog`.`schema_1`.`transactions`\\r\\norder by `transaction_id`\\r\\nlimit 200\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c3068a830bd8c9b574cc\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:31.276Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:31.313Z\",\n            \"duration\": 37,\n            \"query\": \"select `branch_id`,\\r\\n    `branch_city`,\\r\\n    `branch_country_iso3`,\\r\\n    `branch_name`,\\r\\n    `parent_bank`\\r\\nfrom `demo_catalog`.`schema_1`.`bank_branches`\\r\\norder by `branch_id`\\r\\nlimit 200\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c3038a830bd8c9b574ca\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:23.745Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:23.783Z\",\n            \"duration\": 38,\n            \"query\": \"select `account_id`,\\r\\n    `holder_first_name`,\\r\\n    `holder_last_name`,\\r\\n    `holder_date_of_birth`,\\r\\n    `address_city`,\\r\\n    `address_country_iso3`,\\r\\n    `is_business`,\\r\\n    `income`,\\r\\n    `branch_id`\\r\\nfrom `demo_catalog`.`schema_1`.`accounts`\\r\\norder by `account_id`\\r\\nlimit 200\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c2fb8a830bd8c9b574c8\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:18.978Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:19.013Z\",\n            \"duration\": 35,\n            \"query\": \"use CATALOG `demo_catalog`\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c2f68a830bd8c9b574c6\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:09.921Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:09.956Z\",\n            \"duration\": 35,\n            \"query\": \"use CATALOG `demo_catlaog`\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c2ed8a830bd8c9b574c4\"\n        },\n        {\n            \"startTime\": \"2025-01-15T14:15:09.181Z\",\n            \"status\": \"Success\",\n            \"endTime\": \"2025-01-15T14:15:09.239Z\",\n            \"duration\": 58,\n            \"query\": \"use CATALOG `demo_catalog`\",\n            \"userEmail\": \"mayu.cohen@pvml.com\",\n            \"datasourceType\": \"Databricks\",\n            \"source\": \"Connector\",\n            \"id\": \"6787c2ed8a830bd8c9b574c2\"\n        }\n    ],\n    \"pagination\": {\n        \"totalRecords\": 1072,\n        \"currentPage\": 1,\n        \"totalPages\": 72,\n        \"pageSize\": 15,\n        \"nextPage\": 2,\n        \"prevPage\": null\n    }\n}"}],"_postman_id":"96c5f353-4a1c-4629-92c5-89685420287e"},{"name":"Get Audit Record","id":"50c714c3-fdda-4b03-9501-3b2157734ebe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{user_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/query-audit/{{audit_record_id}}?","description":"<p>This endpoint allows you to get a specific record from audit.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><strong><code>workspace_id</code></strong>(string): The unique identifier of the workspace.</p>\n</li>\n<li><p><strong><code>audit_record_id</code></strong> (string): The unique identifier of the audit record.</p>\n</li>\n</ul>\n<h3 id=\"request-body\"><strong>Request Body</strong></h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body\"><strong>Response Body</strong></h3>\n<p><strong>data</strong> (object): Contains detailed information about the record, including:</p>\n<ul>\n<li><p><strong>startTime</strong> (timestamp, ISO 8601): The start time of the operation.</p>\n</li>\n<li><p><strong>status</strong> (string): The current status of the operation (e.g., Success, Failure).</p>\n</li>\n<li><p><strong>endTime</strong> (timestamp, ISO 8601): The end time of the operation.</p>\n</li>\n<li><p><strong>duration</strong> (number): The duration of the operation in milliseconds.</p>\n</li>\n<li><p><strong>query</strong> (string): The SQL query executed during the operation.</p>\n</li>\n<li><p><strong>userId</strong> (string): Unique identifier for the user who executed the operation.</p>\n</li>\n<li><p><strong>userEmail</strong> (string): Email address of the user who executed the operation.</p>\n</li>\n<li><p><strong>datasourceId</strong> (string): Unique identifier of the data source used in the operation.</p>\n</li>\n<li><p><strong>datasourceType</strong> (string): The type of data source.</p>\n</li>\n<li><p><strong>source</strong> (string): The source from which the operation was initiated (e.g., Connector, API).</p>\n</li>\n<li><p><strong>traceId</strong> (string): Unique identifier used for tracing the operation.</p>\n</li>\n<li><p><strong>id</strong> (string): Unique identifier for the audit record.</p>\n</li>\n<li><p><strong>workspaceId</strong> (string): Unique identifier of the workspace where the operation occurred.</p>\n</li>\n<li><p><strong>viewId</strong> (string): Unique identifier for the view with which the query was executed.</p>\n</li>\n<li><p><strong>viewName</strong> (string): Name of the view with which the query was executed.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["platform","api","v1","workspaces","{{workspace_id}}","query-audit","{{audit_record_id}}"],"host":["platform","pvml","com"],"query":[{"key":"","value":null}],"variable":[]}},"response":[{"id":"a4a58ea1-32bf-40a4-b188-b4cc8c69730c","name":"Get Audit Record - 200 Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://platform.pvml.com/platform/api/v1/workspaces/{{workspace_id}}/query-audit/{{audit_record_id}}?","protocol":"https","host":["platform","pvml","com"],"path":["platform","api","v1","workspaces","{{workspace_id}}","query-audit","{{audit_record_id}}"],"query":[{"key":"","value":null}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 16 Jan 2025 08:28:07 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"668"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"29c-+UfOaSdOcfMyCzYRqYQrD5AVsNU\""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"startTime\": \"2025-01-15T14:18:29.786Z\",\n        \"status\": \"Success\",\n        \"endTime\": \"2025-01-15T14:18:29.824Z\",\n        \"duration\": 38,\n        \"query\": \"select `account_id`,\\r\\n    count(`address_country_iso3`) as `C1`\\r\\nfrom `demo_catalog`.`schema_1`.`accounts`\\r\\ngroup by `account_id`\\r\\nlimit 1000001\",\n        \"userId\": \"9fed7c7e-1d83-4795-b11c-278361dcedbb\",\n        \"userEmail\": \"mayu.cohen@pvml.com\",\n        \"datasourceId\": \"455f8a0a-2d2b-406d-a4eb-ac566c8ac914\",\n        \"datasourceType\": \"Databricks\",\n        \"source\": \"Connector\",\n        \"traceId\": \"5870090353911355690\",\n        \"id\": \"6787c3b58a830bd8c9b574de\",\n        \"workspaceId\": \"9659ea2b-6467-478c-90ae-3b7f36a48a2b\",\n        \"viewId\": \"834bfa20-2c1e-49fe-a918-1f9fa32eae12\",\n        \"viewName\": \"databricks warehouse\"\n    }\n}"}],"_postman_id":"50c714c3-fdda-4b03-9501-3b2157734ebe"}],"id":"4aac58e6-537b-4bbd-b634-c9d5f3bfb362","_postman_id":"4aac58e6-537b-4bbd-b634-c9d5f3bfb362","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","id":"ba2ccc7b-f329-47c3-8792-83dfe106125b","name":"PVML Documentation","type":"collection"}}}],"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-API-Key"},{"key":"value","value":"{{token}}"}]}},"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""]}},{"listen":"test","script":{"type":"text/javascript","exec":[""]}}],"variable":[{"id":"ee7eea7e-5492-47da-b8c5-0190d07fa8c8","key":"baseUrl","value":"https://farming-simulator.pstmn.io"}]}