← AWS Retail Store Sample AppExamplesLegal NoticePrivacy

StackToIT Migration Intelligence Workspace

PROPOSAL — generated by StackToIT Assess. Architect review required before any decision.

Partially executable migration package · Proposal only · Not approved.

Technical details: run, versions, digest and evidence freshness

Assessment

Assessment
default (assessment format 0.24.0)
Assessment timestamp
Generated 2026-11-02 12:08 UTC by stacktoit 0.6.0-11562-g1966ddf116 (1966ddf116)
Run
f6267c3f-2848-4aa5-89df-5fee8b15b3b9 · source digest sha256:812c5ae3f6cc8530163abbf5b6fbe305ed3b363c4886ec6b87623db857ea0c70
Source snapshot
partly decided only at plan time · aws not locked; random not locked
STACKIT target profile
Stable network model: the experimental STACKIT VPC resources are not used (STACKIT_STABLE)
STACKIT provider version
0.121.0
Knowledge base version
0.384.0
Evidence freshness
Not assessed — Evidence freshness as one measure is not assessed in this build. Dated evidence is shown where it is used: each STACKIT support option and each assurance row states when it was verified (verified_at, and recheck_after for support), in support_suitability and assurance. The date beside a readiness dimension is the assessment date, not a retrieval date.

Staleness: Not assessed — This build has no change detection, so there has been no re-check since the assessment was made (Generated 2026-11-02 12:08 UTC). The source may have changed since.

Source checks: Built-in source checks passed — OpenTofu validation of the source did not run (LOCK_FILE)

Run status: COMPLETE (report published). Source: partly decided only at plan time. Draft: GENERATED. The report was written whole; this is not a statement that the migration is ready.

Executive lens: the sections are in the order this reader usually wants, and Architecture and Engineering Evidence are put aside. Nothing is removed from the page: choose All to show every section in the order of the navigation, or follow a link into a section that is put aside.

Architect lens: the sections are in the order this reader usually wants, and Costs is put aside. Nothing is removed from the page: choose All to show every section in the order of the navigation, or follow a link into a section that is put aside.

Platform lens: the sections are in the order this reader usually wants, and Costs is put aside. Nothing is removed from the page: choose All to show every section in the order of the navigation, or follow a link into a section that is put aside.

Security lens: the sections are in the order this reader usually wants, and Costs and Migration Plan are put aside. Nothing is removed from the page: choose All to show every section in the order of the navigation, or follow a link into a section that is put aside.

Application owner lens: the sections are in the order this reader usually wants, and Engineering Evidence is put aside. Nothing is removed from the page: choose All to show every section in the order of the navigation, or follow a link into a section that is put aside.

Programme lens: the sections are in the order this reader usually wants, and Engineering Evidence is put aside. Nothing is removed from the page: choose All to show every section in the order of the navigation, or follow a link into a section that is put aside.

FinOps lens: the sections are in the order this reader usually wants, and Architecture and Engineering Evidence are put aside. Nothing is removed from the page: choose All to show every section in the order of the navigation, or follow a link into a section that is put aside.

Engineering lens: the sections are in the order this reader usually wants, and Costs is put aside. Nothing is removed from the page: choose All to show every section in the order of the navigation, or follow a link into a section that is put aside.

Operations

Whether the target can be run: identity, audit, observability, backup, restore, support and lifecycle.

Terraform generated is not workload ready: 1 of 44 units carry open workload items. A generated Terraform resource does not mark any of the dimensions below ready: no dimension is ready in this build, and a unit without evidence is not assessed, which is not the same as ready.

0 units need a decision or evidence from a person (0 of them a decision); 6 compute units carry no workload evidence at all. 49 further entries (conditional, switched off, or standing beside a unit whose attachment cannot be decided) are not measured: whether they exist is decided only when OpenTofu plans.

