Depot profilepreview
Registers POST /api/v1/profiles/preview.
This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.
POST /api/v1/profiles/preview
Section titled “POST /api/v1/profiles/preview”POSTprofile:readtenant facehosteditmspremote
From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.
Source: [object Object]
previewProfiles shows what every endpoint would enforce if the proposed profile edits were saved, against what it enforces now.
Request body
Section titled “Request body”Required, sent as application/json.
| Field | Type | Description |
|---|---|---|
agentIdsrequired | array of string | |
profilesrequired | array of PreviewProfile | |
profiles[].assignments | array of PreviewAssignment or null | |
profiles[].assignments[].mandatoryrequired | boolean | |
profiles[].assignments[].rank | integer or null | |
profiles[].assignments[].scopeIdrequired | string | |
profiles[].assignments[].scopeTyperequired | string | |
profiles[].publicId | string or null | |
profiles[].settings | array of PreviewSetting or null | |
profiles[].settings[].isSet | boolean or null | |
profiles[].settings[].mandatoryrequired | boolean | |
profiles[].settings[].osFamilyrequired | string | |
profiles[].settings[].settingKeyrequired | string | |
profiles[].settings[].valuerequired | any | Arbitrary JSON. |
Responses
Section titled “Responses”| Status | Body | Description |
|---|---|---|
200 | application/json, PreviewResultView | Success. |
400 | application/problem+json, ProblemDetails | The request body is not valid JSON. |
401 | application/problem+json, ProblemDetails | No signed-in identity. |
403 | application/problem+json, ProblemDetails | The identity does not hold profile:read. |
500 | application/problem+json, ProblemDetails | No client store in request context. |
200 response body
| Field | Type | Description |
|---|---|---|
endpointsrequired | array of PreviewEndpointView | |
endpoints[].afterrequired | object | |
endpoints[].agentIdrequired | string | |
endpoints[].beforerequired | object | |
endpoints[].changedKeysrequired | array of string | |
endpoints[].fallbacksrequired | object | |
endpoints[].hostnamerequired | string | |
endpoints[].issuesrequired | array of EffectiveIssueView | |
endpoints[].issues[].detail | string | |
endpoints[].issues[].key | string | |
endpoints[].issues[].kindrequired | string | |
endpoints[].issues[].profileIds | array of string | |
endpoints[].renderIssuesrequired | array of RenderIssueView | |
endpoints[].renderIssues[].coderequired | string | |
endpoints[].renderIssues[].detailrequired | string | |
endpoints[].renderIssues[].keyrequired | string | |
evaluatedrequired | integer | |
truncatedrequired | boolean |
Request samples
Section titled “Request samples”# Sign in first. outpost_console is a session cookie, so send it with every request.curl -X POST 'https://depot.example.com/api/v1/profiles/preview' \ -H 'X-CSRF-Token: <csrf-token>' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -b 'outpost_console=<console-session>' \ --data '{ "agentIds": [ "string" ], "profiles": [ { "assignments": [ { "mandatory": false, "rank": 0, "scopeId": "string", "scopeType": "string" } ], "publicId": "string", "settings": [ { "isSet": false, "mandatory": false, "osFamily": "string", "settingKey": "string", "value": "string" } ] } ]}'# Sign in first. outpost_console is a session cookie, so send it with every request.
$headers = @{ 'X-CSRF-Token' = '<csrf-token>' 'Accept' = 'application/json' 'Content-Type' = 'application/json' 'Cookie' = 'outpost_console=<console-session>'}
$body = @'{ "agentIds": [ "string" ], "profiles": [ { "assignments": [ { "mandatory": false, "rank": 0, "scopeId": "string", "scopeType": "string" } ], "publicId": "string", "settings": [ { "isSet": false, "mandatory": false, "osFamily": "string", "settingKey": "string", "value": "string" } ] } ]}'@
$response = Invoke-RestMethod ` -Method Post ` -Uri 'https://depot.example.com/api/v1/profiles/preview' ` -Headers $headers ` -ContentType 'application/json' ` -Body $body
$response | ConvertTo-Json -Depth 10# Sign in first. outpost_console is a session cookie, so send it with every request.
import requests
url = "https://depot.example.com/api/v1/profiles/preview"headers = { "X-CSRF-Token": "<csrf-token>", "Accept": "application/json", "Content-Type": "application/json",}cookies = { "outpost_console": "<console-session>",}payload = { "agentIds": [ "string", ], "profiles": [ { "assignments": [ { "mandatory": False, "rank": 0, "scopeId": "string", "scopeType": "string", }, ], "publicId": "string", "settings": [ { "isSet": False, "mandatory": False, "osFamily": "string", "settingKey": "string", "value": "string", }, ], }, ],}
response = requests.post(url, headers=headers, cookies=cookies, json=payload, timeout=30)response.raise_for_status()print(response.json())// Sign in first. outpost_console is a session cookie, so send it with every request.package main
import ( "bytes" "fmt" "io" "log" "net/http")
func main() { body := []byte(`{ "agentIds": [ "string" ], "profiles": [ { "assignments": [ { "mandatory": false, "rank": 0, "scopeId": "string", "scopeType": "string" } ], "publicId": "string", "settings": [ { "isSet": false, "mandatory": false, "osFamily": "string", "settingKey": "string", "value": "string" } ] } ]}`)
req, err := http.NewRequest(http.MethodPost, "https://depot.example.com/api/v1/profiles/preview", bytes.NewReader(body)) if err != nil { log.Fatal(err) }
req.Header.Set("X-CSRF-Token", "<csrf-token>") req.Header.Set("Accept", "application/json") req.Header.Set("Content-Type", "application/json") req.AddCookie(&http.Cookie{Name: "outpost_console", Value: "<console-session>"})
resp, err := http.DefaultClient.Do(req) if err != nil { log.Fatal(err) } defer resp.Body.Close()
out, err := io.ReadAll(resp.Body) if err != nil { log.Fatal(err) } fmt.Println(resp.Status, string(out))}// Sign in first. outpost_console is a session cookie, so send it with every request.// The session cookie is set by signing in. A script cannot set it itself.
const url = "https://depot.example.com/api/v1/profiles/preview";
const response = await fetch(url, { method: "POST", headers: { "X-CSRF-Token": "<csrf-token>", "Accept": "application/json", "Content-Type": "application/json", }, credentials: "include", body: JSON.stringify({ "agentIds": [ "string" ], "profiles": [ { "assignments": [ { "mandatory": false, "rank": 0, "scopeId": "string", "scopeType": "string" } ], "publicId": "string", "settings": [ { "isSet": false, "mandatory": false, "osFamily": "string", "settingKey": "string", "value": "string" } ] } ] }),});
if (!response.ok) { throw new Error(`Request failed with status ${response.status}`);}
const data = await response.json();console.log(data);// Sign in first. outpost_console is a session cookie, so send it with every request.
using System;using System.Net.Http;using System.Text;
using var client = new HttpClient();
const string body = """{ "agentIds": [ "string" ], "profiles": [ { "assignments": [ { "mandatory": false, "rank": 0, "scopeId": "string", "scopeType": "string" } ], "publicId": "string", "settings": [ { "isSet": false, "mandatory": false, "osFamily": "string", "settingKey": "string", "value": "string" } ] } ]}""";
var request = new HttpRequestMessage(HttpMethod.Post, "https://depot.example.com/api/v1/profiles/preview");request.Headers.TryAddWithoutValidation("X-CSRF-Token", "<csrf-token>");request.Headers.TryAddWithoutValidation("Accept", "application/json");request.Headers.TryAddWithoutValidation("Cookie", "outpost_console=<console-session>");request.Content = new StringContent(body, Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);response.EnsureSuccessStatusCode();Console.WriteLine(await response.Content.ReadAsStringAsync());Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.