libresign/openapi-administration.json
Vitor Mattos c748950115
fix: cfsslUri is optional value
Signed-off-by: Vitor Mattos <vitor@php.rio>
2024-07-23 19:41:11 -03:00

792 lines
33 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "libresign-administration",
"version": "0.0.1",
"description": "✍️ Self-hosted document signer using digital certificate",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"CetificateDataGenerated": {
"allOf": [
{
"$ref": "#/components/schemas/EngineHandler"
},
{
"type": "object",
"required": [
"generated"
],
"properties": {
"generated": {
"type": "boolean"
}
}
}
]
},
"ConfigureCheck": {
"type": "object",
"required": [
"message",
"resource",
"status",
"tip"
],
"properties": {
"message": {
"type": "string"
},
"resource": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"error",
"success"
]
},
"tip": {
"type": "string"
}
}
},
"EngineHandler": {
"type": "object",
"required": [
"configPath",
"rootCert"
],
"properties": {
"configPath": {
"type": "string"
},
"cfsslUri": {
"type": "string"
},
"rootCert": {
"$ref": "#/components/schemas/RootCertificate"
}
}
},
"OCSMeta": {
"type": "object",
"required": [
"status",
"statuscode"
],
"properties": {
"status": {
"type": "string"
},
"statuscode": {
"type": "integer"
},
"message": {
"type": "string"
},
"totalitems": {
"type": "string"
},
"itemsperpage": {
"type": "string"
}
}
},
"RootCertificate": {
"type": "object",
"required": [
"commonName",
"names"
],
"properties": {
"commonName": {
"type": "string"
},
"names": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RootCertificateName"
}
}
}
},
"RootCertificateName": {
"type": "object",
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"paths": {
"/ocs/v2.php/apps/libresign/api/{apiVersion}/admin/certificate/cfssl": {
"post": {
"operationId": "admin-generate-certificate-cfssl",
"summary": "Generate certificate using CFSSL engine",
"description": "This endpoint requires admin access",
"tags": [
"admin"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"rootCert"
],
"properties": {
"rootCert": {
"type": "object",
"description": "fields of root certificate",
"required": [
"commonName",
"names"
],
"properties": {
"commonName": {
"type": "string"
},
"names": {
"type": "object",
"additionalProperties": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"type": "string"
}
}
}
}
}
},
"cfsslUri": {
"type": "string",
"default": "",
"description": "URI of CFSSL API"
},
"configPath": {
"type": "string",
"default": "",
"description": "Path of config files of CFSSL"
}
}
}
}
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EngineHandler"
}
}
}
}
}
}
}
}
}
},
"401": {
"description": "Account not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/libresign/api/{apiVersion}/admin/certificate/openssl": {
"post": {
"operationId": "admin-generate-certificate-open-ssl",
"summary": "Generate certificate using OpenSSL engine",
"description": "This endpoint requires admin access",
"tags": [
"admin"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"rootCert"
],
"properties": {
"rootCert": {
"type": "object",
"description": "fields of root certificate",
"required": [
"commonName",
"names"
],
"properties": {
"commonName": {
"type": "string"
},
"names": {
"type": "object",
"additionalProperties": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"type": "string"
}
}
}
}
}
},
"configPath": {
"type": "string",
"default": "",
"description": "Path of config files of CFSSL"
}
}
}
}
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EngineHandler"
}
}
}
}
}
}
}
}
}
},
"401": {
"description": "Account not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/libresign/api/{apiVersion}/admin/certificate": {
"get": {
"operationId": "admin-load-certificate",
"summary": "Load certificate data",
"description": "Return all data of root certificate and a field called `generated` with a boolean value.\nThis endpoint requires admin access",
"tags": [
"admin"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"$ref": "#/components/schemas/CetificateDataGenerated"
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/libresign/api/{apiVersion}/admin/configure-check": {
"get": {
"operationId": "admin-configure-check",
"summary": "Check the configuration of LibreSign",
"description": "Return the status of necessary configuration and tips to fix the problems.\nThis endpoint requires admin access",
"tags": [
"admin"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ConfigureCheck"
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/libresign/api/{apiVersion}/admin/disable-hate-limit": {
"get": {
"operationId": "admin-disable-hate-limit",
"summary": "Disable hate limit to current session",
"description": "This will disable hate limit to current session.\nThis endpoint requires admin access",
"tags": [
"admin"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/libresign/api/{apiVersion}/setting/has-root-cert": {
"get": {
"operationId": "setting-has-root-cert",
"summary": "Has root certificate",
"description": "Checks whether the root certificate has been configured by checking the Nextcloud configuration table to see if the root certificate settings have",
"tags": [
"setting"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"hasRootCert"
],
"properties": {
"hasRootCert": {
"type": "boolean"
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"tags": []
}