Skip to content

feat:Squid import project from octopus

Placeholder MINDY.L requested to merge feature/squid-import-project into main

Close #473

Summary

This PR adds a guarded Octopus project import workflow, allowing operators to migrate current deployable Octopus project configuration into Squid without manually recreating every resource.

What Changed

  • Added a backend import-session workflow for uploading an Octopus export archive or JSON export, extracting manifest and resources, previewing proposed Squid resources, validating user selections, and confirming the import.
  • Added Octopus-specific DTOs and extractors to keep Octopus document formats isolated from Squid persistence entities and public deployment DTOs.
  • Added resource mapping for projects, environments, lifecycles, deployment processes, steps, actions, variables, feeds, and optional deployment-target references.
  • Added deterministic Octopus-to-Squid identifier remapping and dependency ordering.
  • Added ActionType and action-property translation for Squid action handlers that have an Octopus equivalent.
  • Added compatibility reporting for lossy mappings, unsupported actions, missing targets/accounts, and resources requiring manual migration.
  • Added secret-safe handling for sensitive variables, feed credentials, certificates, account credentials, endpoint secrets, logs, and import-session payloads.
  • Scoped the initial import to current project configuration; release, deployment, server-task, and historical process/variable snapshots are detected and reported but not imported.

Capabilities

Impact

  • Adds a new backend API surface following existing controller and mediator command/request patterns.
  • Adds an import orchestration area under Squid.Core that calls existing Project, Environment, Lifecycle, ExternalFeed, Variable, DeploymentProcess, and DeploymentStep services rather than bypassing their business rules.
  • Adds Octopus transport DTOs and mapping/validation components without changing existing Squid domain contracts.
  • Introduces temporary import-session storage and cleanup requirements.
  • Adds tests using the repository's Next Chat Export as a representative export fixture, while ensuring secrets are never logged or returned by preview APIs.

Merge request reports

Loading