Units by workload dimension and state (44 units)
DimensionDECISION REQUIREDEVIDENCE REQUIREDREADY WITH ACTIONSNOT ASSESSEDNOT APPLICABLE
Bootstrap configuration000638
Source artifacts000638
Target preconditions001637
Cutover001637
Day 2 operations000638
What each dimension asks, and why a unit can be not assessed
  • Bootstrap configuration: How is the workload installed on this unit? Not assessed: StackToIT cannot see how the workload is installed: no provisioner block, user data or startup script was observed on the unit.
  • Source artifacts: Which files do the unit's attributes or its bootstrap read that the scan did not find? Not assessed: No file the unit depends on was listed as missing, unreadable or unresolved; that does not establish that the scripts and templates are the right ones.
  • Target preconditions: What must exist on STACKIT before a resource of the draft works? Not assessed: No plan manual action of the kind target precondition names the unit in this build.
  • Cutover: What must be true before the cutover? Not assessed: This build reads the cutover from two things only: the DNS endpoint reading (a record whose address the draft re-binds to a generated resource carries the cutover requirement; an A or AAAA record whose address is not bound to one needs evidence) and the manual actions of the plan that are due before the cutover. A unit none of them names is not assessed, which is not ready.
  • Day 2 operations: What do the plans ask after the move? Not assessed: No plan manual action due on day 2 or for optimisation names the unit in this build.
Units with open workload items (1)
UnitBootstrap configurationSource artifactsTarget preconditionsCutoverDay 2 operations
module.retail_app_ecs.aws_cloudwatch_log_group.ecs_tasks NOT APPLICABLE NOT APPLICABLE READY WITH ACTIONS
action DEC-OPS-STACKITLOGS-ACTION-TARGET-PRECONDITION (alias stackitlogs:token:stackit_logs_instance.logs_retention_180d)
READY WITH ACTIONS
action DEC-OPS-STACKITLOGS-ACTION-ARCHIVE-FLOW (alias stackitlogs:archive:module.retail_app_ecs.aws_cloudwatch_log_group.ecs_tasks)
action DEC-OPS-STACKITLOGS-ACTION-LABEL-CONVENTION (alias stackitlogs:label-convention:module.retail_app_ecs.aws_cloudwatch_log_group.ecs_tasks)
action DEC-OPS-STACKITLOGS-ACTION-TARGET-PRECONDITION (alias stackitlogs:token:stackit_logs_instance.logs_retention_180d)
NOT APPLICABLE
Dimensions of operational readiness that this build does not state (20)

Each is not assessed. Naming them keeps the gap visible: a generated Terraform resource does not mark them ready.

  • IAM: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • WIF: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Audit logs: not assessed — the draft creates and configures no audit log: the record of administrative activity is a platform fact, not something the draft made. STACKIT Audit Log (capability registry security.audit-log): The platform-wide record of administrative activity (who called which API in an organisation, folder or project): on by default, 90 days of history in the Portal, readable with the audit-log.reader role, routed onward with the Telemetry Router. It records API calls, not the resulting configuration. No Terraform resource enables or configures it. A Telemetry Router destination is drafted for a source CloudTrail trail with logging on; the router takes the Audit Logs of STACKIT products only, so none is drafted for a CloudWatch metric stream or log delivery destination; the link that makes the router receive the project's audit events is not drafted, a person sets it up; the legacy Audit Log API was decommissioned on 2026-06-02, and the Telemetry Router is the way to take the log out.
  • Application logs: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Metrics: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Traces: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Alerts: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Backup: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Restore: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • DR: not assessed — this build states nothing about it; business recovery objectives (RTO, RPO) are not provided to this build
  • Patching: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Upgrade lifecycle: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Support: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Quota monitoring: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Incident handling: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Capacity: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Cost allocation: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Security posture: not assessed — the draft does not enable it and the provider has no resource for it: CSPM is a platform fact, not something the draft made. STACKIT Cloud Security Posture Management (capability registry security.posture-management): Managed security posture management (assessment of a project against fixed benchmarks): STACKIT Cloud Security Posture Management, a Portal service (generally available since 2026-10-05; enabled in the Portal or through the Service Enablement API) whose documented API reference is labelled v1beta, with no Terraform resource. It shows a project-level dashboard with a scan every 24 hours and offers no alerting. Managed threat detection is not part of it. It scans against BSI C5, ISO 27000 and the STACKIT standard. Where the estate has AWS Config or Security Hub rules they are not carried: a person enables CSPM and maps the controls.
  • Secrets: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure
  • Runbook ownership: not assessed — this build states nothing about it; the estate-level blocks (assurance, support) are not a per-workload measure

