agent-filestore
v1.0.1
Published
Agent-first evidence uploads for pull requests and project work.
Maintainers
Readme
FileStore
FileStore publishes immutable evidence files for pull requests and project work. Agents upload directly to private object storage and receive stable raw-file links suitable for screenshots, recordings, PDFs, and text artifacts.
What it does
- One immutable file and public URL per upload.
- Private React evidence room grouped by pull request, task, or Inbox.
- Named API keys for agent attribution and revocation.
- Direct-to-bucket uploads and short-lived signed downloads.
- Reversible archive and owner-only permanent purge.
CLI
After the first package release:
bunx agent-filestore@latest auth set <api-key>
bunx agent-filestore@latest upload ./evidence.png
bunx agent-filestore@latest artifacts listThe uploader detects the Git repository, branch, commit, and current GitHub pull request when git and gh are available. Override that context with --pr, --group, --group-url, or --no-pr. Add --json for agent-safe structured output.
Local development
bun install
cp .env.example .env
docker compose up -d
bun run db:migrate
bun run devRun the React development server separately when working on the portal:
bun run dev:webValidation:
bun run checkService configuration
Required production variables:
DATABASE_URLFILESTORE_PUBLIC_BASE_URLFILESTORE_ADMIN_PASSWORD_HASHAWS_ENDPOINT_URLAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_S3_BUCKET_NAMEAWS_DEFAULT_REGION
The optional limits and URL lifetimes are documented in .env.example. Generate the owner password hash with Bun rather than storing a plaintext password:
bun -e 'console.log(await Bun.password.hash(process.argv[1]))' 'your-password'Architecture decisions
The product contract, ADRs, and terminology live under docs/. The production topology is one Bun service, one Postgres service, and one private Railway bucket in Singapore/APAC.
