Generate playstore CloudFront download URL by package name¶
Summary¶
Source repository:
jef-systems/jef-playstore-backendSource SHA:
eb793550a12d9e11927e529c3cd85e40d94c5421Source run id:
29434262589Module:
PlaystoreLambda function:
jef-playstore-generate-cloudfront-download-url-by-package-nameHTTP method:
GETInvocation mode:
syncPackage mode:
no-packageAPI category:
Playstore Complex Sync No Package GET APIsAPI path:
/playstore/complex-sync-no-packages/jef-playstore-generate-cloudfront-download-url-by-package-nameEndpoint URL:
https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-generate-cloudfront-download-url-by-package-nameDocumentation 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 verifies a JEF Playstore APK release in S3 and returns its CloudFront download URL.
Payload Example¶
{
"package_name": "com.jef.playstore",
"version": "1.0.0",
"build_type": "release"
}
Payload Schema¶
{
"root": {
"type": "M",
"required": true,
"attributes": {
"package_name": {
"type": "S",
"required": true,
"regex": "^[a-zA-Z][a-zA-Z0-9_]*(?:[.][a-zA-Z][a-zA-Z0-9_]*){1,}$"
},
"version": {
"type": "S",
"required": false,
"regex": "^[0-9]+[.][0-9]+[.][0-9]+(?:-[A-Za-z0-9.-]+)?(?:[+][A-Za-z0-9.-]+)?$"
},
"build_type": {
"type": "S",
"required": false,
"regex": "^(debug|release)$"
}
}
},
"notes": [
"Input is received from GET query parameters, not a JSON request body.",
"version is optional; when omitted, the latest fully verified semantic version is selected.",
"build_type=release never falls back to debug.apk.",
"A CloudFront URL is generated only after the selected S3 APK passes full hash and APK signing-block verification."
]
}
Response Schema¶
{
"root": {
"type": "M",
"required": true,
"attributes": {
"is_accepted": {
"type": "BOOL",
"required": true
},
"exists": {
"type": "BOOL",
"required": true
},
"download_url_generated": {
"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
},
"package_name": {
"type": "S",
"required": false
},
"latest_version": {
"type": "S",
"required": false
},
"version": {
"type": "S",
"required": false
},
"version_name": {
"type": "S",
"required": false
},
"version_code": {
"type": "N",
"required": false
},
"build_type": {
"type": "S",
"required": false
},
"requested_build_type": {
"type": "S",
"required": false
},
"apk_sha256": {
"type": "S",
"required": false
},
"sha256": {
"type": "S",
"required": false
},
"apk_size_bytes": {
"type": "N",
"required": false
},
"content_length": {
"type": "N",
"required": false
},
"size": {
"type": "N",
"required": false
},
"content_type": {
"type": "S",
"required": false
},
"signing_certificate_sha256": {
"type": "S",
"required": false
},
"signing_certificate_source": {
"type": "S",
"required": false
},
"signing_scheme": {
"type": "S",
"required": false
},
"object_key": {
"type": "S",
"required": false
},
"canonical_object_key": {
"type": "S",
"required": false
},
"object_file_name": {
"type": "S",
"required": false
},
"s3_uri": {
"type": "S",
"required": false
},
"bucket_name": {
"type": "S",
"required": false
},
"bucket_prefix": {
"type": "S",
"required": false
},
"package_prefix": {
"type": "S",
"required": false
},
"etag": {
"type": "S",
"required": false
},
"cache_control": {
"type": "S",
"required": false
},
"last_modified": {
"type": "S",
"required": false
},
"metadata_verified": {
"type": "BOOL",
"required": false
},
"apk_magic_verified": {
"type": "BOOL",
"required": false
},
"apk_format_verified": {
"type": "BOOL",
"required": false
},
"apk_sha256_verified": {
"type": "BOOL",
"required": false
},
"apk_signing_block_verified": {
"type": "BOOL",
"required": false
},
"apk_magic_hex": {
"type": "S",
"required": false
},
"metadata": {
"type": "M",
"required": false,
"attributes": {
"package_name": {
"type": "S",
"required": false
},
"version": {
"type": "S",
"required": false
},
"version_code": {
"type": "S",
"required": false
},
"build_type": {
"type": "S",
"required": false
},
"apk_sha256": {
"type": "S",
"required": false
},
"signing_certificate_sha256": {
"type": "S",
"required": false
}
}
},
"s3_metadata": {
"type": "M",
"required": false
},
"available_versions": {
"type": "L",
"required": false
},
"invalid_version_folders": {
"type": "L",
"required": false
},
"skipped_missing_apk_versions": {
"type": "L",
"required": false
},
"skipped_invalid_releases": {
"type": "L",
"required": false
},
"failure_code": {
"type": "S",
"required": false
},
"failure_reason": {
"type": "S",
"required": false
},
"is_latest": {
"type": "BOOL",
"required": false
},
"selected_reason": {
"type": "S",
"required": false
},
"download_url": {
"type": "S",
"required": false
},
"cloudfront_url": {
"type": "S",
"required": false
},
"canonical_cloudfront_url": {
"type": "S",
"required": false
},
"cloudfront_domain": {
"type": "S",
"required": false
},
"requested_object_file": {
"type": "S",
"required": false
},
"missing_object_keys": {
"type": "L",
"required": false
}
}
},
"notes": [
"A success response is emitted only after the complete S3 object SHA-256 matches publication metadata.",
"The APK ZIP header and APK v2/v3/v3.1 signing block are parsed using Python standard-library code.",
"signing_certificate_sha256 is derived from the first signer certificate in the APK signing block and cross-checked with S3 metadata when present.",
"metadata_verified, apk_magic_verified, apk_format_verified, apk_sha256_verified, and apk_signing_block_verified are never true when their verification step was skipped.",
"When discovering the latest release, invalid newer releases are recorded in skipped_invalid_releases and the next semantic version is evaluated."
]
}
CMD curl¶
curl.exe -X GET "https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-generate-cloudfront-download-url-by-package-name"
PowerShell curl¶
curl.exe -X GET "https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-generate-cloudfront-download-url-by-package-name"