Activate plugin configuration
Makes the configuration the active global configuration, which gateways pick up on their next refresh. When trusted signer keys are configured, its signature and its WASM artifacts' stored bytes are verified first. Admin only; API keys are refused.
post
https://<host>/api/v1/plugin-configurations/{configurationId}/activatebash
curl --request POST \
--url 'https://<host>/api/v1/plugin-configurations/{configurationId}/activate' \
--header 'Authorization: Bearer <token>'javascript
const response = await fetch("https://<host>/api/v1/plugin-configurations/{configurationId}/activate", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
}
});
const data = await response.json();typescript
interface ActiveConfigurationResponse {
correlation_id?: string;
item?: Record<string, unknown>;
}
const response = await fetch("https://<host>/api/v1/plugin-configurations/{configurationId}/activate", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
}
});
if (!response.ok) throw new Error(`${response.status} ${response.statusText}`);
const data: ActiveConfigurationResponse = await response.json();python
import requests
response = requests.post(
"https://<host>/api/v1/plugin-configurations/{configurationId}/activate",
headers={
"Authorization": "Bearer <token>",
},
)
response.raise_for_status()
print(response.json())go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest(http.MethodPost, "https://<host>/api/v1/plugin-configurations/{configurationId}/activate", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer <token>")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
fmt.Println(res.Status, string(data))
}java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://<host>/api/v1/plugin-configurations/{configurationId}/activate"))
.header("Authorization", "Bearer <token>")
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
}
}csharp
using System.Net.Http.Headers;
using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Post, "https://<host>/api/v1/plugin-configurations/{configurationId}/activate");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<token>");
using var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");php
<?php
$ch = curl_init('https://<host>/api/v1/plugin-configurations/{configurationId}/activate');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer <token>',
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
echo $status . " " . $response . PHP_EOL;ruby
require "net/http"
uri = URI("https://<host>/api/v1/plugin-configurations/{configurationId}/activate")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer <token>"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts "#{response.code} #{response.body}"rust
// Cargo.toml dependencies: reqwest, tokio (features "full")
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let response = reqwest::Client::new()
.post("https://<host>/api/v1/plugin-configurations/{configurationId}/activate")
.header("Authorization", "Bearer <token>")
.send()
.await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}Authorizations
BearerAuth· API key in header "Authorization" — Type "Bearer" followed by a space and a sign-in token: a Guardian Platform JWT, or an OIDC ID token in a standalone deployment.
Parameters
Path parameters
| Name | Type | Description |
|---|---|---|
configurationIdrequired | string | Configuration ID |
Responses
200OK
application/json
correlation_idstringitemplugins.ActiveConfigurationShow plugins.ActiveConfiguration
activated_atstringactivated_bystringactivation_idintegerconfigurationplugins.PluginConfigurationShow plugins.PluginConfiguration
created_atstringcreated_bystringentriesplugins.PluginConfigurationEntry[]Show properties
Array of
plugins.PluginConfigurationEntryartifact_sha256stringconfig_jsonobjectconfiguration_idstringenabledbooleangranted_capabilitiesplugins.CapabilityGrantSetShow plugins.CapabilityGrantSet
agent.badge.writeplugins.AgentBadgeWriteGrantShow plugins.AgentBadgeWriteGrant
allowed_keysstring[]
cid.resolveplugins.CIDResolveGrantShow plugins.CIDResolveGrant
max_bytesinteger
http.requestplugins.HTTPRequestGrantShow plugins.HTTPRequestGrant
allowed_methodsstring[]allowed_url_prefixesstring[]max_inflightintegermax_request_bytesintegermax_response_bytesintegertimeout_msinteger
request.body.readplugins.RequestBodyReadGrantShow plugins.RequestBodyReadGrant
max_bytesinteger
hookplugins.HookNameOne of
request.startproject.bootstrapproxy.preproxy.postrequest.endidintegermatchplugins.MatchCriteriaShow plugins.MatchCriteria
agent_idplugins.MatchRuleShow plugins.MatchRule
operatorplugins.FilterOperatorOne of
exactprefixvaluestring
gateway_pathplugins.MatchRuleShow plugins.MatchRule
operatorplugins.FilterOperatorOne of
exactprefixvaluestring
methodplugins.MatchRuleShow plugins.MatchRule
operatorplugins.FilterOperatorOne of
exactprefixvaluestring
operationplugins.MatchRuleShow plugins.MatchRule
operatorplugins.FilterOperatorOne of
exactprefixvaluestring
providerplugins.MatchRuleShow plugins.MatchRule
operatorplugins.FilterOperatorOne of
exactprefixvaluestring
upstream_pathplugins.MatchRuleShow plugins.MatchRule
operatorplugins.FilterOperatorOne of
exactprefixvaluestring
order_indexintegerplugin_definition_idintegerplugin_idstringplugin_modeplugins.PluginModeOne of
enforcementobservabilityplugin_versionstringruntimeplugins.PluginRuntimeOne of
premadewasmsecret_ref_pathsstring[]timeout_msinteger
idstringmanifest_jsonobjectmanifest_signaturestringproject_urnstringsigner_key_idstringstatusplugins.ConfigurationStatusOne of
draftactivesupersededversioninteger
configuration_idstringentry_countintegerproject_urnstringversioninteger
Examplejson
{
"correlation_id": "string",
"item": {
"activated_at": "string",
"activated_by": "string",
"activation_id": 0,
"configuration": {
"created_at": "string",
"created_by": "string",
"entries": [
{
"artifact_sha256": "string",
"config_json": {},
"configuration_id": "string",
"enabled": true,
"granted_capabilities": {
"agent.badge.write": {
"allowed_keys": [
"string"
]
},
"cid.resolve": {
"max_bytes": 0
},
"http.request": {
"allowed_methods": [
"string"
],
"allowed_url_prefixes": [
"string"
],
"max_inflight": 0,
"max_request_bytes": 0,
"max_response_bytes": 0,
"timeout_ms": 0
},
"request.body.read": {
"max_bytes": 0
}
},
"hook": "request.start",
"id": 0,
"match": {
"agent_id": {
"operator": "exact",
"value": "string"
},
"gateway_path": {
"operator": "exact",
"value": "string"
},
"method": {
"operator": "exact",
"value": "string"
},
"operation": {
"operator": "exact",
"value": "string"
},
"provider": {
"operator": "exact",
"value": "string"
},
"upstream_path": {
"operator": "exact",
"value": "string"
}
},
"order_index": 0,
"plugin_definition_id": 0,
"plugin_id": "string",
"plugin_mode": "enforcement",
"plugin_version": "string",
"runtime": "premade",
"secret_ref_paths": [
"string"
],
"timeout_ms": 0
}
],
"id": "string",
"manifest_json": {},
"manifest_signature": "string",
"project_urn": "string",
"signer_key_id": "string",
"status": "draft",
"version": 0
},
"configuration_id": "string",
"entry_count": 0,
"project_urn": "string",
"version": 0
}
}400Bad Request
application/json
codestringcorrelation_idstringmessagestring
Examplejson
{
"code": "string",
"correlation_id": "string",
"message": "string"
}401Unauthorized
application/json
codestringcorrelation_idstringmessagestring
Examplejson
{
"code": "string",
"correlation_id": "string",
"message": "string"
}403Forbidden
application/json
codestringcorrelation_idstringmessagestring
Examplejson
{
"code": "string",
"correlation_id": "string",
"message": "string"
}404Not Found
application/json
codestringcorrelation_idstringmessagestring
Examplejson
{
"code": "string",
"correlation_id": "string",
"message": "string"
}500Internal Server Error
application/json
codestringcorrelation_idstringmessagestring
Examplejson
{
"code": "string",
"correlation_id": "string",
"message": "string"
}503Plugin or artifact store not configured
application/json
codestringcorrelation_idstringmessagestring
Examplejson
{
"code": "string",
"correlation_id": "string",
"message": "string"
}