# Importing manifests & SBOMs

The Seal Platform accepts three kinds of one-shot uploads:

* [Uploading a dependency manifest](/new-documentation/new-docs/importing-manifests/dependency-manifest.md): `package-lock.json`, `requirements.txt`, `pom.xml`, and other ecosystem-specific lockfiles.
* [Uploading an SBOM](/new-documentation/new-docs/importing-manifests/sbom.md): CycloneDX or SPDX in JSON.
* [Importing from a Snyk export](/new-documentation/new-docs/importing-manifests/snyk-export.md): a CSV exported from Snyk.

All three go through the same **Import from file** flow on the Projects page. Each upload creates or contributes to one Seal Project, and the project ends up in [imported manifest discovery mode](/new-documentation/new-docs/package-discovery-mode/imported-manifest.md). The upload is a snapshot: the platform parses the file once and does not refresh it, so the picture ages from the moment of import.

## When file imports are the right choice

File imports are the answer when the higher-reliability discovery modes are not available to you. Specifically, when for security or organizational reasons you cannot:

* Connect Seal to your source control,
* Run the Seal CLI in your CI/CD pipeline, **and**
* Configure the Seal Artifact Server as your primary remote so it sees all your build's package pulls.

When at least one of those is available, prefer it. Source code, CLI, and artifact-server-as-primary-remote all give Seal a refreshing picture; imports are a frozen snapshot.

## Before you start

* You have the **Admin**, **Sealer**, or **Collaborator** [role](/new-documentation/new-docs/users-and-sso/user-roles.md) in Seal.
* You know the file type and have the file accessible. The detector inspects filename and contents, so a file named correctly for its kind is the easiest path.
* You have decided whether the upload should create a new Seal Project or attach to the [Default project](/new-documentation/new-docs/creating-a-seal-project.md#the-default-project).

## The shared flow

1. Open the **Projects** page.
2. Click **Import projects** and select **Import from file**.
3. Drag the file onto the upload area, or click to browse. The modal validates the file and shows the detected type.
4. Choose the destination:
   * **Add entries to a new project** and provide a project name. The platform creates a new Seal Project with that name and assigns its [Project ID](/new-documentation/new-docs/creating-a-seal-project.md#project-id-and-project-name).
   * **Add entries to the Default project** to land the entries in the catch-all instead.
5. Confirm the upload.

The Seal Platform parses the file asynchronously after the modal closes; the resulting Seal Project (or new entries in Default) appears on the Projects page within a minute.

## What each upload produces

| Upload              | Result                                                                                |
| ------------------- | ------------------------------------------------------------------------------------- |
| Dependency manifest | One Seal Project (or Default) populated with the packages declared in the manifest.   |
| SBOM                | One Seal Project (or Default) populated with the components listed in the SBOM.       |
| Snyk CSV export     | One Seal Project (or Default) populated with the vulnerable packages from the export. |

## Related

* [Imported manifest mode](/new-documentation/new-docs/package-discovery-mode/imported-manifest.md): the discovery mode an upload puts a Seal Project into.
* [Creating a Seal Project](/new-documentation/new-docs/creating-a-seal-project.md): the rest of the project-creation paths.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sealsecurity.io/new-documentation/new-docs/importing-manifests.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
