Validate session by session ID

Summary

  • Source repository: jef-systems/jef-one-backend

  • Source SHA: ac65ed21b4ea52235f472efeef826c144a2fe812

  • Source run id: 30028079423

  • Module: One

  • Lambda function: jef-one-validate-session-by-session-id

  • HTTP method: GET

  • Invocation mode: sync

  • Package mode: no-package

  • API category: One Complex Sync No Package GET APIs

  • API path: /one/complex-sync-no-packages/jef-one-validate-session-by-session-id

  • Endpoint URL: https://api.jefoffice.com/one/complex-sync-no-packages/jef-one-validate-session-by-session-id

  • Documentation scope: lambda-complex-sync-no-packages

Synchronous Lambda Complex Rule

This API is documented as a synchronous Lambda complex no-package API. API Gateway waits for the Lambda result and returns the final Lambda response.

Description

Validates a 10-hour session, its local role snapshot, its application credential snapshot, and the current authorization chain without re-querying employee roles.

Payload Example

{
  "session_id": "8d4e7d32-2f6f-4d13-9b8e-0f4e98ef0001"
}

Payload Schema

{
  "root": {
    "type": "M",
    "required": true,
    "attributes": {
      "session_id": {
        "type": "S",
        "required": true,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
        "min_length": 36,
        "max_length": 36
      }
    }
  }
}

Response Schema

{
  "root": {
    "type": "M",
    "required": true,
    "attributes": {
      "is_accepted": {
        "type": "BOOL",
        "required": true
      },
      "is_valid": {
        "type": "BOOL",
        "required": true
      },
      "can_continue": {
        "type": "BOOL",
        "required": true
      },
      "session_found": {
        "type": "BOOL",
        "required": true
      },
      "session_active": {
        "type": "BOOL",
        "required": true
      },
      "is_active": {
        "type": "BOOL",
        "required": true
      },
      "message_type": {
        "type": "S",
        "required": true
      },
      "message": {
        "type": "S",
        "required": true
      },
      "next_action": {
        "type": "S",
        "required": true
      },
      "operation": {
        "type": "S",
        "required": true
      },
      "validator_version": {
        "type": "S",
        "required": true
      },
      "status_code": {
        "type": "N",
        "required": true,
        "integer": true,
        "minimum": 100,
        "maximum": 599
      },
      "session_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "session_attached_credential_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "application_allowed_entity_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "entity_allowed_employee_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "domain_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "application_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "entity_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "employee_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "entity_number": {
        "type": "S",
        "required": false,
        "pattern": "^[0-9]{4}$",
        "min_length": 4,
        "max_length": 4
      },
      "application_name": {
        "type": "S",
        "required": false,
        "pattern": "^[A-Za-z0-9 .,'_-]{1,120}$",
        "min_length": 1,
        "max_length": 120
      },
      "employee_number": {
        "type": "S",
        "required": false,
        "pattern": "^[0-9]{5}$",
        "min_length": 5,
        "max_length": 5
      },
      "role_type": {
        "type": "S",
        "required": false,
        "pattern": "^(user|admin)$",
        "enum": [
          "user",
          "admin"
        ]
      },
      "role_name": {
        "type": "S",
        "required": false,
        "pattern": "^[A-Za-z0-9 .,'_-]{1,120}$",
        "min_length": 1,
        "max_length": 120
      },
      "role_description": {
        "type": "S",
        "required": false,
        "min_length": 1,
        "max_length": 500
      },
      "display_name": {
        "type": "S",
        "required": false
      },
      "main_parent_key_name": {
        "type": "S",
        "required": false,
        "pattern": "^[A-Za-z0-9_-]{1,120}$",
        "min_length": 1,
        "max_length": 120
      },
      "main_parent_key_value": {
        "type": "S",
        "required": false,
        "min_length": 1,
        "max_length": 255
      },
      "status": {
        "type": "S",
        "required": false
      },
      "expires_at": {
        "type": "S",
        "required": false,
        "format": "date-time"
      },
      "created": {
        "type": "S",
        "required": false,
        "format": "date-time"
      },
      "updated": {
        "type": "S",
        "required": false,
        "format": "date-time"
      },
      "verified_at": {
        "type": "S",
        "required": false,
        "format": "date-time"
      },
      "failure_code": {
        "type": "S",
        "required": false
      },
      "failure_reason": {
        "type": "S",
        "required": false
      },
      "iat": {
        "type": "N",
        "required": false,
        "integer": true,
        "minimum": 0
      },
      "exp": {
        "type": "N",
        "required": false,
        "integer": true,
        "minimum": 0
      },
      "attached_credentials": {
        "type": "L",
        "required": false,
        "items": {
          "type": "M",
          "required": true,
          "additional_properties": false,
          "attributes": {
            "session_attached_credential_id": {
              "type": "S",
              "required": true,
              "format": "uuid",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            },
            "application_allowed_entity_id": {
              "type": "S",
              "required": true,
              "format": "uuid",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            },
            "main_parent_key_name": {
              "type": "S",
              "required": true,
              "pattern": "^[A-Za-z0-9_-]{1,120}$",
              "min_length": 1,
              "max_length": 120
            },
            "main_parent_key_value": {
              "type": "S",
              "required": true,
              "min_length": 1,
              "max_length": 255
            },
            "iat": {
              "type": "N",
              "required": true,
              "integer": true,
              "minimum": 0
            },
            "exp": {
              "type": "N",
              "required": true,
              "integer": true,
              "minimum": 0
            }
          }
        }
      }
    }
  }
}

CMD curl

curl.exe -X GET "https://api.jefoffice.com/one/complex-sync-no-packages/jef-one-validate-session-by-session-id"

PowerShell curl

curl.exe -X GET "https://api.jefoffice.com/one/complex-sync-no-packages/jef-one-validate-session-by-session-id"