Data movement

Decision required StackToIT never moves data. 6 stateful source units are listed here: a person must choose a data-movement mechanism for each, and none is chosen (the mechanism is UNKNOWN).

Stateful source units (6). The mechanism of every unit is unknown: a person chooses it from the size of the data, the downtime tolerated and the consistency the application needs, none of which the source states.
UnitSource typeTarget serviceStateMechanismData classRPODowntime toleranceProvisioned capacity
module.dependencies.aws_mq_broker.mq aws_mq_broker STACKIT RabbitMQ Decision required unknown NOT_PROVIDED NOT_PROVIDED NOT_PROVIDED not stated in the source
module.dependencies.module.catalog_opensearch.aws_opensearch_domain.this aws_opensearch_domain STACKIT OpenSearch Decision required unknown NOT_PROVIDED NOT_PROVIDED NOT_PROVIDED ebs_options.volume_size 50 (provisioned capacity, not data size)
module.dependencies.module.catalog_rds.aws_rds_cluster.this aws_rds_cluster STACKIT MariaDB Decision required unknown NOT_PROVIDED NOT_PROVIDED NOT_PROVIDED not stated in the source
module.dependencies.module.checkout_elasticache_redis.aws_elasticache_replication_group.default aws_elasticache_replication_group STACKIT Key Value Store (Valkey) Decision required unknown NOT_PROVIDED NOT_PROVIDED NOT_PROVIDED not stated in the source
module.dependencies.module.dynamodb_carts.aws_dynamodb_table.this aws_dynamodb_table STACKIT MongoDB Flex (alternative — data-model redesign; PostgreSQL Flex JSONB is the other option) Decision required unknown NOT_PROVIDED NOT_PROVIDED NOT_PROVIDED not stated in the source
module.dependencies.module.orders_rds.aws_rds_cluster.this aws_rds_cluster STACKIT PostgreSQL Flex Decision required unknown NOT_PROVIDED NOT_PROVIDED NOT_PROVIDED not stated in the source
module.dependencies.aws_mq_broker.mq: facets, unknowns and actions

No mechanism is chosen: a broker holds no dataset the source states, but its definitions (users, exchanges, queues, bindings, policies) and the messages in flight are state that has to move, and what moves them depends on the downtime the business tolerates and on the queue depths, which the source does not state. Candidate method, not chosen and not tried on a STACKIT instance: export the definitions of the Amazon MQ broker (the RabbitMQ definitions export, which lists users, vhosts, queues, exchanges, bindings and runtime parameters, not messages) and import the topology into the STACKIT RabbitMQ instance, stop the producers and drain the queues before the cutover, and point the clients at the new endpoint with new credentials: the draft copies no broker user and writes one stackit_rabbitmq_credential for the instance (a user whose username and password STACKIT generates).

  • consistency requirements: Not assessed No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person.
  • validation requirement: Not assessed This build does not state how the moved data is validated.
  • cutover dependency: Observed The unit is in wave 4 of the dependency order. It depends on: module.dependencies.aws_security_group.mq, module.vpc.module.vpc.aws_subnet.private.
  • rollback consideration: Not assessed No rollback consideration is stated by the source or by this build.
  • encryption requirement: Not assessed No in-transit encryption requirement is stated for this unit by the source or by this build.

