feat(dev-run): add aileron-connector-dev-run harness#406
Open
ALRubinger wants to merge 2 commits intomainfrom
Open
feat(dev-run): add aileron-connector-dev-run harness#406ALRubinger wants to merge 2 commits intomainfrom
ALRubinger wants to merge 2 commits intomainfrom
Conversation
…ectors A developer-only CLI that runs an Aileron WASM connector against real external APIs without going through install/binding/launch. The connector author iterates locally — edit connector/main.go, task build, dev-run — instead of cutting a release for every change. Loads the connector's manifest.toml and connector.wasm from disk, spins up the same Wazero-backed sandbox runtime the production gateway uses, enforces the manifest's [capabilities.network] grant, and invokes the connector with the supplied op + args. A stub credential.Resolver returns the OAuth bearer token from the AILERON_DEV_TOKEN env var so calls that mark themselves credential:"oauth2" get the token injected at the network boundary exactly as a vault-bound credential would in production. Out of scope: this binary is not installed alongside `aileron` for end users — it lives in cmd/ so it can import internal/* directly. It's a developer harness for connector authors; the README of the published connector repos points at it for local iteration. Refs #402.
|
🚅 Deployed to the aileron-pr-406 environment in aileron 1 service not affected by this PR
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #406 +/- ##
==========================================
- Coverage 82.56% 82.34% -0.23%
==========================================
Files 212 213 +1
Lines 21902 21978 +76
==========================================
+ Hits 18084 18098 +14
- Misses 2852 2915 +63
+ Partials 966 965 -1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
The new cmd/aileron-connector-dev-run module wasn't in GO_TEST_PACKAGES or the CI's cache-dependency-path list, so: - 'task vet:go' (run by CI's lint job) skipped the package - 'task test:go:ci' (run by CI's test job) skipped its tests - The setup-go action couldn't cache its module dependencies All three are fixed by adding the package to GO_TEST_PACKAGES (a single list driving vet:go, test:go, and test:go:ci) and adding the new go.mod to the workflow's cache-dependency-path. Verified locally: 'task vet:go' and 'task test:go' now both touch the new package.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A developer-only CLI for running an Aileron WASM connector against real external APIs without the install/binding/launch round-trip. Spawned out of #402: connector authors need a fast iteration loop for
aileron-connector-googleand the connectors that follow.Usage
```sh
task build:connector-dev-run
Get an OAuth token (e.g. https://developers.google.com/oauthplayground for Google).
export AILERON_DEV_TOKEN=ya29...
./build/aileron-connector-dev-run \
--wasm ~/git/ALRubinger/aileron-connector-google/connector.wasm \
--manifest ~/git/ALRubinger/aileron-connector-google/connector/manifest.toml \
--op list_recent_emails \
--args '{"query":"is:unread","max_results":3}'
```
Output:
What it does
What it deliberately does NOT do
Verifying with the Google connector
Smoke-tested locally against `aileron-connector-google`:
A live API test against Gmail with a real token requires the publisher `client_id` (gating on Google Cloud Console registration in #402) — not on the critical path for landing this harness.
Test plan
🤖 Generated with Claude Code