Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ A credential gateway between AI agents and real services (Gmail, AWS, LLM APIs,
## Build, run, test

```bash
# Build (NOTE: README/Dockerfile reference ./cmd/sieve, but no cmd/sieve/main.go
# currently exists in the repo — the only main package is e2e/testserver/.
# If `go build ./cmd/sieve` fails, that's expected, not a regression you need to fix.)
# Build
go build ./cmd/sieve
# Produces a `sieve` binary in the repo root; it's gitignored (see .gitignore).

# Run all Go tests
go test ./...
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ Two install paths — see [`docs/connectors-slack.md`](docs/connectors-slack.md)
2. **Add Connection** → **Slack** → **Use existing bot token** → paste and submit.
3. Sieve calls `auth.test` against Slack; on success the connection lands `active`. The token is encrypted at rest — never written to a plaintext column or logged.

Curated operations: `list_channels`, `list_users`, `read_user_profile`, `read_channel_history`, `read_thread`, `post_message`. (`search_messages` is exposed for policy bindings but disabled in v1 — it requires a user-token install which is on the roadmap.)
Curated operations: `list_channels`, `list_users`, `read_user_profile`, `read_channel_history`, `read_thread`, `post_message`, `search_messages`. `search_messages` is grantable to any Slack connection but only runs on user-token connections (Slack's `search.messages` requires a user token); bot-token connections get an `operation_not_enabled` error instead. See `docs/connectors-slack.md` for setup details.

Multi-workspace setups work — add a second Slack connection with a different alias and address each by name through the agent-facing API.

Expand Down
40 changes: 17 additions & 23 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,35 @@
# Sieve Roadmap

Planned native connectors. All of these can be used today via the generic HTTP Proxy or MCP Proxy connectors — native support adds first-class policy rules, operation-level controls, and a better setup UX.
Native connectors add first-class policy rules, operation-level controls, and a better setup UX over the generic HTTP Proxy / MCP Proxy connectors, which remain the fallback for any service not yet listed as shipped below.

## Development & Project Management
## Shipped

- [ ] **GitHub** — Repos, PRs, issues, code search, actions. OAuth App or GitHub App auth. Policy rules: repo scope, read-only vs write, branch restrictions, org limits.
- [ ] **GitLab** — Projects, merge requests, issues, pipelines. OAuth or personal access token. Similar policy model to GitHub.
- [ ] **Linear** — Issues, projects, cycles, teams. OAuth or API key. Policy rules: team scope, read-only, label filters.
- [ ] **Jira** — Issues, sprints, boards, JQL search. OAuth or API token. Policy rules: project scope, issue type filters, transition restrictions.
- [ ] **Notion** — Pages, databases, blocks, search. OAuth. Policy rules: workspace scope, page-level access, read-only databases.
Implemented in `internal/connectors/`:

- **GitHub** (`github/`)
- **GitLab** (`gitlab/`)
- **Linear** (`linear/`)
- **Notion** (`notion/`)
- **Asana** (`asana/`)
- **Slack** (`slack/`) — bot and user token install; see `docs/connectors-slack.md`.
- **Gmail** (`gmail/`)
- **Anthropic** (`anthropic/`) — LLM API connector.
- **HTTP Proxy** (`httpproxy/`) — generic connector for any HTTP API.
- **MCP Proxy** (`mcpproxy/`) — generic connector for any MCP server.

## Communication
## Planned

- [ ] **Slack** — Messages, channels, reactions, files, users. OAuth with bot/user tokens. Policy rules: channel scope, read-only, no DMs, message content filters.
- [ ] **Jira** — Issues, sprints, boards, JQL search. OAuth or API token. Policy rules: project scope, issue type filters, transition restrictions.
- [ ] **Discord** — Messages, channels, guilds, reactions. Bot token. Policy rules: guild scope, channel restrictions, no DMs.
- [ ] **Microsoft Teams** — Messages, channels, chats. Microsoft Graph API. Policy rules: team scope, read-only channels.

## Productivity

- [ ] **Microsoft 365** — Outlook (email), OneDrive (files), SharePoint (docs), Teams. Microsoft Graph API with OAuth. Policy rules mirror Google services: email read-only, file access by folder, calendar restrictions.

## Data & Analytics

- [ ] **PostgreSQL** — Direct SQL queries with policy-enforced row-level security. Connection via connection string. Policy rules: table allowlist, read-only, query complexity limits, result row limits.
- [ ] **MySQL** — Same model as PostgreSQL.
- [ ] **Snowflake** — Warehouse queries. Policy rules: schema/table scope, query cost limits.
- [ ] **BigQuery** — Google Cloud analytics. Policy rules: dataset scope, query byte limits.

## Payments & Business

- [ ] **Stripe** — Customers, payments, subscriptions, invoices. API key auth. Policy rules: read-only, no refunds, amount limits, customer scope.
- [ ] **Twilio** — SMS, voice calls, WhatsApp. API key auth. Policy rules: recipient allowlist, message content filters, no voice calls.

## Cloud Infrastructure

- [ ] **AWS** — Compute, storage, and managed services via IAM credentials. Policy rules: service allowlist, resource ARN scope, read-only, region limits.
- [ ] **GCP** — Compute Engine, Cloud Storage, BigQuery, Cloud Run. Service account auth. Policy rules: project scope, resource type restrictions, region limits.
- [ ] **Azure** — VMs, Blob Storage, Cosmos DB. Service principal auth. Policy rules: resource group scope, read-only, region limits.
- [ ] **Vercel** — Deployments, domains, environment variables. API token auth. Policy rules: project scope, no production deploys, read-only env vars.
Expand All @@ -45,5 +41,3 @@ Native connectors are prioritized by:
1. How commonly AI agents need the service
2. How dangerous unrestricted access is (email > file storage > read-only APIs)
3. How much policy granularity improves over the generic proxy

The generic HTTP Proxy and MCP Proxy connectors are always available as a fallback for any service with an HTTP API or MCP server.
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "gmail_ai_proxy",
"version": "1.0.0",
"description": "**A credential gateway for AI agents.**",
"name": "sieve",
"version": "0.0.1",
"description": "A credential gateway for AI agents",
"main": "index.js",
"directories": {
"doc": "docs"
Expand All @@ -15,7 +15,7 @@
},
"keywords": [],
"author": "",
"license": "ISC",
"license": "MIT",
"bugs": {
"url": "https://github.com/trilitech/Sieve/issues"
},
Expand Down