@hasna/connectors
v1.3.42
Published
Open source connector library - Install API connectors with a single command
Downloads
13,668
Maintainers
Readme
@hasna/connectors
Open-source connector platform for enabling, authenticating, and running API connectors from one package.
Install
bun install -g @hasna/connectorsWhat It Is
@hasna/connectors is a single-product runtime:
- connectors stay inside this repo and package
- projects enable the connectors they want through
.connectors/manifest.json - credentials live in
~/.hasna/connectors/ - CLI, MCP, REST, and the dashboard all use the same connector registry
CLI
connectors --helpTypical flow:
connectors install github stripe
connectors auth github
connectors run github --help
connectors run stripe products list --limit 5Key commands:
connectors installwrites project enablement to.connectors/manifest.jsonconnectors listandconnectors searchbrowse the shared catalogconnectors docsreads connector docs from the internal registryconnectors authstores credentials in~/.hasna/connectors/connectors runexecutes connector commands from the one-product runtimeconnectors statusandconnectors doctorverify setup and auth state
MCP Server
connectors-mcpHTTP mode
connectors-mcp --http # http://127.0.0.1:8854/mcp
MCP_HTTP=1 connectors-mcpHealth: GET http://127.0.0.1:8854/health. MCP is also mounted on connectors-serve at /mcp.
REST API
connectors-serveThe local REST API is served by the one-product runtime at
http://localhost:9876. Use @hasna/connectors-sdk with
ConnectorsClient or LocalConnectorsClient for this local
connectors-serve API.
Hosted SaaS products should use HostedConnectorsClient from
@hasna/connectors-sdk. The hosted client talks to a platform
/api/v1 endpoint with bearer API keys and does not require local connector
installs or individual connector packages.
OpenActions And OpenAutomations Boundary
Connector operations may be exposed to OpenAutomations as @hasna/actions
manifests, but Connectors remains the owner of connector discovery,
enablement, consent, and credential health. An automation action should name
the connector operation and pass only scoped inputs plus references to
credentials that Connectors can resolve.
Recommended action shape:
{
"schemaVersion": "1.0",
"id": "connectors.github.issue.create",
"name": "Create GitHub issue",
"version": "1.0.0",
"bindings": [
{
"kind": "sdk",
"package": "@hasna/connectors",
"export": "runConnectorOperation",
"metadata": {
"connector": "github",
"operation": "issues.create"
}
}
],
"secrets": [
{
"name": "github",
"ref": "hasna/xyz/opensource/connectors/prod/github",
"required": true,
"redaction": "full"
}
],
"approval": {
"mode": "manual",
"requiresApproval": true,
"reason": "Creates or mutates data in an external account"
},
"audit": {
"eventSource": "hasna.connectors",
"redactPaths": ["secrets", "input.token", "input.authorization"],
"evidenceRefs": ["connector:github", "operation:issues.create", "credentialScope:repo"]
}
}OpenAutomations owns the durable run/action queue and DLQ. Connectors owns runtime auth checks, connector-specific consent, credential refresh, and provider response normalization. Raw OAuth tokens, API keys, refresh tokens, and session cookies must not be placed in automation specs, action queues, task comments, or run evidence; use secret references and redacted audit metadata.
Project Layout
Project-local enablement is lightweight:
.connectors/
├── manifest.json
└── index.tsThe package no longer copies full connector source trees into each project.
Remote Storage Sync
This package supports repo-owned remote PostgreSQL sync without the retired shared cloud runtime:
export HASNA_CONNECTORS_DATABASE_URL="postgres://..."
connectors storage status
connectors storage sync push
connectors storage sync pullData Directory
Data is stored in ~/.hasna/connectors/.
Contributor Notes
Contributor guidance for the one-repo / one-product model lives in docs/one-repo-one-product.md.
License
Apache-2.0 -- see LICENSE
