AWS Serverless Application Repository
Manage application records, versions and generated-template metadata.
Plan: Free14 of 14 operations implemented1Known difference
Returned asset URLs name AWS hosts and weren't fetched, and an application record isn't proof of a working deployment.
Example checked on Vera 1.2.2, 8 November 2026. Each coverage note names its own evidence and date.
Connect
Section titled “Connect”This Free service needs no license key. Start Vera as in Get started, then run this in a terminal of its own, from an empty scratch directory. It gives the official AWS CLI dummy credentials and a config file of its own, so no AWS account is needed and your own AWS profile isn't touched.
export VERA_ENDPOINT="http://localhost:5003"export AWS_ACCESS_KEY_ID=test AWS_SECRET_ACCESS_KEY=testexport AWS_REGION=us-east-1 AWS_DEFAULT_REGION=us-east-1export AWS_SHARED_CREDENTIALS_FILE=/dev/nullexport AWS_EC2_METADATA_DISABLED=trueexport AWS_PAGER="" AWS_CLI_AUTO_PROMPT=offunset AWS_PROFILE AWS_DEFAULT_PROFILEunset AWS_SESSION_TOKEN AWS_SECURITY_TOKENunset AWS_WEB_IDENTITY_TOKEN_FILE AWS_ROLE_ARN AWS_ROLE_SESSION_NAMEunset AWS_CONTAINER_CREDENTIALS_FULL_URIunset AWS_CONTAINER_CREDENTIALS_RELATIVE_URIcat > vera-aws-config <<'EOF'[default]region = us-east-1output = jsoncli_binary_format = base64s3 = addressing_style = pathEOFexport AWS_CONFIG_FILE="$PWD/vera-aws-config"When you've finished every example in this terminal, close it and delete vera-aws-config, not before.
Use the AWS CLI’s serverlessrepo commands. The emulator serves the 2017-09-08 API over the REST JSON protocol, and the examples use us-east-1.
An application’s ID is an ARN built from its name, such as arn:aws:serverlessrepo:us-east-1:123456789012:applications/docs-app. The readme and template URLs it returns point at S3 hosts on amazonaws.com, not at the emulator, and they weren’t fetched in testing. Keep sending requests to $VERA_ENDPOINT.
Example
Section titled “Example”Create an application with a readme, a template and version 1.0.0, update its description, then read it back:
APP_ID=$(aws --endpoint-url "$VERA_ENDPOINT" serverlessrepo create-application \ --name docs-app --author Documentation --description 'Documentation application' \ --readme-body 'Documentation at https://example.net' --semantic-version 1.0.0 \ --template-body '{"AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Description": "Documentation application metadata", "Resources": {"DocsBucket": {"Type": "AWS::S3::Bucket"}}}' \ --query ApplicationId --output text)aws --endpoint-url "$VERA_ENDPOINT" serverlessrepo update-application \ --application-id "$APP_ID" --description 'Updated documentation application'aws --endpoint-url "$VERA_ENDPOINT" serverlessrepo get-application --application-id "$APP_ID"These are selected fields from the last command’s output, with the updated description:
{ "Name": "docs-app", "Description": "Updated documentation application", "ApplicationId": "arn:aws:serverlessrepo:us-east-1:123456789012:applications/docs-app", "Version": { "SemanticVersion": "1.0.0", "ResourcesSupported": true }}The Version object is there even though the request didn’t name a version. A recorded AWS response to the same kind of request leaves it out.
List the application’s versions, which include 1.0.0:
aws --endpoint-url "$VERA_ENDPOINT" serverlessrepo list-application-versions --application-id "$APP_ID"To clean up, delete the application:
aws --endpoint-url "$VERA_ENDPOINT" serverlessrepo delete-application --application-id "$APP_ID"Supported features
Section titled “Supported features”- Applications, created with a readme, a template and a first version, updated, read back and deleted.
- Versions. In a separate check,
CreateApplicationVersionadded version1.0.1,ListApplicationVersionslisted it, andGetApplicationreturned it when asked for that version. - Dependencies and policies, read back:
ListApplicationDependenciesreturned an empty list for an application with none, andGetApplicationPolicyreturned an emptyStatementslist. - Generated templates:
CreateCloudFormationTemplateandGetCloudFormationTemplatereturnedACTIVEtemplate metadata. The template URL names an AWS S3 host and wasn’t fetched. - Earlier recorded comparisons: selected
CreateCloudFormationTemplateandCreateCloudFormationChangeSetresponses matched recorded AWS responses, andCreateApplicationVersion,GetApplicationPolicy,PutApplicationPolicyandListApplicationDependenciesmatched recorded AWS error responses.CreateCloudFormationChangeSetwasn’t run again against Vera 1.2.0 preview or Vera 1.2.0-rc.3, and a change-set response doesn’t show that the application deploys. - Listed in the earlier implementation inventory; not rechecked since: listing applications, setting a valid application policy with
PutApplicationPolicy, and unsharing withUnshareApplication.
Limitations
Section titled “Limitations”The main limits are below. A few more apply to every service, and the API coverage notes cover smaller differences.
- Applications aren’t deployed. An application and its versions are records, and no deployment was verified. In Vera 1.2.0-rc.3, CloudFormation can’t deploy one either:
CreateStack,UpdateStackandExecuteChangeSetreturn HTTP 501NotIncludedbecause the provisioning engine isn’t included. - Asset URLs weren’t fetched. Template metadata retrieval was checked; downloading the returned URL wasn’t. The same goes for the readme URL.
- Sharing isn’t established. A
PutApplicationPolicyrequest naming the owner’s own account as principal was rejected withBadRequestException, “You cannot set principal to resource owner”. That request was invalid, so it doesn’t show that valid policies fail. Earlier comparisons of application policies covered error responses only. Public and cross-account sharing, and size limits on templates and readmes, weren’t tested.
API coverage
Section titled “API coverage”Every operation in AWS's published 2017-09-08 API (SDK model, botocore 1.43.105), and whether the emulator implements it. Availability combines the earlier implementation inventory with the dated observations below; checking a page's example does not verify every operation. Each note names its evidence first; an observation given without a build or date comes from earlier testing, on 3 November 2026. What the statuses mean
No operation matches .
Try part of a name, such as CreateApplication, or .
| Operation | Status | Notes |
|---|---|---|
| Create | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — created the example's application with a readme, a template and version 1.0.0. Its ID is an ARN built from the name. |
| Create | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — added version 1.0.1. |
| Create | Implemented | |
| Create | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — returned ACTIVE template metadata. Its template URL names an AWS S3 host and wasn't fetched. |
| Delete | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — deleted the example's application. |
| Get | Known difference | Recorded comparison: After an application and version are created, GetApplication without SemanticVersion returns an extra Version object in the emulator; the AWS recording omits that member. This does not verify deployment or asset download. Local observation: Vera 1.2.0 preview, 5 November 2026 — the Version object is still returned without SemanticVersion, and asking for version 1.0.1 returned that version. This is not a new AWS comparison. |
| Get | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — returned an empty Statements list. |
| Get | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — returned the generated template's ACTIVE metadata. Its template URL names an AWS S3 host and wasn't fetched, so downloading the template wasn't verified. |
| List | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — returned an empty list for an application with no dependencies. |
| List | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — listed version 1.0.0, and 1.0.1 once it was added. |
| List | Implemented | |
| Put | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — a request naming the owner's own account as principal was rejected with BadRequestException, "You cannot set principal to resource owner". That request was invalid; setting a valid policy wasn't verified. |
| Unshare | Implemented | |
| Update | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — updated the example application's description. |