Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions content/operate/rs/references/rest-api/api-reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
Title: Redis Enterprise API
linkTitle: API reference
layout: apireference
type: page
---
243 changes: 243 additions & 0 deletions content/operate/rs/references/rest-api/api-reference/openapi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
{
"openapi": "3.0.3",
"info": {
"title": "Authentication Service REST API",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"title": "Authentication Service REST API",
"title": "Redis Enterprise Software REST API",

"description": "REST API for the Authentication Service, primarily used for exposing SSO related endpoints.",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sonya-spasova, if there's not a good way to add a work-in-progress banner to the new API reference page, maybe just adding something like this to the description will be good enough? I tested this change in my local env and was able to see the message under the page title.

Suggested change
"description": "REST API for the Authentication Service, primarily used for exposing SSO related endpoints.",
"description": "Redis Enterprise Software REST API reference. This API reference is still a work in progress. For more API paths, see the [REST API requests](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/) reference pages.",

"version": "1.0.0"
},
"servers": [
{
"url": "https://localhost:9443"
}
],
"paths": {
"/v1/auth/sso/saml/login": {
"get": {
"x-stability-level": "stable",
"x-publish-docs": true,
"summary": "Starts SP-initiated SAML login flow",
"description": "Generates a redirect URL to the IdP for SAML authentication.",
"operationId": "login",
"tags": [
"Auth"
],
"parameters": [
{
"name": "relayState",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "An optional relay state to be included in the SAML request."
}
],
"responses": {
"200": {
"$ref": "#/components/responses/SamlLoginResponse"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"500": {
"$ref": "#/components/responses/InternalServerError"
}
}
}
},
"/v1/auth/sso/saml/callback": {
"post": {
"x-stability-level": "stable",
"x-publish-docs": true,
"summary": "Handles SAML response from IdP",
"description": "Processes the SAML response from the IdP",
"operationId": "callback",
"tags": [
"Auth"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"SAMLResponse"
],
"properties": {
"SAMLResponse": {
"type": "string",
"description": "Base64-encoded SAML response from the IdP."
},
"TTL": {
"type": "integer",
"x-go-type": "uint32",
"description": "Time-to-live (TTL) of the token in seconds"
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/SamlCallbackResponse"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"500": {
"$ref": "#/components/responses/InternalServerError"
}
}
}
},
"/v1/auth/sso/saml/logout": {
"get": {
"x-stability-level": "stable",
"x-publish-docs": true,
"summary": "Starts SP-initiated SAML logout flow",
"description": "Generates a redirect URL to the IdP for SAML logout.",
"operationId": "logout",
"tags": [
"Auth"
],
"security": [
{
"jwtAuth": []
}
],
"responses": {
"200": {
"$ref": "#/components/responses/SamlLogoutResponse"
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"500": {
"$ref": "#/components/responses/InternalServerError"
}
}
}
}
},
"components": {
"securitySchemes": {
"jwtAuth": {
"type": "apiKey",
"in": "header",
"name": "Authorization"
}
},
"schemas": {
"Error": {
"required": [
"error_code",
"description",
"status_code"
],
"properties": {
"error_code": {
"type": "string",
"description": "Semantic error code"
},
"description": {
"type": "string",
"description": "Human-readable error description"
},
"status_code": {
"type": "integer",
"x-go-json-ignore": true
}
}
}
},
"responses": {
"SamlLoginResponse": {
"description": "Successful response containing the redirect URL.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"redirectUrl": {
"type": "string",
"description": "The URL to redirect the user to for SAML authentication."
}
}
}
}
}
},
"SamlCallbackResponse": {
"description": "Successful response after processing a SAML response.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"access_token": {
"type": "string",
"description": "JWT access token for the authenticated user"
},
"uid": {
"type": "string",
"description": "Unique identifier for the authenticated user"
}
}
}
}
}
},
"SamlLogoutResponse": {
"description": "Successful response containing the redirect URL.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"redirectUrl": {
"type": "string",
"description": "The URL to redirect the user to for SAML logout."
}
}
}
}
}
},
"BadRequest": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"Unauthorized": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"InternalServerError": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
}