Unknown:

  • The size of the data is not in the source.
  • The rate at which the data changes is not in the source.
  • The queues, their depths and the messages in flight at the cutover are not in the source.
  • The downtime the business tolerates is not provided.
  • The recovery point the business requires is not provided.
  • The classification of the data is not provided.
module.dependencies.module.catalog_opensearch.aws_opensearch_domain.this: facets, unknowns and actions

No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.

  • consistency requirements: Not assessed No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person.
  • validation requirement: Not assessed This build does not state how the moved data is validated.
  • cutover dependency: Observed The unit is in wave 4 of the dependency order. It depends on: module.dependencies.aws_security_group.catalog_opensearch_sg, module.vpc.module.vpc.aws_subnet.private.
  • rollback consideration: Not assessed No rollback consideration is stated by the source or by this build.
  • encryption requirement: Not assessed No in-transit encryption requirement is stated for this unit by the source or by this build.

Unknown:

  • The size of the data is not in the source.
  • The rate at which the data changes is not in the source.
  • The downtime the business tolerates is not provided.
  • The recovery point the business requires is not provided.
  • The classification of the data is not provided.
module.dependencies.module.catalog_rds.aws_rds_cluster.this: facets, unknowns and actions

No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.

  • consistency requirements: Not assessed No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person.
  • validation requirement: Not assessed This build does not state how the moved data is validated.
  • cutover dependency: Observed The unit is in wave 4 of the dependency order. It depends on: module.dependencies.module.catalog_rds.aws_security_group.this, module.vpc.module.vpc.aws_subnet.private.
  • rollback consideration: Not assessed No rollback consideration is stated by the source or by this build.
  • encryption requirement: Not assessed The source does not state tls-enforcement; an absent setting is not read as a requirement.

Unknown:

  • The size of the data is not in the source.
  • The rate at which the data changes is not in the source.
  • The downtime the business tolerates is not provided.
  • The recovery point the business requires is not provided.
  • The classification of the data is not provided.
module.dependencies.module.checkout_elasticache_redis.aws_elasticache_replication_group.default: facets, unknowns and actions

