curl --request POST \
--url https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests \
--header 'Content-Type: application/json' \
--data '
{
"justification": "<string>",
"requestedSignings": 2,
"requestedWindowDuration": "<string>",
"scope": {
"command": "<string>",
"signingApplication": "<string>",
"signingApplicationHash": "<string>",
"hostname": "<string>",
"osUsername": "<string>",
"ipAddress": "<string>",
"dataHash": "<string>"
}
}
'import requests
url = "https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests"
payload = {
"justification": "<string>",
"requestedSignings": 2,
"requestedWindowDuration": "<string>",
"scope": {
"command": "<string>",
"signingApplication": "<string>",
"signingApplicationHash": "<string>",
"hostname": "<string>",
"osUsername": "<string>",
"ipAddress": "<string>",
"dataHash": "<string>"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
justification: '<string>',
requestedSignings: 2,
requestedWindowDuration: '<string>',
scope: {
command: '<string>',
signingApplication: '<string>',
signingApplicationHash: '<string>',
hostname: '<string>',
osUsername: '<string>',
ipAddress: '<string>',
dataHash: '<string>'
}
})
};
fetch('https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'justification' => '<string>',
'requestedSignings' => 2,
'requestedWindowDuration' => '<string>',
'scope' => [
'command' => '<string>',
'signingApplication' => '<string>',
'signingApplicationHash' => '<string>',
'hostname' => '<string>',
'osUsername' => '<string>',
'ipAddress' => '<string>',
'dataHash' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests"
payload := strings.NewReader("{\n \"justification\": \"<string>\",\n \"requestedSignings\": 2,\n \"requestedWindowDuration\": \"<string>\",\n \"scope\": {\n \"command\": \"<string>\",\n \"signingApplication\": \"<string>\",\n \"signingApplicationHash\": \"<string>\",\n \"hostname\": \"<string>\",\n \"osUsername\": \"<string>\",\n \"ipAddress\": \"<string>\",\n \"dataHash\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests")
.header("Content-Type", "application/json")
.body("{\n \"justification\": \"<string>\",\n \"requestedSignings\": 2,\n \"requestedWindowDuration\": \"<string>\",\n \"scope\": {\n \"command\": \"<string>\",\n \"signingApplication\": \"<string>\",\n \"signingApplicationHash\": \"<string>\",\n \"hostname\": \"<string>\",\n \"osUsername\": \"<string>\",\n \"ipAddress\": \"<string>\",\n \"dataHash\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"justification\": \"<string>\",\n \"requestedSignings\": 2,\n \"requestedWindowDuration\": \"<string>\",\n \"scope\": {\n \"command\": \"<string>\",\n \"signingApplication\": \"<string>\",\n \"signingApplicationHash\": \"<string>\",\n \"hostname\": \"<string>\",\n \"osUsername\": \"<string>\",\n \"ipAddress\": \"<string>\",\n \"dataHash\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_bodyRequest to sign
Open a request to sign with this signer (operator self-serve)
curl --request POST \
--url https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests \
--header 'Content-Type: application/json' \
--data '
{
"justification": "<string>",
"requestedSignings": 2,
"requestedWindowDuration": "<string>",
"scope": {
"command": "<string>",
"signingApplication": "<string>",
"signingApplicationHash": "<string>",
"hostname": "<string>",
"osUsername": "<string>",
"ipAddress": "<string>",
"dataHash": "<string>"
}
}
'import requests
url = "https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests"
payload = {
"justification": "<string>",
"requestedSignings": 2,
"requestedWindowDuration": "<string>",
"scope": {
"command": "<string>",
"signingApplication": "<string>",
"signingApplicationHash": "<string>",
"hostname": "<string>",
"osUsername": "<string>",
"ipAddress": "<string>",
"dataHash": "<string>"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
justification: '<string>',
requestedSignings: 2,
requestedWindowDuration: '<string>',
scope: {
command: '<string>',
signingApplication: '<string>',
signingApplicationHash: '<string>',
hostname: '<string>',
osUsername: '<string>',
ipAddress: '<string>',
dataHash: '<string>'
}
})
};
fetch('https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'justification' => '<string>',
'requestedSignings' => 2,
'requestedWindowDuration' => '<string>',
'scope' => [
'command' => '<string>',
'signingApplication' => '<string>',
'signingApplicationHash' => '<string>',
'hostname' => '<string>',
'osUsername' => '<string>',
'ipAddress' => '<string>',
'dataHash' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests"
payload := strings.NewReader("{\n \"justification\": \"<string>\",\n \"requestedSignings\": 2,\n \"requestedWindowDuration\": \"<string>\",\n \"scope\": {\n \"command\": \"<string>\",\n \"signingApplication\": \"<string>\",\n \"signingApplicationHash\": \"<string>\",\n \"hostname\": \"<string>\",\n \"osUsername\": \"<string>\",\n \"ipAddress\": \"<string>\",\n \"dataHash\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests")
.header("Content-Type", "application/json")
.body("{\n \"justification\": \"<string>\",\n \"requestedSignings\": 2,\n \"requestedWindowDuration\": \"<string>\",\n \"scope\": {\n \"command\": \"<string>\",\n \"signingApplication\": \"<string>\",\n \"signingApplicationHash\": \"<string>\",\n \"hostname\": \"<string>\",\n \"osUsername\": \"<string>\",\n \"ipAddress\": \"<string>\",\n \"dataHash\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://us.infisical.com/api/v1/cert-manager/signers/{signerId}/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"justification\": \"<string>\",\n \"requestedSignings\": 2,\n \"requestedWindowDuration\": \"<string>\",\n \"scope\": {\n \"command\": \"<string>\",\n \"signingApplication\": \"<string>\",\n \"signingApplicationHash\": \"<string>\",\n \"hostname\": \"<string>\",\n \"osUsername\": \"<string>\",\n \"ipAddress\": \"<string>\",\n \"dataHash\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_bodyPath Parameters
Body
1 - 2048x >= 1How long the approval stays usable once it is granted, for example '4h'. The window starts when the request is approved.
Optional parameters to scope this approval to (command, signingApplication, signingApplicationHash, hostname, osUsername, ipAddress, dataHash). Every value declared here must match at signing time or the sign call is denied; parameters left out are not restricted. A command must match exactly, apart from whitespace, so a different order of options is a different command. ipAddress is compared against the address the sign call arrives from and dataHash against the digest of the submitted payload, so those two hold even if a caller reports something else. A machine identity that declares a scope without naming ipAddress has it filled in with the address the request arrives from; send null to leave signing unrestricted by address.
Show child attributes
Show child attributes
Response
Default Response
Was this page helpful?