lenso-module-auth 0.2.3

First-party auth anchor module for the Lenso backend framework.
Documentation
{
  "openapi": "3.1.0",
  "info": {
    "title": "Auth Business API",
    "version": "v1"
  },
  "x-lenso-contract-id": "auth-http",
  "x-lenso-contract-version": "v1",
  "x-lenso-module-id": "auth",
  "paths": {
    "/users": {
      "get": {
        "operationId": "auth/http/GET:/users",
        "summary": "List Auth users",
        "x-lenso-capability": "auth.users.read",
        "x-lenso-idempotency": "idempotent",
        "x-lenso-connected-route": {
          "method": "GET",
          "path": "/v1/auth/console/users"
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": { "type": "integer", "minimum": 1, "maximum": 200 }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": { "type": "string", "minLength": 1 }
          }
        ],
        "responses": {
          "200": {
            "description": "Auth user page",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/UserPage" }
              }
            }
          }
        }
      }
    },
    "/sessions": {
      "get": {
        "operationId": "auth/http/GET:/sessions",
        "summary": "List Auth sessions",
        "x-lenso-capability": "auth.sessions.read",
        "x-lenso-idempotency": "idempotent",
        "x-lenso-connected-route": {
          "method": "GET",
          "path": "/v1/auth/console/sessions"
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": { "type": "integer", "minimum": 1, "maximum": 200 }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": { "type": "string", "minLength": 1 }
          }
        ],
        "responses": {
          "200": {
            "description": "Auth session page",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/SessionPage" }
              }
            }
          }
        }
      }
    },
    "/users/{userId}/disable": {
      "post": {
        "operationId": "auth/http/POST:/users/{id}/disable",
        "summary": "Disable an Auth user",
        "x-lenso-capability": "auth.users.manage",
        "x-lenso-idempotency": "idempotent",
        "x-lenso-connected-route": {
          "method": "POST",
          "path": "/v1/auth/console/users/{userId}/disable"
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "minLength": 1 }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/DisableUserInput" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Auth user disabled",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/UserMutationResult" }
              }
            }
          }
        }
      }
    },
    "/users/{userId}/enable": {
      "post": {
        "operationId": "auth/http/POST:/users/{id}/enable",
        "summary": "Enable an Auth user",
        "x-lenso-capability": "auth.users.manage",
        "x-lenso-idempotency": "idempotent",
        "x-lenso-connected-route": {
          "method": "POST",
          "path": "/v1/auth/console/users/{userId}/enable"
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "minLength": 1 }
          }
        ],
        "responses": {
          "200": {
            "description": "Auth user enabled",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/UserMutationResult" }
              }
            }
          }
        }
      }
    },
    "/sessions/{sessionId}/revoke": {
      "post": {
        "operationId": "auth/http/POST:/sessions/{id}/revoke",
        "summary": "Revoke an Auth session",
        "x-lenso-capability": "auth.sessions.revoke",
        "x-lenso-idempotency": "idempotent",
        "x-lenso-connected-route": {
          "method": "POST",
          "path": "/v1/auth/console/sessions/{sessionId}/revoke"
        },
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "minLength": 1 }
          }
        ],
        "responses": {
          "200": {
            "description": "Auth session revoke result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionMutationResult"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "User": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "is_anonymous",
          "created_at",
          "disabled_at",
          "disabled_reason",
          "disabled_until"
        ],
        "properties": {
          "id": { "type": "string" },
          "is_anonymous": { "type": "boolean" },
          "created_at": { "type": "string", "format": "date-time" },
          "disabled_at": { "type": ["string", "null"], "format": "date-time" },
          "disabled_reason": { "type": ["string", "null"] },
          "disabled_until": {
            "type": ["string", "null"],
            "format": "date-time"
          }
        }
      },
      "Session": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "user_id",
          "device_id",
          "client_ip",
          "user_agent",
          "created_at",
          "expires_at",
          "revoked_at"
        ],
        "properties": {
          "id": { "type": "string" },
          "user_id": { "type": "string" },
          "device_id": { "type": ["string", "null"] },
          "client_ip": { "type": ["string", "null"] },
          "user_agent": { "type": ["string", "null"] },
          "created_at": { "type": "string", "format": "date-time" },
          "expires_at": { "type": "string", "format": "date-time" },
          "revoked_at": { "type": ["string", "null"], "format": "date-time" }
        }
      },
      "UserPage": {
        "type": "object",
        "additionalProperties": false,
        "required": ["records", "next_cursor"],
        "properties": {
          "records": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/User" }
          },
          "next_cursor": { "type": ["string", "null"] }
        }
      },
      "SessionPage": {
        "type": "object",
        "additionalProperties": false,
        "required": ["records", "next_cursor"],
        "properties": {
          "records": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/Session" }
          },
          "next_cursor": { "type": ["string", "null"] }
        }
      },
      "DisableUserInput": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "reason": { "type": "string" },
          "disabled_until": { "type": "string", "format": "date-time" }
        }
      },
      "UserMutationResult": {
        "type": "object",
        "additionalProperties": false,
        "required": ["user_id", "changed"],
        "properties": {
          "user_id": { "type": "string" },
          "changed": { "type": "boolean" }
        }
      },
      "SessionMutationResult": {
        "type": "object",
        "additionalProperties": false,
        "required": ["session_id", "revoked"],
        "properties": {
          "session_id": { "type": "string" },
          "revoked": { "type": "boolean" }
        }
      }
    }
  }
}