No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.

  • consistency requirements: Not assessed No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person.
  • validation requirement: Not assessed This build does not state how the moved data is validated.
  • cutover dependency: Observed The unit is in wave 4 of the dependency order. It depends on: module.dependencies.module.checkout_elasticache_redis.module.aws_security_group.aws_security_group.cbd, module.vpc.module.vpc.aws_subnet.private.
  • rollback consideration: Not assessed No rollback consideration is stated by the source or by this build.
  • encryption requirement: Observed The source states that clients connect without TLS (transit_encryption_enabled = false; finding redis-transit-encryption-off). The STACKIT Key Value Store accepts TLS only: every client changes the scheme (redis:// becomes rediss://), switches its TLS option on and trusts the CA certificate of the instance before the cutover.

Unknown:

  • The size of the data is not in the source.
  • The rate at which the data changes is not in the source.
  • The downtime the business tolerates is not provided.
  • The recovery point the business requires is not provided.
  • The classification of the data is not provided.
module.dependencies.module.dynamodb_carts.aws_dynamodb_table.this: facets, unknowns and actions

No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.

  • consistency requirements: Not assessed No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person.
  • validation requirement: Not assessed This build does not state how the moved data is validated.
  • cutover dependency: Observed The unit is in wave 1 of the dependency order. It depends on no other unit.
  • rollback consideration: Not assessed No rollback consideration is stated by the source or by this build.
  • encryption requirement: Not assessed No in-transit encryption requirement is stated for this unit by the source or by this build.

Unknown:

  • The size of the data is not in the source.
  • The rate at which the data changes is not in the source.
  • The downtime the business tolerates is not provided.
  • The recovery point the business requires is not provided.
  • The classification of the data is not provided.
module.dependencies.module.orders_rds.aws_rds_cluster.this: facets, unknowns and actions

No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.

  • consistency requirements: Not assessed No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person.
  • validation requirement: Not assessed This build does not state how the moved data is validated.
  • cutover dependency: Observed The unit is in wave 4 of the dependency order. It depends on: module.dependencies.module.orders_rds.aws_security_group.this, module.vpc.module.vpc.aws_subnet.private.
  • rollback consideration: Not assessed No rollback consideration is stated by the source or by this build.
  • encryption requirement: Not assessed The source does not state tls-enforcement; an absent setting is not read as a requirement.

Unknown:

  • The size of the data is not in the source.
  • The rate at which the data changes is not in the source.
  • The downtime the business tolerates is not provided.
  • The recovery point the business requires is not provided.
  • The classification of the data is not provided.

Resilience

Evidence required Requirement: business requirement not provided. No RTO or RPO was stated (BUSINESS_REQUIREMENT_NOT_PROVIDED): no architecture is called resilient against it, and no value is assumed.

Units that hold state or state a zone, replication or backup fact (6). No unit is called resilient and no resilience intent is chosen.
UnitSource typeApplicationWhat the source statesIntentStateWhy
module.dependencies.module.catalog_opensearch.aws_opensearch_domain.this aws_opensearch_domain none availability zone: not stated in the source (an absent zone is not read as a default zone)
unknown Evidence required Intent UNKNOWN: decision requires evidence. No applications file was given, so no RTO or RPO is stated. The availability-zone and metro placement of the target are NOT_ASSESSED: this build holds no evidence for them.
module.dependencies.module.catalog_rds.aws_rds_cluster.this aws_rds_cluster none availability zone: not stated in the source (an absent zone is not read as a default zone)
contract item backup-retention: observed yes; disposition LEDGER (the state of the contract item, not a setting of the target)
contract item readable-standbys: observed yes; disposition NOT_APPLICABLE (the state of the contract item, not a setting of the target)
unknown Evidence required Intent UNKNOWN: decision requires evidence. No applications file was given, so no RTO or RPO is stated. The availability-zone and metro placement of the target are NOT_ASSESSED: this build holds no evidence for them.
module.dependencies.module.checkout_elasticache_redis.aws_elasticache_replication_group.default aws_elasticache_replication_group none multi-zone switch of the service: false (the switch as the source writes it)
unknown Evidence required Intent UNKNOWN: decision requires evidence. No applications file was given, so no RTO or RPO is stated. The availability-zone and metro placement of the target are NOT_ASSESSED: this build holds no evidence for them.
module.dependencies.module.dynamodb_carts.aws_dynamodb_table.this aws_dynamodb_table none availability zone: NOT_ASSESSED: no placement adapter reads this source type in this build (not read, which is not the same as not stated)
unknown Evidence required Intent UNKNOWN: decision requires evidence. No applications file was given, so no RTO or RPO is stated. The availability-zone and metro placement of the target are NOT_ASSESSED: this build holds no evidence for them.
module.dependencies.module.orders_rds.aws_rds_cluster.this aws_rds_cluster none availability zone: not stated in the source (an absent zone is not read as a default zone)
contract item backup-retention: observed yes; disposition LEDGER (the state of the contract item, not a setting of the target)
contract item readable-standbys: observed yes; disposition NOT_APPLICABLE (the state of the contract item, not a setting of the target)
unknown Evidence required Intent UNKNOWN: decision requires evidence. No applications file was given, so no RTO or RPO is stated. The availability-zone and metro placement of the target are NOT_ASSESSED: this build holds no evidence for them.
module.retail_app_ecs.module.alb.aws_lb.this aws_lb none availability zone: not stated in the source (an absent zone is not read as a default zone)
contract item cross-zone: observed yes; disposition PRESERVED (the state of the contract item, not a setting of the target)
unknown Evidence required Intent UNKNOWN: decision requires evidence. No applications file was given, so no RTO or RPO is stated. The availability-zone and metro placement of the target are NOT_ASSESSED: this build holds no evidence for them.