Create new offline transfer export API endpoint to begin offline transfer
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Offline transfer exports will need API endpoints similar to direct transfer, but for both offline imports and exports. This issue is to create a REST API endpoint to begin an offline transfer export.
Proposal
POST /offline_exports
Params
-
s3_configuration, required, Hash - AWS or S3-compatible object storage configuration-
aws_access_key_id, required, String - S3-compatible access key ID -
aws_secret_access_key, required, String - S3-compatible secret access key -
region, required, String - s3-compatible object storage region -
bucket, required, String - Name of the object storage bucket where export data is stored -
endpoint, optional, String - Object storage location endpoint if not AWS -
path_style, optional, Boolean, default: false - Use host/bucket/object style paths instead of bucket.host/object.
-
-
entities, required, Array - List of entities to export-
source_type, required, String, values: "group_entity" or "project_entity" - Entity type -
source_full_path, required, String - Relative path of the entity to export
-
-
source_hostname, required, String, - Hostname or alias of the instance exposed on import
What it does
- Validate that a new feature flag for offline transfer exports is enabled, the user has sufficient access to each entity to export, and the object storage location is accessible
- If validations pass, create an
Import::Offline::Exportrecord and begin the export process async - If validations do not pass, return an error to the user synchronously without creating an
Import::Offline::Exportrecord.
User permissions
Offline transfer will use same permission requirements as direct transfer. In order to export a group or project, the user must be have the :admin_group or :admin_project ability respectively for each group and project exported.
Edited by 🤖 GitLab Bot 🤖