Get all playstore applications by domain

Summary

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

  • Source SHA: eb793550a12d9e11927e529c3cd85e40d94c5421

  • Source run id: 29434262589

  • Module: Playstore

  • Lambda function: jef-playstore-get-all-applications-by-domain

  • HTTP method: GET

  • Invocation mode: sync

  • Package mode: no-package

  • API category: Playstore Complex Sync No Package GET APIs

  • API path: /playstore/complex-sync-no-packages/jef-playstore-get-all-applications-by-domain

  • Endpoint URL: https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-get-all-applications-by-domain

  • 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

GET endpoint that validates a domain_id, confirms the domain exists, and returns all JEF Playstore applications for that domain using the get-by-domain-id-updated GSI.

Payload Example

{
  "domain_id": "00000000-0000-4000-8000-000000000000"
}

Payload Schema

{
  "root": {
    "type": "M",
    "required": true,
    "attributes": {
      "domain_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}$",
        "format": "uuidv4"
      }
    }
  },
  "notes": [
    "Input is received from GET query parameters, not a JSON request body.",
    "domain_id is resolved from jef-playstore-domains using the main primary key before querying applications."
  ]
}

Response Schema

{
  "root": {
    "type": "M",
    "required": true,
    "attributes": {
      "is_accepted": {
        "type": "BOOL",
        "required": true
      },
      "exists": {
        "type": "BOOL",
        "required": true
      },
      "applications_found": {
        "type": "BOOL",
        "required": true
      },
      "ok": {
        "type": "BOOL",
        "required": false
      },
      "retryable": {
        "type": "BOOL",
        "required": false
      },
      "message_type": {
        "type": "S",
        "required": true
      },
      "message": {
        "type": "S",
        "required": true
      },
      "operation": {
        "type": "S",
        "required": true
      },
      "status_code": {
        "type": "N",
        "required": true
      },
      "domain_id": {
        "type": "S",
        "required": false
      },
      "domain_lookup_source": {
        "type": "S",
        "required": false
      },
      "application_lookup_source": {
        "type": "S",
        "required": false
      },
      "application_count": {
        "type": "N",
        "required": true
      },
      "applications": {
        "type": "L",
        "required": true,
        "items": {
          "type": "M",
          "attributes": {
            "application_id": {
              "type": "S",
              "required": true
            },
            "domain_id": {
              "type": "S",
              "required": true
            },
            "package_name": {
              "type": "S",
              "required": true
            },
            "name": {
              "type": "S",
              "required": true
            },
            "version": {
              "type": "S",
              "required": true
            },
            "version_code": {
              "type": "N",
              "required": false
            },
            "is_mobile": {
              "type": "BOOL",
              "required": true
            },
            "apk_s3_uri": {
              "type": "S",
              "required": false
            },
            "apk_cloudfront_url": {
              "type": "S",
              "required": false
            },
            "apk_object_key": {
              "type": "S",
              "required": false
            },
            "apk_sha256": {
              "type": "S",
              "required": false
            },
            "signing_certificate_sha256": {
              "type": "S",
              "required": false
            },
            "apk_size_bytes": {
              "type": "N",
              "required": false
            },
            "build_type": {
              "type": "S",
              "required": false
            },
            "source_sha": {
              "type": "S",
              "required": false
            },
            "created": {
              "type": "S",
              "required": true
            },
            "updated": {
              "type": "S",
              "required": true
            }
          }
        }
      },
      "domain": {
        "type": "M",
        "required": false
      },
      "failure_code": {
        "type": "S",
        "required": false
      },
      "failure_reason": {
        "type": "S",
        "required": false
      }
    }
  },
  "notes": [
    "A 200 empty result means the domain exists but currently has no applications.",
    "A 404 domain_not_found means the domain_id did not match any jef-playstore-domains record.",
    "DynamoDB failures return retryable 500 responses with failure_code and failure_reason.",
    "version_code and signing_certificate_sha256 are catalog metadata only; live APK verification is performed by the release endpoints."
  ]
}

CMD curl

curl.exe -X GET "https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-get-all-applications-by-domain"

PowerShell curl

curl.exe -X GET "https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-get-all-applications-by-domain"