Validate ElectronJS login and create session

Summary

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

  • Source SHA: 9a074aa1fac1d7b8aa9d21ef4e59d441715d21fd

  • Source run id: 28401005310

  • Module: One

  • Lambda function: jef-one-validate-electronjs-login-and-create-session

  • HTTP method: POST

  • Invocation mode: async

  • Package mode: no-package

  • API category: One Complex No Package Async POST APIs

  • API path: /jef-one-validate-electronjs-login-and-create-session

  • Endpoint URL: https://mfr670zvsh.execute-api.ap-southeast-1.amazonaws.com/prod/jef-one-validate-electronjs-login-and-create-session

  • Documentation scope: lambda-complex-no-packages

Async Confirmation Rule

This write API is documented as an async accepted request, not final write success. Use the corresponding GET API to confirm the final state.

Description

ElectronJS desktop-specific durable auth login. Accepts a frontend-generated session_id, records a processing session first, validates the Electron application allow-list, then asynchronously validates login and updates the same session to verified or failed.

API Gateway Response

{
  "status_code": 202,
  "message": "This endpoint returns 202 when the request is accepted. The Lambda function continues processing asynchronously."
}

Payload Example

{
  "session_id": "8d4e7d32-2f6f-4d13-9b8e-0f4e98ef0001",
  "entity_number": "1108",
  "application_name": "jef-electronjs-template",
  "employee_number": "11108",
  "password": "pass1234"
}

Payload Schema

{
  "root": {
    "type": "M",
    "required": true,
    "attributes": {
      "session_id": {
        "type": "S",
        "required": true,
        "regex": "^[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": true,
        "regex": "^[0-9]{4}$"
      },
      "application_name": {
        "type": "S",
        "required": true,
        "regex": "^[A-Za-z0-9 .,'_-]{1,120}$"
      },
      "employee_number": {
        "type": "S",
        "required": true,
        "regex": "^[0-9]{5}$"
      },
      "password": {
        "type": "S",
        "required": true,
        "regex": "^.{1,120}$"
      }
    }
  }
}

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_saved": {
        "type": "BOOL",
        "required": true
      },
      "session_active": {
        "type": "BOOL",
        "required": true
      },
      "is_active": {
        "type": "BOOL",
        "required": true
      },
      "message": {
        "type": "S",
        "required": true
      },
      "operation": {
        "type": "S",
        "required": true
      },
      "status_code": {
        "type": "N",
        "required": true
      },
      "entity_number": {
        "type": "S",
        "required": false
      },
      "application_name": {
        "type": "S",
        "required": false
      },
      "employee_number": {
        "type": "S",
        "required": false
      },
      "application_credential_id": {
        "type": "S",
        "required": false
      },
      "application_id": {
        "type": "S",
        "required": false
      },
      "employee_id": {
        "type": "S",
        "required": false
      },
      "entity_id": {
        "type": "S",
        "required": false
      },
      "main_parent_key_name": {
        "type": "S",
        "required": false
      },
      "main_parent_key_value": {
        "type": "S",
        "required": false
      },
      "entity_credential_id": {
        "type": "S",
        "required": false
      },
      "display_name": {
        "type": "S",
        "required": false
      },
      "session_id": {
        "type": "S",
        "required": false
      },
      "status": {
        "type": "S",
        "required": false
      },
      "expires_at": {
        "type": "S",
        "required": false
      },
      "created": {
        "type": "S",
        "required": false
      },
      "updated": {
        "type": "S",
        "required": false
      },
      "verified_at": {
        "type": "S",
        "required": false
      },
      "failure_code": {
        "type": "S",
        "required": false
      },
      "failure_reason": {
        "type": "S",
        "required": false
      }
    }
  }
}

Request Payload

{
  "session_id": "8d4e7d32-2f6f-4d13-9b8e-0f4e98ef0001",
  "entity_number": "1108",
  "application_name": "jef-electronjs-template",
  "employee_number": "11108",
  "password": "pass1234"
}

CMD curl

curl -X POST "https://mfr670zvsh.execute-api.ap-southeast-1.amazonaws.com/prod/jef-one-validate-electronjs-login-and-create-session" \
  -H "Content-Type: application/json" \
  --data-raw '{"session_id":"8d4e7d32-2f6f-4d13-9b8e-0f4e98ef0001","entity_number":"1108","application_name":"jef-electronjs-template","employee_number":"11108","password":"pass1234"}'

PowerShell curl

curl.exe -X POST "https://mfr670zvsh.execute-api.ap-southeast-1.amazonaws.com/prod/jef-one-validate-electronjs-login-and-create-session" `
  -H "Content-Type: application/json" `
  --data-raw '{"session_id":"8d4e7d32-2f6f-4d13-9b8e-0f4e98ef0001","entity_number":"1108","application_name":"jef-electronjs-template","employee_number":"11108","password":"pass1234"}'