Skip to content

Commit e109377

Browse files
committed
added skills for common console activities
1 parent eaadee3 commit e109377

6 files changed

Lines changed: 542 additions & 0 deletions

File tree

README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Console Integration Plugin for the Adobe I/O CLI
2424

2525
<!-- toc -->
2626
* [Usage](#usage)
27+
* [Skills](#skills)
2728
* [Commands](#commands)
2829
<!-- tocstop -->
2930

@@ -35,6 +36,45 @@ $ aio discover -i
3536
$ aio console --help
3637
```
3738

39+
# Skills
40+
41+
This repository includes [agent skills](https://github.com/vercel-labs/skills) that teach coding agents (Cursor, Claude Code, Codex, and others) how to use `aio console` commands.
42+
43+
Install all skills:
44+
45+
```sh
46+
npx skills add adobe/aio-cli-plugin-console
47+
```
48+
49+
Install a specific skill:
50+
51+
```sh
52+
npx skills add adobe/aio-cli-plugin-console --skill aio-console-context
53+
```
54+
55+
Target a specific agent:
56+
57+
```sh
58+
npx skills add adobe/aio-cli-plugin-console -a cursor
59+
npx skills add adobe/aio-cli-plugin-console -a claude-code -a codex
60+
```
61+
62+
Install globally (available in all projects):
63+
64+
```sh
65+
npx skills add adobe/aio-cli-plugin-console --global
66+
```
67+
68+
### Available skills
69+
70+
| Skill | Description |
71+
|-------|-------------|
72+
| `aio-console-setup` | Plugin install, IMS login, context hierarchy, and `aio console where` |
73+
| `aio-console-context` | Select and list orgs, projects, and workspaces |
74+
| `aio-console-projects` | Create projects and workspaces |
75+
| `aio-console-api-services` | Subscribe Adobe APIs and configure product profiles |
76+
| `aio-console-credentials` | Public key certificates and workspace config download |
77+
3878
# Commands
3979
<!-- commands -->
4080
* [`aio console`](#aio-console)
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
name: aio-console-api-services
3+
description: >-
4+
Add and list Adobe API services on Developer Console workspaces via aio-cli.
5+
Use when subscribing to Adobe APIs, configuring product profiles, license-config,
6+
or aio console api / workspace api commands.
7+
---
8+
9+
# Console API Services
10+
11+
Subscribe Adobe API services to a workspace. Uses OAuth Server-to-Server credentials.
12+
13+
## List available org APIs
14+
15+
Shows APIs enabled for the current org:
16+
17+
```bash
18+
aio console api list
19+
# alias: aio console api ls
20+
21+
# With product profile metadata
22+
aio console api list --json
23+
```
24+
25+
Look for `Requires product profile: yes` — these need `--license-config` when adding.
26+
27+
## List workspace subscriptions
28+
29+
```bash
30+
aio console workspace api list \
31+
--projectName myApp \
32+
--workspaceName Stage
33+
34+
# aliases: aio console ws api list, aio console ws api ls
35+
```
36+
37+
## Add API services to a workspace
38+
39+
```bash
40+
aio console workspace api add \
41+
--projectName myApp \
42+
--workspaceName Stage \
43+
--service-code AssetComputeSDK,AdobeAnalyticsSDK
44+
```
45+
46+
Alias: `aio console ws api add`
47+
48+
### Services requiring product profiles
49+
50+
Some services (e.g. Frame.io) require a product profile. Discover profiles from `aio console api list --json` — look at `properties.licenseConfigs[]` for `name`, `id`, or `productId`.
51+
52+
```bash
53+
aio console workspace api add \
54+
--projectName myApp \
55+
--workspaceName Stage \
56+
--service-code FrameioSDK \
57+
--license-config 'FrameioSDK=My Product Profile'
58+
```
59+
60+
Multiple profiles for one service:
61+
62+
```bash
63+
--license-config 'SomeSDK=Profile1,Profile2'
64+
```
65+
66+
Multiple services with profiles (repeat flag):
67+
68+
```bash
69+
--license-config 'SDK1=ProfileA' \
70+
--license-config 'SDK2=ProfileB'
71+
```
72+
73+
### Important behavior
74+
75+
- `--service-code` is comma-separated sdkCodes from `aio console api list`.
76+
- `--license-config` keys must match codes in `--service-code`.
77+
- Adding APIs **merges** with existing subscriptions — does not wipe previously added services.
78+
- Check `--json` output for embedded errors; partial failures may appear in `errorDetails`.
79+
80+
## Typical App Builder setup
81+
82+
```bash
83+
aio console org select
84+
aio console project select myApp
85+
aio console workspace select Stage
86+
87+
# See what's available
88+
aio console api list
89+
90+
# Subscribe required APIs
91+
aio console workspace api add \
92+
--projectName myApp \
93+
--workspaceName Stage \
94+
--service-code AdobeI/OEvents,AdobeI/OReactSpectrum
95+
96+
# Verify
97+
aio console workspace api list \
98+
--projectName myApp \
99+
--workspaceName Stage
100+
```
101+
102+
## Quick reference
103+
104+
| Task | Command |
105+
|------|---------|
106+
| Org-level API catalog | `aio console api list` |
107+
| Workspace subscriptions | `aio console ws api list --projectName X --workspaceName Y` |
108+
| Add services | `aio console ws api add --projectName X --workspaceName Y --service-code CODE` |
109+
| JSON output | add `--json` or `--yml` |
110+
111+
## Troubleshooting
112+
113+
**"Service code(s) not found or not enabled"** — Run `aio console api list` to see valid codes for the org.
114+
115+
**"require one or more product profiles"** — Add `--license-config '<sdkCode>=<profileName>'`. Get profile names from `aio console api list --json`.
116+
117+
**"Failed to add API service(s)"** — Check `--json` output for `errorDetails`. Verify org has entitlements for the service.
118+
119+
For credential and config download, see **aio-console-credentials** skill.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
name: aio-console-context
3+
description: >-
4+
Select and list Adobe Developer Console orgs, projects, and workspaces via
5+
aio-cli. Use when switching org/project/workspace context, listing console
6+
resources, or preparing to link an App Builder project with aio app use.
7+
---
8+
9+
# Console Context (Org, Project, Workspace)
10+
11+
Navigate the Developer Console hierarchy. Selection is stored globally in aio config and drives all subsequent console, app, and runtime commands.
12+
13+
## Standard workflow
14+
15+
```bash
16+
# 1. Select org (clears project + workspace)
17+
aio console org select
18+
# or by org code:
19+
aio console org select <orgCode>
20+
21+
# 2. Select project (clears workspace)
22+
aio console project select
23+
# or by name/id:
24+
aio console project select myApp
25+
26+
# 3. Select workspace
27+
aio console workspace select Stage
28+
# or:
29+
aio console ws select Production
30+
31+
# 4. Verify
32+
aio console where
33+
```
34+
35+
## List resources
36+
37+
```bash
38+
aio console org list
39+
aio console project list
40+
aio console workspace list
41+
# or: aio console ws list
42+
```
43+
44+
Add `--json` or `--yml` for structured output on list/select commands.
45+
46+
## Link App Builder project
47+
48+
After selecting the correct context, link the local app:
49+
50+
```bash
51+
aio console where # verify org/project/workspace first
52+
aio app use -g --no-input --overwrite
53+
```
54+
55+
`aio app use -g` links based on the **globally selected** project. If the wrong project is active, you silently link to the wrong workspace.
56+
57+
## Select with explicit IDs
58+
59+
Override global selection with flags:
60+
61+
```bash
62+
aio console project select myApp --orgId <orgId>
63+
aio console workspace select Stage --orgId <orgId> --projectId <projectId>
64+
```
65+
66+
## Context side effects
67+
68+
| Action | Clears |
69+
|--------|--------|
70+
| `aio console org select` | project, workspace |
71+
| `aio console project select` | workspace |
72+
| `aio console workspace select` | (none) |
73+
74+
## Quick reference
75+
76+
| Task | Command |
77+
|------|---------|
78+
| Current context | `aio console where` |
79+
| List orgs | `aio console org list` |
80+
| List projects | `aio console project list` |
81+
| List workspaces | `aio console workspace list` |
82+
| Select org | `aio console org select [orgCode]` |
83+
| Select project | `aio console project select [nameOrId]` |
84+
| Select workspace | `aio console workspace select [nameOrId]` |
85+
86+
For creating new projects/workspaces, see the **aio-console-projects** skill.
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
---
2+
name: aio-console-credentials
3+
description: >-
4+
Manage Adobe Developer Console workspace credentials via aio-cli. Use when
5+
uploading public key certificates, listing/deleting keys, downloading workspace
6+
config, or aio console publickey / workspace download commands.
7+
---
8+
9+
# Console Credentials and Workspace Config
10+
11+
Manage public key certificates and download workspace configuration for local development.
12+
13+
## Download workspace config
14+
15+
Downloads the full workspace configuration (credentials, services, runtime namespace) as JSON:
16+
17+
```bash
18+
aio console workspace download
19+
# aliases: aio console workspace dl, aio console ws download, aio console ws dl
20+
21+
# Custom path
22+
aio console workspace download ./config/console.json
23+
aio console workspace download ./config/ # directory — writes default filename
24+
```
25+
26+
Requires org, project, and workspace to be selected. Default filename: `<orgId>-<projectName>-<workspaceName>.json`.
27+
28+
Override selection with flags:
29+
30+
```bash
31+
aio console workspace download \
32+
--orgId <orgId> \
33+
--projectId <projectId> \
34+
--workspaceId <workspaceId> \
35+
./my-config.json
36+
```
37+
38+
Use downloaded config to inspect credentials or integrate with tooling outside `aio app use`.
39+
40+
## Public key certificates
41+
42+
Upload PEM certificates to bind JWT credentials to the selected workspace.
43+
44+
### Upload
45+
46+
```bash
47+
aio console publickey upload ./public.key.pem
48+
```
49+
50+
Requires org, project, and workspace selected. Skips upload if fingerprint already bound.
51+
52+
```bash
53+
aio console publickey upload ./public.key.pem --json
54+
```
55+
56+
### List bindings
57+
58+
```bash
59+
aio console publickey list
60+
```
61+
62+
### Delete binding
63+
64+
```bash
65+
aio console publickey delete <idOrFingerprint>
66+
```
67+
68+
## Typical JWT credential workflow
69+
70+
```bash
71+
# 1. Select context
72+
aio console org select
73+
aio console project select myApp
74+
aio console workspace select Stage
75+
76+
# 2. Generate key pair (example)
77+
openssl genrsa -out private.key 2048
78+
openssl rsa -in private.key -pubout -out public.key.pem
79+
80+
# 3. Upload public key to workspace
81+
aio console publickey upload ./public.key.pem
82+
83+
# 4. Download config to verify binding
84+
aio console workspace download ./console.json
85+
```
86+
87+
Never commit private keys or downloaded config files containing secrets to source control.
88+
89+
## Quick reference
90+
91+
| Task | Command |
92+
|------|---------|
93+
| Download workspace config | `aio console workspace download [path]` |
94+
| Upload public key | `aio console publickey upload <file.pem>` |
95+
| List key bindings | `aio console publickey list` |
96+
| Delete key binding | `aio console publickey delete <idOrFingerprint>` |
97+
98+
## Troubleshooting
99+
100+
**"Invalid publicKey file"** — File must exist and be a valid PEM certificate.
101+
102+
**"You have not selected a Workspace"** — Run the org → project → workspace select flow first.
103+
104+
**Existing binding skipped** — Upload detects matching fingerprint and reuses the existing binding (not an error).
105+
106+
For context selection, see **aio-console-context** skill.

0 commit comments

Comments
 (0)