# LightHouse uploads

> LightHouse uploads: what the collector reads, how to connect it, its permissions, its certification by Atlantic Agentic Labs and its security posture.

Built, not certified Built and tested against recorded and synthetic responses (version 1.0.0, 10 November 2026). Not yet run against the vendor's sandbox or a client environment.

Reads the files people uploaded through LightHouse, from the uploads store of the deployment itself. The files go straight from the person’s browser or the command line to the store; LightHouse never sees their content. This collector then indexes them, for a knowledge base with no system behind it.

## At a glance

| Collector                   | LightHouse uploads, version `1.0.0`                                                                                                                             |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Reads                       | Atlantic Agentic Labs: LightHouse uploads (the deployment's uploads store) ([the vendor's documentation](https://docs.atlanticagenticlabs.com/connect/upload/)) |
| Family                      | Storage                                                                                                                                                         |
| Kind                        | Files                                                                                                                                                           |
| Ways to connect             | Service account                                                                                                                                                 |
| Scopes                      | - Read:                                                                                                                                                         |
| Read only                   | Yes                                                                                                                                                             |
| Vendor's API can move money | No                                                                                                                                                              |
| Personal data               | Content                                                                                                                                                         |
| Hosts it may contact        | `*.amazonaws.com`, `storage.googleapis.com`, `oauth2.googleapis.com`, `{account}.blob.core.windows.net`, `login.microsoftonline.com`                            |
| Vendor API versions         | Amazon S3 ListObjectsV2 and GetObject, Google Cloud Storage JSON API v1, Azure Blob service REST API 2023-11-03, local directory (file:)                        |
| Lowest engine version       | `0.45.0`                                                                                                                                                        |

## What it reads

- Every readable object under the uploads store’s prefix: `.md`, `.markdown`, `.txt`, `.csv`, `.vtt`, `.json`, `.pdf`, `.docx`, `.pptx` and `.xlsx`.
- The store is the one in `AAL_UPLOADS`: `s3://bucket/prefix`, `gs://bucket/prefix`, `azblob://account/container/prefix`, or `file:/path` on premises.
- The change test is each object’s ETag. An object deleted from the store becomes a tombstone.
- Names starting with `.` and keys ending in `/` are ignored.

## How to connect

1. Set `AAL_UPLOADS` in the deployment to the store the deployment mints upload links for.
2. Switch on `upload.prepare` in LightHouse’s command settings and in the deployment’s command policy; it is off until both say so.
3. Add an `uploads` source card with a `label` and the `requires` block. Optionally set `max_mb` (the largest file read, 100 by default).

The deployment’s own identity reads the store (an instance role on AWS, the service account on Google Cloud, a managed identity on Azure). No credential is given to LightHouse.

## Permissions

List and read on the one bucket, container or directory, and nothing else. The collector lists keys and gets objects; it never writes, overwrites or deletes in the store. (Writing is done by the person’s browser with a link of at most fifteen minutes, minted by the deployment, outside this collector.) Its read-only test replaces the store client with a recorder and checks every operation is a list, a get or the creation of a read link.

## Limits

- Objects over `max_mb` (100 by default) are skipped and counted as `too-large`; formats the collector cannot read are counted as `format`; a corrupt document is counted as `unreadable`.
- Skipped files are counted, not fatal, and logged by count only.
- A file is indexed at the first scheduler tick after its upload link expires, within about half an hour.

## Data handling

- The files stay in your own store; the corpus written from them stays in the deployment. LightHouse relays an upload link and nothing else.
- Each record carries a link back to the object where the store gives one.
- Uploaded documents may hold personal data of any kind; they are handled under the source’s `label`.

## Troubleshooting

| What you see                                                                                                 | What it means                                  | What to do                                                          |
| ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------- | ------------------------------------------------------------------- |
| `the uploads source needs AAL_UPLOADS, the deployment's uploads store`                                       | The environment variable is not set            | Set `AAL_UPLOADS` to the deployment’s uploads store                 |
| `an object store is s3://bucket/prefix, gs://bucket/prefix, azblob://account/container/prefix or file:/path` | `AAL_UPLOADS` is not one of the accepted forms | Correct the address                                                 |
| `that key is outside the uploads directory`                                                                  | A key tried to leave the uploads directory     | Check the store; keys are made by the deployment, not by file names |
| Read succeeded, 0 written                                                                                    | No object changed since the last read          | Nothing to do                                                       |

## Certification

Each entry is a run by Atlantic Agentic Labs, newest first. Only a run against the vendor’s sandbox or a client environment certifies a collector; a certification lasts six months, or less if the vendor publishes an API version the collector does not list. See [How collectors are certified](/collectors/certification/).

| Date             | Collector | Engine   | Vendor API                                                                                           | Method                              | Expires        |
| ---------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------- | -------------- |
| 10 November 2026 | `1.0.0`   | `0.45.0` | Amazon S3; Google Cloud Storage JSON API v1; Azure Blob service REST API 2023-11-03; local directory | Fixtures only: built, not certified | Not applicable |

## Security posture

From the collector’s last scan on the default branch. What each line means, and what blocks a release: [Security posture](/collectors/security/).

| Last scanned               | 10 November 2026                                                                                                                                                                                                      |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Critical findings          | 0                                                                                                                                                                                                                     |
| High findings              | 0                                                                                                                                                                                                                     |
| Medium findings            | 0                                                                                                                                                                                                                     |
| Low findings               | 0                                                                                                                                                                                                                     |
| Info findings              | 0                                                                                                                                                                                                                     |
| Release blocked            | No                                                                                                                                                                                                                    |
| Network allow-list check   | Pass                                                                                                                                                                                                                  |
| Read-only behavioural test | Pass                                                                                                                                                                                                                  |
| SBOM (CycloneDX)           | Produced                                                                                                                                                                                                              |
| Dependency licences        | Pass                                                                                                                                                                                                                  |
| Scanners                   | bandit 1.9.4, semgrep 1.181.1, pip-audit 2.10.1, osv-scanner 2.7.0, cyclonedx-py 7.5.0, pip-licenses 5.5.5, gitleaks repository job aal-secrets, hosts_check tools/hosts_check.py, read-only test pytest -m read_only |

Source: https://docs.atlanticagenticlabs.com/collectors/catalogue/uploads/
