Project-level Secure Files

Version history

Project-level Secure Files is an experimental feature developed by GitLab Incubation Engineering. The feature is still in development, but you can:

You can securely store up to 100 files for use in CI/CD pipelines as “secure files”. These files are stored securely outside of your project’s repository, and are not version controlled. It is safe to store sensitive information in these files. Secure files support both plain text and binary file types, but must be 5 MB or less.

You can manage secure files in the project settings, or with the secure files API.

Secure files can be downloaded and used by CI/CD jobs by using the download-secure-files tool.

note
This feature is in active development and is likely to change, potentially in a breaking way. Additional features and capabilities are planned.

Add a secure file to a project

To add a secure file to a project:

  1. On the top bar, select Main menu > Projects and find your project.
  2. On the left sidebar, select Settings > CI/CD.
  3. In the Secure Files section, select Expand.
  4. Select Upload File.
  5. Find the file to upload, select Open, and the file upload begins immediately. The file shows up in the list when the upload is complete.

Use secure files in CI/CD jobs

To use your secure files in a CI/CD job, you must use the download-secure-files tool to download the files in the job. After they are downloaded, you can use them with your other script commands.

Add a command in the script section of your job to download the download-secure-files tool and execute it. The files download into a .secure_files directory in the root of the project. To change the download location for the secure files, set the path in the SECURE_FILES_DOWNLOAD_PATH CI/CD variable.

For example:

test:
  variables:
    SECURE_FILES_DOWNLOAD_PATH: './where/files/should/go/'
  script:
    - curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash