# aio-template-submission
**Repository Path**: mirrors_adobe/aio-template-submission
## Basic Information
- **Project Name**: aio-template-submission
- **Description**: Adobe App Builder Template Registry
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-03-10
- **Last Updated**: 2026-03-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Adobe App Builder Template Registry
Adobe App Builder Template Registry allows template developers to get their templates reviewed and endorsed by Adobe team.
## Benefits
* Increase the visibility of your template.
* Have your template discoverable via AIO CLI.
* Increase the level of trust end users place in your template.
* Have your template reviewed by Adobe team.
## Requirements
* The template must be published on NPM.
* The template must have a public GitHub repo.
* The template must successfully install and run on all Active LTS versions of Node.js.
* The template's tests must pass.
* The template's metadata must pass [aio-lib-template-validation](https://github.com/adobe/aio-lib-template-validation) checks.
## How to submit a template
If you would like your template reviewed and added to the registry, please open a [template review request](https://github.com/adobe/aio-template-submission/issues/new?assignees=&labels=add-template&template=verification-request.yml) in this repository and fill in the form.
Template Registry will execute a set of checks and provide the feedback via issue comment.
## How to remove a template
If you decide you no longer wish to maintain your template and want to remove it from the registry, please open a [template removal request](https://github.com/adobe/aio-template-submission/issues/new?assignees=&labels=remove-template&template=remove-request.yml) in this repository and fill in the form.
## Security & Authorization
### Permission Model
For security reasons, template removal and updates require **admin privileges**.
**Why admin-only?**
- Prevents unauthorized modification of registry entries
- Ensures manual verification of package ownership
- Protects against account compromise
- Provides audit trail for all changes
### How to Request Changes
#### Removing Your Template
1. Open a [template removal request](https://github.com/adobe/aio-template-submission/issues/new?assignees=&labels=remove-template&template=remove-request.yml)
2. Provide proof of ownership (link to NPM package showing you as maintainer)
3. An admin will verify and process your request
#### Updating Your Template
1. Open a [template update request](https://github.com/adobe/aio-template-submission/issues/new?assignees=&labels=update-template&template=update-request.yml)
2. Provide the npm package name
3. An admin will verify ownership and process the update
### Proof of Ownership
When requesting removal or updates, please provide:
- Your NPM username
- Link to the NPM package page showing you as a maintainer
- Reason for the change
Example:
```
NPM username: my-npm-username
Package link: https://www.npmjs.com/package/@example/my-template
Maintainers (usernames only, no emails): user1, user2, user3
Reason: Package deprecated / no longer maintained / security update needed
```
> **Note:** If using `npm owner ls ` to list maintainers, **redact or remove all email addresses** from the output before submitting. Only include NPM usernames.
### For Admins
Admins are defined in the `ALLOWLIST_ADMINS` repository variable (comma-separated list of GitHub usernames, with no spaces).
Note: whitespace is significant. For example, `user1,user2` works, but `user1, user2` will only match `user1` because of the space before `user2`.
**Configuration**: See [GitHub documentation on repository variables](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables) for setup instructions.
#### Admin Procedure: Template Removal
**Step 1: Verify Ownership**
When a removal request is submitted, verify the requester owns the NPM package:
```bash
# Check NPM package maintainers
npm owner ls
# Example output:
# username1
# username2
```
**Step 2: Cross-reference with Requester**
- Check if the requester's GitHub username matches any NPM maintainer username
- If usernames differ, verify the requester's NPM profile links to their GitHub:
- Visit: `https://www.npmjs.com/~`
- Check for GitHub link in profile
- If still unclear, ask requester to provide proof (e.g., publish a verification file to NPM)
**Step 3: Verify Legitimacy**
Check the request is legitimate:
- Review the reason for removal (deprecated, security issue, no longer maintained, etc.)
- Verify the package exists and matches the requester's claim
- Check for suspicious patterns (e.g., bulk removal requests, recently created accounts)
**Step 4: Process the Removal**
Once ownership is verified:
1. **Comment on the issue** with verification confirmation:
```
✅ Verified: @ is listed as maintainer of
Processing removal...
```
2. **Trigger the removal workflow** by commenting:
```
/remove
```
3. **Monitor the workflow execution**:
- Go to Actions tab → Template Removal workflow
- Verify it completes successfully
- The workflow will automatically:
- Remove the template from `registry.json`
- Commit the change
- Close the issue with confirmation
**Step 5: Handle Failures**
If the workflow fails:
- Check the workflow logs for errors
- Verify your username is in the `ALLOWLIST_ADMINS` repository variable
- If needed, manually remove the entry from `registry.json` and commit
#### Admin Procedure: Template Update
Follow similar steps for update requests:
1. **Verify ownership** (same as removal)
2. **Trigger update** by commenting `/update` on the issue
3. **Monitor workflow** to ensure successful completion
#### Quick Reference
**Admin Commands:**
- `/remove` - Trigger template removal (admin-only)
- `/update` - Trigger template update (admin-only)
**Verification Commands:**
```bash
npm owner ls # List maintainers
npm view --json # Full package info
npm info maintainers # Maintainers only
```