Checking access…
⚠️ Point device to Gamma before testing (expand)
1. Point AVS to Gamma:
adb shell aipc-set-prop -s com.amazon.puffin AVSEndpoint https://bob-dispatch-gamma-na.amazon.com
2. Point DSPM to Gamma (persists):
adb shell 'echo "hypernova" > /var/lib/DataStorePackageManager/filestore/device_environment'
3. Reboot then re-run Step 1:
adb reboot
Request
πŸ“¦ Packages Inventory
⚠️ Only packages published via this console
❓ Frequently Asked Questions
202 returned but nothing on device?

Package instance already exists in DynamoDB PackageInstance table. Delete the stale record and retry. Query using customerId-index GSI with the device's customerId.

"Device unreachable" error?

Device is not pointed to gamma AVS. Run:
adb shell aipc-set-prop -s com.amazon.puffin AVSEndpoint https://bob-dispatch-gamma-na.amazon.comThis resets on every reboot β€” re-run after each restart.

"TimedOut" or package not installing?

Package is >1MB and device pull timeout is too short (3s default). Use LINK delivery with smaller chunks. See SARASDS-11917 for details.

UnknownHostException on EU/FE endpoints?

The Lambda's VPC doesn't have the Route53 PHZ or VPC endpoint for that region. The proxy routes EU requests to SkyPushSkillLambda-EU in eu-west-1 and FE/ZAZ to SkyPushSkillLambda in us-east-1.

Publish succeeds but Install fails?

Publish goes to ARRE Buildtime (separate API Gateway). Install reads from ARRE Runtime. Ensure the snapshot was associated to the correct stage (master for gamma). Also verify the namespace/authority matches between publish and install.

How to check if package is on device?

adb shell cat /var/lib/DataStorePackageManager/filestore/packages/_metadata.jsonLook for your package URI (format: package://authority/packageId) in the JSON output.

Where to find requestId for debugging?

Check Atocha β€” search by DSN or requestId. Also check CloudWatch logs:
aws logs filter-log-events --log-group-name "alexaresourcerepositoryruntimearestservice/application.log" --region us-east-1 --start-time $(date -d '5 min ago' +%s000) --filter-pattern "DSN"

Device Account ID β€” where to find it?

Query PackageInstallRegistry DynamoDB table filtering by deviceId (DSN). The record contains customerId which is the device account ID (format: A0XXXXX...).

Introduction

DataStore DevKit is a self-service testing tool for anyone building on the DataStore Cloud Service (DSCS). Whether you're a 1P speechlet team, a 3P skill developer, or an internal DataStore engineer β€” this tool lets you test the complete cloud-to-device flow without writing any code or setting up infrastructure.

What problem does it solve?

Testing DataStore end-to-end traditionally requires either building a skill (with Lambda, CloudAuth, VPC endpoints, and manual API wiring) or setting up a test consumer from scratch β€” only to then spend hours debugging whether the issue is in DataStore or in your own setup.

For external consumers, it's hard to tell if DataStore is the problem or if their skill/speechlet integration has an issue. DevKit gives you a clean, isolated way to call DSCS APIs directly β€” no skill code in between.

For internal DataStore developers, calling APIs directly requires a lot of wiring β€” CloudAuth setup, VPC connectivity, trust stores, endpoint configuration across regions. Time that should go into fixing actual problems gets spent on test infrastructure instead.

DevKit eliminates all of that. One click β€” your data flows from cloud to device. You see exactly what API was called, what response came back, and whether the device received it. No wiring, no debugging test infra β€” just pure productivity.

Who is it for?

External DataStore consumers: Skills and speechlets using DSCS APIs (commands, internalCommands, executeModuleCommands) can test their integration in Gamma/Beta before going to production. Publish a package, install it on a test device, push data β€” all from this console.

Internal DataStore developers: The Saras DataStore team uses this for E2E validation of new features, regression testing across regions (NA, EU, FE, ZAZ), and debugging customer issues with real API calls and real devices.

How to get started

1. Go to the Console tab above
2. Select your Stage (Gamma / Beta / Prod) and Region (NA / EU / FE / ZAZ)
3. Pick an Operation β€” Install Package, Remove Package, Publish, Internal Commands, or Execute Module Commands
4. Fill in the parameters and hit Send Request
5. See the full API trace β€” every step from auth to device delivery

Use the Packages tab to browse, search, and download packages you've published. Check the FAQ for common issues and troubleshooting.

Supported Operations

Publish Package: Upload assets β†’ Publish to ARRE β†’ Create snapshot β†’ Associate to stage. Your package is now installable on devices.
Install Package: Trigger DSCS to send an InstallPackage directive to a device. Watch the package appear on the device in real-time.
Remove Package: Send a RemovePackage directive to clean up installed packages from a device.
Internal Commands: Push key-value data directly to a device's DataStore using the 1P InternalCommands API.
Execute Module Commands: Trigger SKY-Push (dataPushToCloud) to pull data from device DataStore up to the cloud.

Supported Environments

Gamma: NA β€’ EU β€’ FE β€’ ZAZ
Beta: NA β€’ EU β€’ FE β€’ ZAZ
Prod: ZAZ (NA/EU/FE coming soon)

Designed & Developed by Team Saras DataStore