PassiveLogic Authentication API

Routes related to user auth

OpenAPI Specification

passivelogic-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 0.0.0
  description: 'This page documents the operations supported by the PassiveLogic HTTP API, covering authentication,
    user management, and

    GraphQL API access.'
  title: PassiveLogic REST Authentication API
tags:
- description: Routes related to user auth
  name: Authentication
paths:
  /api/v0.20/auth/email/change/verify:
    get:
      deprecated: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatedUserEmail'
            examples:
              UpdatedUserEmail:
                $ref: '#/components/examples/UpdatedUserEmail'
        required: true
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Verifies and updates new user email
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Verifies the new email is valid. Updates the user email with the newly validated one.


        Token authentication required. Provided by /api/v0.20/auth/email/change.'
      responses:
        '200':
          content:
            application/json:
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
          description: OK
      operationId: getApiV0.20AuthEmailChangeVerify
  /api/auth/magic-link-generate:
    post:
      deprecated: true
      requestBody:
        content:
          application/json:
            examples:
              UserRegistrationInitiation:
                $ref: '#/components/examples/UserRegistrationInitiation'
            schema:
              $ref: '#/components/schemas/UserRegistrationInitiation'
        required: true
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Generates a Magic Link to be used to login.
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Generates magic link containing `?token=<signed JWT with user email contained>` and sends it in
        an email to the user.

        This is the secure mode and MUST be used in production.

        This will not return a link to the client.


        If User does not exist in Database, will throw 400 bad request. If user exists, will return 200
        ok.

        These links can then be used to login from GET magic-link-login.'
      operationId: postApiAuthMagic-link-generate
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MagicLinkResponse'
          description: OK
  /api/v0.19/auth/email/change/verify:
    get:
      deprecated: true
      requestBody:
        required: true
        content:
          application/json:
            examples:
              UpdatedUserEmail:
                $ref: '#/components/examples/UpdatedUserEmail'
            schema:
              $ref: '#/components/schemas/UpdatedUserEmail'
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Verifies and updates new user email
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Verifies the new email is valid. Updates the user email with the newly validated one.


        Token authentication required. Provided by /api/v0.19/auth/email/change.'
      tags:
      - Authentication
      operationId: getApiV0.19AuthEmailChangeVerify
      responses:
        '200':
          content:
            application/json:
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
          description: OK
  /api/auth/email/change/verify:
    get:
      deprecated: true
      requestBody:
        required: true
        content:
          application/json:
            examples:
              UpdatedUserEmail:
                $ref: '#/components/examples/UpdatedUserEmail'
            schema:
              $ref: '#/components/schemas/UpdatedUserEmail'
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Verifies and updates new user email
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Verifies the new email is valid. Updates the user email with the newly validated one.


        Token authentication required. Provided by /api/auth/email/change.'
      operationId: getApiAuthEmailChangeVerify
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
  /api/auth/password/change:
    post:
      deprecated: true
      requestBody:
        content:
          application/json:
            examples:
              ChangeUserPassword:
                $ref: '#/components/examples/ChangeUserPassword'
            schema:
              $ref: '#/components/schemas/ChangeUserPassword'
        required: true
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Changes a user's password for an already authenticated user.
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Changes an authenticated user''s password to the specified value.'
      operationId: postApiAuthPasswordChange
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
          description: OK
    get:
      tags:
      - Authentication
      operationId: getApiAuthPasswordChange
      description: ''
      summary: Redirects the user to the change password flow in the external auth provider (Keycloak).
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
  /api/v0.19/auth/password/reset:
    post:
      deprecated: true
      requestBody:
        required: true
        content:
          application/json:
            examples:
              RequestResetPasswordData:
                $ref: '#/components/examples/RequestResetPasswordData'
            schema:
              $ref: '#/components/schemas/RequestResetPasswordData'
      summary: Initiates a password reset.
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Initiates a password reset for the given user, sending them an email with a password reset link
        authenticated to their

        account only.'
      operationId: postApiV0.19AuthPasswordReset
      responses:
        '200':
          content:
            application/json:
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
          description: OK
  /api/v0.20/auth/login:
    get:
      deprecated: true
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Logs in a user
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Logs in a user. If multi-factor authentication is enabled, returns a multi-factor token that can
        be used to

        send a multi-factor code to the user. Otherwise, sets auth & refresh tokens as cookies and returns
        a whoami for the

        logged in user.


        Basic authentication required.'
      operationId: getApiV0.20AuthLogin
      responses:
        '200':
          content:
            application/json:
              examples:
                LoginResponse:
                  $ref: '#/components/examples/LoginResponse'
              schema:
                $ref: '#/components/schemas/LoginResponse'
          description: OK
  /api/v0.19/auth/login:
    get:
      deprecated: true
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Logs in a user
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Logs in a user. If multi-factor authentication is enabled, returns a multi-factor token that can
        be used to

        send a multi-factor code to the user. Otherwise, sets auth & refresh tokens as cookies and returns
        a whoami for the

        logged in user.


        Basic authentication required.'
      operationId: getApiV0.19AuthLogin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginResponse'
              examples:
                LoginResponse:
                  $ref: '#/components/examples/LoginResponse'
          description: OK
  /api/v0.20/auth/api-key:
    delete:
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      requestBody:
        content:
          application/json:
            examples:
              RemoveApiKeyRequest:
                $ref: '#/components/examples/RemoveApiKeyRequest'
            schema:
              $ref: '#/components/schemas/RemoveApiKeyRequest'
        required: true
      summary: Removes a given API key for the user
      tags:
      - Authentication
      description: Validates that the given token is linked to the currently authenticated user and removes
        it if so.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateApiKeyResponse'
              examples:
                GenerateApiKeyResponse:
                  $ref: '#/components/examples/GenerateApiKeyResponse'
      operationId: deleteApiV0.20AuthApi-key
  /api/auth/register:
    post:
      deprecated: true
      requestBody:
        content:
          application/json:
            examples:
              RegisterUserData:
                $ref: '#/components/examples/RegisterUserData'
            schema:
              $ref: '#/components/schemas/RegisterUserData'
        required: true
      summary: Registers a new user
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Creates a new user based on the provided information. Requires jwt obtained via email from

        `/api/auth/register/initiate`. The user status is set to `Active` and immediately logged in.




        Registration token is required when email verification is enforced, as indicated by a failed response
        to this endpoint'
      operationId: postApiAuthRegister
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                RegisterUserResponse:
                  $ref: '#/components/examples/RegisterUserResponse'
              schema:
                $ref: '#/components/schemas/RegisterUserResponse'
  /api/auth/login:
    get:
      deprecated: true
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Logs in a user
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Logs in a user. If multi-factor authentication is enabled, returns a multi-factor token that can
        be used to

        send a multi-factor code to the user. Otherwise, sets auth & refresh tokens as cookies and returns
        a whoami for the

        logged in user.


        Basic authentication required.'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginResponse'
              examples:
                LoginResponse:
                  $ref: '#/components/examples/LoginResponse'
          description: OK
      operationId: getApiAuthLogin
  /api/v0.20/auth/logout:
    post:
      description: 'If external auth (Keycloak) is enabled, this initiates the external logout process.


        Otherwise, if a cookie keyed by pl-refresh-token is provided in the logout request, that refresh
        token is revoked.


        The response sets the auth & refresh cookies to empty values & marks them as expired.

        New tokens must then be generated by the login endpoint.'
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      tags:
      - Authentication
      operationId: postApiV0.20AuthLogout
      summary: Logs out a user
  /api/v0.19/auth/zendesk:
    get:
      description: 'Redirects a user to the PassiveLogic Zendesk portal.

        If they are already authenticated with their PL account when making this request,

        they will be automatically logged in to Zendesk as well. Otherwise they will be redirected to
        the Zendesk login page.

        A `returnTo` query parameter can be used to support deep linking to, for example, specific support
        articles.'
      summary: Logs a user in to Zendesk using their PL Account
      operationId: getApiV0.19AuthZendesk
      tags:
      - Authentication
  /api/v0.19/auth/verify:
    get:
      description: 'Redirects user to `/api/v0.19/auth/login`, passing along the provided valid jwt and
        email.


        Exists in this form for backward compatibility.'
      parameters:
      - description: User's email to confirm as verified
        required: true
        example: darthvader@galactic-empire.com
        name: email
        schema:
          type: string
        in: query
      operationId: getApiV0.19AuthVerify
      summary: Redirects user to login
      tags:
      - Authentication
  /api/auth/keys:
    get:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JWKS'
      tags:
      - Authentication
      description: 'Returns the public keys used to sign the JSON web tokens so their authenticity can
        be verified. These are served in the

        standard JSON Web Key format: https://www.rfc-editor.org/rfc/rfc7517'
      summary: Returns the public keys used to sign PassiveLogic JSON web tokens.
      operationId: getApiAuthKeys
  /api/auth/password/reset:
    post:
      deprecated: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestResetPasswordData'
            examples:
              RequestResetPasswordData:
                $ref: '#/components/examples/RequestResetPasswordData'
        required: true
      summary: Initiates a password reset.
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Initiates a password reset for the given user, sending them an email with a password reset link
        authenticated to their

        account only.'
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
      operationId: postApiAuthPasswordReset
  /api/v0.20/auth/whoami:
    get:
      summary: Returns information about the currently logged in user.
      description: Useful to check if a user is authenticated.
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      operationId: getApiV0.20AuthWhoami
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhoAmIResponse'
              examples:
                WhoAmIResponse:
                  $ref: '#/components/examples/WhoAmIResponse'
      tags:
      - Authentication
  /api/v0.20/auth/verify:
    get:
      parameters:
      - description: User's email to confirm as verified
        example: darthvader@galactic-empire.com
        required: true
        schema:
          type: string
        name: email
        in: query
      description: 'Redirects user to `/api/v0.20/auth/login`, passing along the provided valid jwt and
        email.


        Exists in this form for backward compatibility.'
      tags:
      - Authentication
      summary: Redirects user to login
      operationId: getApiV0.20AuthVerify
  /api/auth/magic-link-login:
    get:
      deprecated: true
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Logs in a user using Magic Link generated by POST magic-link-generate
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Requires a magic login link containing containing `?token=<signed JWT with user email contained>`.

        This is the secure mode and MUST be used in production.'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
          description: OK
      operationId: getApiAuthMagic-link-login
  /api/v0.19/auth/register:
    post:
      deprecated: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterUserData'
            examples:
              RegisterUserData:
                $ref: '#/components/examples/RegisterUserData'
        required: true
      summary: Registers a new user
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Creates a new user based on the provided information. Requires jwt obtained via email from

        `/api/v0.19/auth/register/initiate`. The user status is set to `Active` and immediately logged
        in.




        Registration token is required when email verification is enforced, as indicated by a failed response
        to this endpoint'
      tags:
      - Authentication
      operationId: postApiV0.19AuthRegister
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                RegisterUserResponse:
                  $ref: '#/components/examples/RegisterUserResponse'
              schema:
                $ref: '#/components/schemas/RegisterUserResponse'
  /api/auth/api-key/generate:
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateApiKeyResponse'
              examples:
                GenerateApiKeyResponse:
                  $ref: '#/components/examples/GenerateApiKeyResponse'
          description: OK
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Generates an API key for the current user
      tags:
      - Authentication
      description: 'Generates, stores, and returns a new API key with the default expiration period for
        the user currently logged in.


        Once created, you can then provide this API key in an

        `Authorization: PL-API-KEY <Key>` header in replacement of an `X-PL-AUTH` header.'
      parameters:
      - schema:
          type:
          - integer
          - 'null'
          format: int64
        example: 2678400
        required: false
        name: expireSeconds
        in: query
        description: Number of seconds until the key expires.
      - schema:
          type:
          - string
          - 'null'
        example: ReadOnlyUser
        required: false
        name: role
        in: query
        description: Role of the new key.
      operationId: getApiAuthApi-keyGenerate
  /api/v0.20/auth/keys:
    get:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JWKS'
      tags:
      - Authentication
      summary: Returns the public keys used to sign PassiveLogic JSON web tokens.
      description: 'Returns the public keys used to sign the JSON web tokens so their authenticity can
        be verified. These are served in the

        standard JSON Web Key format: https://www.rfc-editor.org/rfc/rfc7517'
      operationId: getApiV0.20AuthKeys
  /api/v0.19/auth/api-key:
    delete:
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveApiKeyRequest'
            examples:
              RemoveApiKeyRequest:
                $ref: '#/components/examples/RemoveApiKeyRequest'
        required: true
      summary: Removes a given API key for the user
      tags:
      - Authentication
      description: Validates that the given token is linked to the currently authenticated user and removes
        it if so.
      operationId: deleteApiV0.19AuthApi-key
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                GenerateApiKeyResponse:
                  $ref: '#/components/examples/GenerateApiKeyResponse'
              schema:
                $ref: '#/components/schemas/GenerateApiKeyResponse'
  /api/auth/password/reset/change:
    post:
      deprecated: true
      requestBody:
        required: true
        content:
          application/json:
            examples:
              ChangePasswordData:
                $ref: '#/components/examples/ChangePasswordData'
            schema:
              $ref: '#/components/schemas/ChangePasswordData'
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: Changes a user's password from the password reset flow.
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Changes a user''s password to the specified value, reached from password reset flow.


        Token authentication required, only using the authentication JWT decoded from the password reset
        URL sent to a user

        from a reset initiation.'
      tags:
      - Authentication
      operationId: postApiAuthPasswordResetChange
      responses:
        '200':
          content:
            application/json:
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
          description: OK
  /api/auth/offline:
    get:
      tags:
      - Authentication
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      description: GET /auth/offline
  /api/auth/register/initiate:
    post:
      deprecated: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRegistrationInitiation'
            examples:
              UserRegistrationInitiation:
                $ref: '#/components/examples/UserRegistrationInitiation'
        required: true
      summary: Sends an email to begin email verification and registration.
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Initiates the PassiveLogic registration process by sending an email to the given user. A user
        is not stored in the system

        at this point in the process - instead this serves as the initial step proving that a uer has
        access to the email they

        are signing up with.


        Email will contain a link that holds a signed JWT from us. That JWT is later used to validate
        and complete registration.


        No authentication required.'
      tags:
      - Authentication
      operationId: postApiAuthRegisterInitiate
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
          description: OK
  /api/auth/verify:
    get:
      operationId: getApiAuthVerify
      tags:
      - Authentication
      parameters:
      - name: email
        description: User's email to confirm as verified
        in: query
        required: true
        schema:
          type: string
        example: darthvader@galactic-empire.com
      description: 'Redirects user to `/api/auth/login`, passing along the provided valid jwt and email.


        Exists in this form for backward compatibility.'
      summary: Redirects user to login
  /api/auth/api-key/remove:
    delete:
      deprecated: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveApiKeyRequest'
            examples:
              RemoveApiKeyRequest:
                $ref: '#/components/examples/RemoveApiKeyRequest'
        required: true
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: 'Removes a given API key for the user. This route has been deprecated in favor of: DELETE
        /api/auth/api-key.'
      tags:
      - Authentication
      description: Validates that the given token is linked to the currently authenticated user and removes
        it if so.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateApiKeyResponse'
              examples:
                GenerateApiKeyResponse:
                  $ref: '#/components/examples/GenerateApiKeyResponse'
          description: OK
      operationId: deleteApiAuthApi-keyRemove
    post:
      deprecated: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveApiKeyRequest'
            examples:
              RemoveApiKeyRequest:
                $ref: '#/components/examples/RemoveApiKeyRequest'
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      summary: 'Removes a given API key for the user. This route has been deprecated in favor of: DELETE
        /api/auth/api-key.'
      tags:
      - Authentication
      description: Validates that the given token is linked to the currently authenticated user and removes
        it if so.
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                GenerateApiKeyResponse:
                  $ref: '#/components/examples/GenerateApiKeyResponse'
              schema:
                $ref: '#/components/schemas/GenerateApiKeyResponse'
      operationId: postApiAuthApi-keyRemove
  /api/v0.19/auth/logout:
    post:
      operationId: postApiV0.19AuthLogout
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      tags:
      - Authentication
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericMessageResponse'
              examples:
                GenericMessageResponse:
                  $ref: '#/components/examples/GenericMessageResponse'
          description: OK
      summary: Logs out a user
      description: 'If external auth (Keycloak) is enabled, this initiates the external logout process.


        Otherwise, if a cookie keyed by pl-refresh-token is provided in the logout request, that refresh
        token is revoked.


        The response sets the auth & refresh cookies to empty values & marks them as expired.

        New tokens must then be generated by the login endpoint.'
  /api/v0.20/auth/register:
    post:
      deprecated: true
      requestBody:
        required: true
        content:
          application/json:
            examples:
              RegisterUserData:
                $ref: '#/components/examples/RegisterUserData'
            schema:
              $ref: '#/components/schemas/RegisterUserData'
      summary: Registers a new user
      tags:
      - Authentication
      description: 'DEPRECATED: This endpoint is not available when Keycloak authentication is turned
        on and will be removed in the future.


        Creates a new user based on the provided information. Requires jwt obtained via email from

        `/api/v0.20/auth/register/initiate`. The user status is set to `Active` and immediately logged
        in.




        Registration token is required when email verification is enforced, as indicated by a failed response
        to this endpoint'
      operationId: postApiV0.20AuthRegister
      responses:
        '200':
          content:
            application/json:
              examples:
                RegisterUserResponse:
                  $ref: '#/components/examples/RegisterUserResponse'
              schema:
                $ref: '#/components/schemas/RegisterUserResponse'
          description: OK
  /api/v0.19/auth/offline:
    get:
      security:
      - Basic Auth - login: []
      - XSRF header: []
      - DEPRECATED - PL API Key: []
      - PL API Key: []
      description: GET /auth/offline
      tags:
      - Authentication
  /api/v0.20/auth/magic-link-

# --- truncated at 32 KB (83 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/passivelogic/refs/heads/main/openapi/passivelogic-authentication-api-openapi.yml