Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Signing flow explained in README #265

Merged
merged 1 commit into from
Aug 21, 2023
Merged

Conversation

volovyks
Copy link
Collaborator

No description provided.

@volovyks volovyks requested a review from hcho112 August 16, 2023 10:37
@github-actions
Copy link

Terraform Dev Environment

Terraform Format and Style 🖌success

Format Check Output


Terraform Initialization ⚙️success

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan

data.external.git_checkout: Reading...
data.external.git_checkout: Read complete after 0s [id=-]
google_service_account.service_account: Refreshing state... [id=projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
google_artifact_registry_repository.mpc_recovery: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/repositories/mpc-recovery-dev]
google_service_account_iam_binding.serivce-account-iam: Refreshing state... [id=projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com/roles/iam.serviceAccountUser]
google_project_iam_member.service-account-datastore-user: Refreshing state... [id=pagoda-discovery-platform-dev/roles/datastore.user/serviceAccount:mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
docker_image.mpc_recovery: Refreshing state... [id=sha256:fb15c4e1a34052bbf24192cca63bcb29e01a6489688d5b7f2416f78490353ad4us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:4438779be58803036ca817cf481a884eab6bd59d]
docker_registry_image.mpc_recovery: Refreshing state... [id=sha256:22ae784e18f44a7fe48c64941bbc11fcf0a1415a579394a2c1bd27c96daa50da]
module.signer[1].google_secret_manager_secret.secret_share: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev]
module.signer[2].google_secret_manager_secret.secret_share: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev]
module.signer[0].google_secret_manager_secret.secret_share: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev]
module.signer[2].google_secret_manager_secret.cipher_key: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev]
module.signer[1].google_secret_manager_secret.cipher_key: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev]
module.signer[0].google_secret_manager_secret.cipher_key: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev]
module.signer[2].google_secret_manager_secret_iam_member.secret_share_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[0].google_secret_manager_secret_iam_member.secret_share_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_secret_manager_secret_iam_member.secret_share_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[0].google_secret_manager_secret_version.secret_share_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-secret-share-0-dev/versions/1]
module.signer[0].google_secret_manager_secret_version.cipher_key_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-0-dev/versions/1]
module.signer[2].google_secret_manager_secret_iam_member.cipher_key_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[0].google_secret_manager_secret_iam_member.cipher_key_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_secret_manager_secret_iam_member.cipher_key_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[2].google_secret_manager_secret_version.secret_share_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-secret-share-2-dev/versions/1]
module.signer[1].google_secret_manager_secret_version.secret_share_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-secret-share-1-dev/versions/1]
module.signer[1].google_secret_manager_secret_version.cipher_key_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-1-dev/versions/1]
module.signer[2].google_secret_manager_secret_version.cipher_key_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-2-dev/versions/1]
module.signer[1].google_cloud_run_v2_service.signer: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev]
module.signer[2].google_cloud_run_v2_service.signer: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev]
module.signer[0].google_cloud_run_v2_service.signer: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev]
module.signer[2].google_cloud_run_v2_service_iam_member.allow_all: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev/roles/run.invoker/allUsers]
module.signer[0].google_cloud_run_v2_service_iam_member.allow_all: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev/roles/run.invoker/allUsers]
module.signer[1].google_cloud_run_v2_service_iam_member.allow_all: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev/roles/run.invoker/allUsers]
module.leader.google_secret_manager_secret.account_creator_sk: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev]
module.leader.google_secret_manager_secret_version.account_creator_sk_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-account-creator-sk-dev/versions/1]
module.leader.google_secret_manager_secret_iam_member.account_creator_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.leader.google_cloud_run_v2_service.leader: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev]
module.leader.google_cloud_run_v2_service_iam_member.allow_all: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev/roles/run.invoker/allUsers]

Note: Objects have changed outside of Terraform

Terraform detected the following changes made outside of Terraform since the
last "terraform apply" which may have affected this plan:

  # docker_image.mpc_recovery has been deleted
  - resource "docker_image" "mpc_recovery" {
        id       = "sha256:fb15c4e1a34052bbf24192cca63bcb29e01a6489688d5b7f2416f78490353ad4us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:4438779be58803036ca817cf481a884eab6bd59d"
      - name     = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:4438779be58803036ca817cf481a884eab6bd59d" -> null
        # (1 unchanged attribute hidden)

        # (1 unchanged block hidden)
    }


Unless you have made equivalent changes to your configuration, or ignored the
relevant attributes using ignore_changes, the following plan may include
actions to undo or respond to these changes.

─────────────────────────────────────────────────────────────────────────────

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # docker_image.mpc_recovery will be created
  + resource "docker_image" "mpc_recovery" {
      + id          = (known after apply)
      + image_id    = (known after apply)
      + name        = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:87ce47929de14b40084a7c6c5a03035bfb0073fa"
      + repo_digest = (known after apply)

      + build {
          + cache_from   = []
          + context      = "/home/runner/work/mpc-recovery/mpc-recovery/infra/.."
          + dockerfile   = "Dockerfile"
          + extra_hosts  = []
          + remove       = true
          + security_opt = []
          + tag          = []
        }
    }

  # docker_registry_image.mpc_recovery must be replaced
-/+ resource "docker_registry_image" "mpc_recovery" {
      ~ id                   = "sha256:22ae784e18f44a7fe48c64941bbc11fcf0a1415a579394a2c1bd27c96daa50da" -> (known after apply)
      ~ name                 = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:4438779be58803036ca817cf481a884eab6bd59d" -> "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:87ce47929de14b40084a7c6c5a03035bfb0073fa" # forces replacement
      ~ sha256_digest        = "sha256:22ae784e18f44a7fe48c64941bbc11fcf0a1415a579394a2c1bd27c96daa50da" -> (known after apply)
        # (2 unchanged attributes hidden)
    }

  # module.leader.google_cloud_run_v2_service.leader will be updated in-place
  ~ resource "google_cloud_run_v2_service" "leader" {
        id                      = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev"
        name                    = "mpc-recovery-leader-dev"
        # (17 unchanged attributes hidden)

      ~ template {
            # (6 unchanged attributes hidden)

          ~ containers {
              ~ image   = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:4438779be58803036ca817cf481a884eab6bd59d" -> "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:87ce47929de14b40084a7c6c5a03035bfb0073fa"
                # (2 unchanged attributes hidden)

                # (13 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.signer[0].google_cloud_run_v2_service.signer will be updated in-place
  ~ resource "google_cloud_run_v2_service" "signer" {
        id                      = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev"
        name                    = "mpc-recovery-signer-0-dev"
        # (17 unchanged attributes hidden)

      ~ template {
            # (6 unchanged attributes hidden)

          ~ containers {
              ~ image   = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:4438779be58803036ca817cf481a884eab6bd59d" -> "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:87ce47929de14b40084a7c6c5a03035bfb0073fa"
                # (2 unchanged attributes hidden)

                # (9 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.signer[1].google_cloud_run_v2_service.signer will be updated in-place
  ~ resource "google_cloud_run_v2_service" "signer" {
        id                      = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev"
        name                    = "mpc-recovery-signer-1-dev"
        # (17 unchanged attributes hidden)

      ~ template {
            # (6 unchanged attributes hidden)

          ~ containers {
              ~ image   = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:4438779be58803036ca817cf481a884eab6bd59d" -> "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:87ce47929de14b40084a7c6c5a03035bfb0073fa"
                # (2 unchanged attributes hidden)

                # (9 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.signer[2].google_cloud_run_v2_service.signer will be updated in-place
  ~ resource "google_cloud_run_v2_service" "signer" {
        id                      = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev"
        name                    = "mpc-recovery-signer-2-dev"
        # (17 unchanged attributes hidden)

      ~ template {
            # (6 unchanged attributes hidden)

          ~ containers {
              ~ image   = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:4438779be58803036ca817cf481a884eab6bd59d" -> "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev/mpc-recovery-dev:87ce47929de14b40084a7c6c5a03035bfb0073fa"
                # (2 unchanged attributes hidden)

                # (9 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

Plan: 2 to add, 4 to change, 1 to destroy.

─────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.

Pusher: @volovyks, Action: pull_request, Working Directory: ``, Workflow: Terraform Dev

@github-actions
Copy link

Terraform Feature Environment (dev-265)

Terraform Initialization ⚙️success

Terraform Apply success

Show Apply Plan

data.external.git_checkout: Reading...
data.external.git_checkout: Read complete after 0s [id=-]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # docker_image.mpc_recovery will be created
  + resource "docker_image" "mpc_recovery" {
      + id          = (known after apply)
      + image_id    = (known after apply)
      + name        = (known after apply)
      + repo_digest = (known after apply)

      + build {
          + cache_from   = []
          + context      = "/home/runner/work/mpc-recovery/mpc-recovery/infra/.."
          + dockerfile   = "Dockerfile"
          + extra_hosts  = []
          + remove       = true
          + security_opt = []
          + tag          = []
        }
    }

  # docker_registry_image.mpc_recovery will be created
  + resource "docker_registry_image" "mpc_recovery" {
      + id                   = (known after apply)
      + insecure_skip_verify = false
      + keep_remotely        = true
      + name                 = (known after apply)
      + sha256_digest        = (known after apply)
    }

  # google_artifact_registry_repository.mpc_recovery will be created
  + resource "google_artifact_registry_repository" "mpc_recovery" {
      + create_time   = (known after apply)
      + format        = "DOCKER"
      + id            = (known after apply)
      + location      = (known after apply)
      + mode          = "STANDARD_REPOSITORY"
      + name          = (known after apply)
      + project       = (known after apply)
      + repository_id = "mpc-recovery-dev-265"
      + update_time   = (known after apply)
    }

  # google_project_iam_member.service-account-datastore-user will be created
  + resource "google_project_iam_member" "service-account-datastore-user" {
      + etag    = (known after apply)
      + id      = (known after apply)
      + member  = (known after apply)
      + project = "pagoda-discovery-platform-dev"
      + role    = "roles/datastore.user"
    }

  # google_service_account.service_account will be created
  + resource "google_service_account" "service_account" {
      + account_id   = "mpc-recovery-dev-265"
      + disabled     = false
      + display_name = "MPC Recovery dev-265 Account"
      + email        = (known after apply)
      + id           = (known after apply)
      + member       = (known after apply)
      + name         = (known after apply)
      + project      = (known after apply)
      + unique_id    = (known after apply)
    }

  # google_service_account_iam_binding.serivce-account-iam will be created
  + resource "google_service_account_iam_binding" "serivce-account-iam" {
      + etag               = (known after apply)
      + id                 = (known after apply)
      + members            = [
          + "serviceAccount:mpc-recovery@pagoda-discovery-platform-dev.iam.gserviceaccount.com",
        ]
      + role               = "roles/iam.serviceAccountUser"
      + service_account_id = (known after apply)
    }

  # module.leader.google_cloud_run_v2_service.leader will be created
  + resource "google_cloud_run_v2_service" "leader" {
      + conditions              = (known after apply)
      + etag                    = (known after apply)
      + generation              = (known after apply)
      + id                      = (known after apply)
      + ingress                 = "INGRESS_TRAFFIC_ALL"
      + latest_created_revision = (known after apply)
      + latest_ready_revision   = (known after apply)
      + launch_stage            = (known after apply)
      + location                = "us-east1"
      + name                    = "mpc-recovery-leader-dev-265"
      + observed_generation     = (known after apply)
      + project                 = (known after apply)
      + reconciling             = (known after apply)
      + terminal_condition      = (known after apply)
      + traffic_statuses        = (known after apply)
      + uid                     = (known after apply)
      + uri                     = (known after apply)

      + template {
          + max_instance_request_concurrency = (known after apply)
          + service_account                  = (known after apply)
          + timeout                          = (known after apply)

          + containers {
              + args  = [
                  + "start-leader",
                ]
              + image = (known after apply)

              + env {
                  + name  = "MPC_RECOVERY_WEB_PORT"
                  + value = "3000"
                }
              + env {
                  + name  = "MPC_RECOVERY_SIGN_NODES"
                  + value = (known after apply)
                }
              + env {
                  + name  = "MPC_RECOVERY_NEAR_RPC"
                  + value = "https://rpc.testnet.near.org"
                }
              + env {
                  + name  = "MPC_RECOVERY_RELAYER_URL"
                  + value = "http://34.70.226.83:3030"
                }
              + env {
                  + name  = "MPC_RECOVERY_NEAR_ROOT_ACCOUNT"
                  + value = "testnet"
                }
              + env {
                  + name  = "MPC_RECOVERY_ACCOUNT_CREATOR_ID"
                  + value = "tmp_acount_creator.serhii.testnet"
                }
              + env {
                  + name  = "PAGODA_FIREBASE_AUDIENCE_ID"
                  + value = "pagoda-oboarding-dev"
                }
              + env {
                  + name  = "MPC_RECOVERY_GCP_PROJECT_ID"
                  + value = "pagoda-discovery-platform-dev"
                }
              + env {
                  + name  = "MPC_RECOVERY_ENV"
                  + value = "dev-265"
                }
              + env {
                  + name  = "RUST_LOG"
                  + value = "mpc_recovery=debug"
                }

              + ports {
                  + container_port = 3000
                  + name           = (known after apply)
                }

              + resources {
                  + cpu_idle = false
                  + limits   = {
                      + "cpu"    = "2"
                      + "memory" = "2Gi"
                    }
                }
            }

          + scaling {
              + max_instance_count = 1
              + min_instance_count = 1
            }
        }
    }

  # module.leader.google_cloud_run_v2_service_iam_member.allow_all will be created
  + resource "google_cloud_run_v2_service_iam_member" "allow_all" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + location = "us-east1"
      + member   = "allUsers"
      + name     = "mpc-recovery-leader-dev-265"
      + project  = (known after apply)
      + role     = "roles/run.invoker"
    }

  # module.leader.google_secret_manager_secret.account_creator_sk will be created
  + resource "google_secret_manager_secret" "account_creator_sk" {
      + create_time = (known after apply)
      + expire_time = (known after apply)
      + id          = (known after apply)
      + name        = (known after apply)
      + project     = (known after apply)
      + secret_id   = "mpc-recovery-account-creator-sk-dev-265"

      + replication {
          + automatic = true
        }
    }

  # module.leader.google_secret_manager_secret_iam_member.account_creator_secret_access will be created
  + resource "google_secret_manager_secret_iam_member" "account_creator_secret_access" {
      + etag      = (known after apply)
      + id        = (known after apply)
      + member    = (known after apply)
      + project   = (known after apply)
      + role      = "roles/secretmanager.secretAccessor"
      + secret_id = (known after apply)
    }

  # module.leader.google_secret_manager_secret_version.account_creator_sk_data will be created
  + resource "google_secret_manager_secret_version" "account_creator_sk_data" {
      + create_time  = (known after apply)
      + destroy_time = (known after apply)
      + enabled      = true
      + id           = (known after apply)
      + name         = (known after apply)
      + secret       = (known after apply)
      + secret_data  = (sensitive value)
      + version      = (known after apply)
    }

  # module.signer[0].google_cloud_run_v2_service.signer will be created
  + resource "google_cloud_run_v2_service" "signer" {
      + conditions              = (known after apply)
      + etag                    = (known after apply)
      + generation              = (known after apply)
      + id                      = (known after apply)
      + ingress                 = "INGRESS_TRAFFIC_ALL"
      + latest_created_revision = (known after apply)
      + latest_ready_revision   = (known after apply)
      + launch_stage            = (known after apply)
      + location                = "us-east1"
      + name                    = "mpc-recovery-signer-0-dev-265"
      + observed_generation     = (known after apply)
      + project                 = (known after apply)
      + reconciling             = (known after apply)
      + terminal_condition      = (known after apply)
      + traffic_statuses        = (known after apply)
      + uid                     = (known after apply)
      + uri                     = (known after apply)

      + template {
          + max_instance_request_concurrency = (known after apply)
          + service_account                  = (known after apply)
          + timeout                          = (known after apply)

          + containers {
              + args  = [
                  + "start-sign",
                ]
              + image = (known after apply)

              + env {
                  + name  = "MPC_RECOVERY_WEB_PORT"
                  + value = "3000"
                }
              + env {
                  + name  = "MPC_RECOVERY_NODE_ID"
                  + value = "0"
                }
              + env {
                  + name  = "PAGODA_FIREBASE_AUDIENCE_ID"
                  + value = "pagoda-oboarding-dev"
                }
              + env {
                  + name  = "MPC_RECOVERY_GCP_PROJECT_ID"
                  + value = "pagoda-discovery-platform-dev"
                }
              + env {
                  + name  = "MPC_RECOVERY_ENV"
                  + value = "dev-265"
                }
              + env {
                  + name  = "RUST_LOG"
                  + value = "mpc_recovery=debug"
                }

              + ports {
                  + container_port = 3000
                  + name           = (known after apply)
                }

              + resources {
                  + cpu_idle = false
                  + limits   = {
                      + "cpu"    = "2"
                      + "memory" = "2Gi"
                    }
                }
            }

          + scaling {
              + max_instance_count = 1
              + min_instance_count = 1
            }
        }
    }

  # module.signer[0].google_cloud_run_v2_service_iam_member.allow_all will be created
  + resource "google_cloud_run_v2_service_iam_member" "allow_all" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + location = "us-east1"
      + member   = "allUsers"
      + name     = "mpc-recovery-signer-0-dev-265"
      + project  = (known after apply)
      + role     = "roles/run.invoker"
    }

  # module.signer[0].google_secret_manager_secret.cipher_key will be created
  + resource "google_secret_manager_secret" "cipher_key" {
      + create_time = (known after apply)
      + expire_time = (known after apply)
      + id          = (known after apply)
      + name        = (known after apply)
      + project     = (known after apply)
      + secret_id   = "mpc-recovery-encryption-cipher-0-dev-265"

      + replication {
          + automatic = true
        }
    }

  # module.signer[0].google_secret_manager_secret.secret_share will be created
  + resource "google_secret_manager_secret" "secret_share" {
      + create_time = (known after apply)
      + expire_time = (known after apply)
      + id          = (known after apply)
      + name        = (known after apply)
      + project     = (known after apply)
      + secret_id   = "mpc-recovery-secret-share-0-dev-265"

      + replication {
          + automatic = true
        }
    }

  # module.signer[0].google_secret_manager_secret_iam_member.cipher_key_secret_access will be created
  + resource "google_secret_manager_secret_iam_member" "cipher_key_secret_access" {
      + etag      = (known after apply)
      + id        = (known after apply)
      + member    = (known after apply)
      + project   = (known after apply)
      + role      = "roles/secretmanager.secretAccessor"
      + secret_id = (known after apply)
    }

  # module.signer[0].google_secret_manager_secret_iam_member.secret_share_secret_access will be created
  + resource "google_secret_manager_secret_iam_member" "secret_share_secret_access" {
      + etag      = (known after apply)
      + id        = (known after apply)
      + member    = (known after apply)
      + project   = (known after apply)
      + role      = "roles/secretmanager.secretAccessor"
      + secret_id = (known after apply)
    }

  # module.signer[0].google_secret_manager_secret_version.cipher_key_data will be created
  + resource "google_secret_manager_secret_version" "cipher_key_data" {
      + create_time  = (known after apply)
      + destroy_time = (known after apply)
      + enabled      = true
      + id           = (known after apply)
      + name         = (known after apply)
      + secret       = (known after apply)
      + secret_data  = (sensitive value)
      + version      = (known after apply)
    }

  # module.signer[0].google_secret_manager_secret_version.secret_share_data will be created
  + resource "google_secret_manager_secret_version" "secret_share_data" {
      + create_time  = (known after apply)
      + destroy_time = (known after apply)
      + enabled      = true
      + id           = (known after apply)
      + name         = (known after apply)
      + secret       = (known after apply)
      + secret_data  = (sensitive value)
      + version      = (known after apply)
    }

  # module.signer[1].google_cloud_run_v2_service.signer will be created
  + resource "google_cloud_run_v2_service" "signer" {
      + conditions              = (known after apply)
      + etag                    = (known after apply)
      + generation              = (known after apply)
      + id                      = (known after apply)
      + ingress                 = "INGRESS_TRAFFIC_ALL"
      + latest_created_revision = (known after apply)
      + latest_ready_revision   = (known after apply)
      + launch_stage            = (known after apply)
      + location                = "us-east1"
      + name                    = "mpc-recovery-signer-1-dev-265"
      + observed_generation     = (known after apply)
      + project                 = (known after apply)
      + reconciling             = (known after apply)
      + terminal_condition      = (known after apply)
      + traffic_statuses        = (known after apply)
      + uid                     = (known after apply)
      + uri                     = (known after apply)

      + template {
          + max_instance_request_concurrency = (known after apply)
          + service_account                  = (known after apply)
          + timeout                          = (known after apply)

          + containers {
              + args  = [
                  + "start-sign",
                ]
              + image = (known after apply)

              + env {
                  + name  = "MPC_RECOVERY_WEB_PORT"
                  + value = "3000"
                }
              + env {
                  + name  = "MPC_RECOVERY_NODE_ID"
                  + value = "1"
                }
              + env {
                  + name  = "PAGODA_FIREBASE_AUDIENCE_ID"
                  + value = "pagoda-oboarding-dev"
                }
              + env {
                  + name  = "MPC_RECOVERY_GCP_PROJECT_ID"
                  + value = "pagoda-discovery-platform-dev"
                }
              + env {
                  + name  = "MPC_RECOVERY_ENV"
                  + value = "dev-265"
                }
              + env {
                  + name  = "RUST_LOG"
                  + value = "mpc_recovery=debug"
                }

              + ports {
                  + container_port = 3000
                  + name           = (known after apply)
                }

              + resources {
                  + cpu_idle = false
                  + limits   = {
                      + "cpu"    = "2"
                      + "memory" = "2Gi"
                    }
                }
            }

          + scaling {
              + max_instance_count = 1
              + min_instance_count = 1
            }
        }
    }

  # module.signer[1].google_cloud_run_v2_service_iam_member.allow_all will be created
  + resource "google_cloud_run_v2_service_iam_member" "allow_all" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + location = "us-east1"
      + member   = "allUsers"
      + name     = "mpc-recovery-signer-1-dev-265"
      + project  = (known after apply)
      + role     = "roles/run.invoker"
    }

  # module.signer[1].google_secret_manager_secret.cipher_key will be created
  + resource "google_secret_manager_secret" "cipher_key" {
      + create_time = (known after apply)
      + expire_time = (known after apply)
      + id          = (known after apply)
      + name        = (known after apply)
      + project     = (known after apply)
      + secret_id   = "mpc-recovery-encryption-cipher-1-dev-265"

      + replication {
          + automatic = true
        }
    }

  # module.signer[1].google_secret_manager_secret.secret_share will be created
  + resource "google_secret_manager_secret" "secret_share" {
      + create_time = (known after apply)
      + expire_time = (known after apply)
      + id          = (known after apply)
      + name        = (known after apply)
      + project     = (known after apply)
      + secret_id   = "mpc-recovery-secret-share-1-dev-265"

      + replication {
          + automatic = true
        }
    }

  # module.signer[1].google_secret_manager_secret_iam_member.cipher_key_secret_access will be created
  + resource "google_secret_manager_secret_iam_member" "cipher_key_secret_access" {
      + etag      = (known after apply)
      + id        = (known after apply)
      + member    = (known after apply)
      + project   = (known after apply)
      + role      = "roles/secretmanager.secretAccessor"
      + secret_id = (known after apply)
    }

  # module.signer[1].google_secret_manager_secret_iam_member.secret_share_secret_access will be created
  + resource "google_secret_manager_secret_iam_member" "secret_share_secret_access" {
      + etag      = (known after apply)
      + id        = (known after apply)
      + member    = (known after apply)
      + project   = (known after apply)
      + role      = "roles/secretmanager.secretAccessor"
      + secret_id = (known after apply)
    }

  # module.signer[1].google_secret_manager_secret_version.cipher_key_data will be created
  + resource "google_secret_manager_secret_version" "cipher_key_data" {
      + create_time  = (known after apply)
      + destroy_time = (known after apply)
      + enabled      = true
      + id           = (known after apply)
      + name         = (known after apply)
      + secret       = (known after apply)
      + secret_data  = (sensitive value)
      + version      = (known after apply)
    }

  # module.signer[1].google_secret_manager_secret_version.secret_share_data will be created
  + resource "google_secret_manager_secret_version" "secret_share_data" {
      + create_time  = (known after apply)
      + destroy_time = (known after apply)
      + enabled      = true
      + id           = (known after apply)
      + name         = (known after apply)
      + secret       = (known after apply)
      + secret_data  = (sensitive value)
      + version      = (known after apply)
    }

  # module.signer[2].google_cloud_run_v2_service.signer will be created
  + resource "google_cloud_run_v2_service" "signer" {
      + conditions              = (known after apply)
      + etag                    = (known after apply)
      + generation              = (known after apply)
      + id                      = (known after apply)
      + ingress                 = "INGRESS_TRAFFIC_ALL"
      + latest_created_revision = (known after apply)
      + latest_ready_revision   = (known after apply)
      + launch_stage            = (known after apply)
      + location                = "us-east1"
      + name                    = "mpc-recovery-signer-2-dev-265"
      + observed_generation     = (known after apply)
      + project                 = (known after apply)
      + reconciling             = (known after apply)
      + terminal_condition      = (known after apply)
      + traffic_statuses        = (known after apply)
      + uid                     = (known after apply)
      + uri                     = (known after apply)

      + template {
          + max_instance_request_concurrency = (known after apply)
          + service_account                  = (known after apply)
          + timeout                          = (known after apply)

          + containers {
              + args  = [
                  + "start-sign",
                ]
              + image = (known after apply)

              + env {
                  + name  = "MPC_RECOVERY_WEB_PORT"
                  + value = "3000"
                }
              + env {
                  + name  = "MPC_RECOVERY_NODE_ID"
                  + value = "2"
                }
              + env {
                  + name  = "PAGODA_FIREBASE_AUDIENCE_ID"
                  + value = "pagoda-oboarding-dev"
                }
              + env {
                  + name  = "MPC_RECOVERY_GCP_PROJECT_ID"
                  + value = "pagoda-discovery-platform-dev"
                }
              + env {
                  + name  = "MPC_RECOVERY_ENV"
                  + value = "dev-265"
                }
              + env {
                  + name  = "RUST_LOG"
                  + value = "mpc_recovery=debug"
                }

              + ports {
                  + container_port = 3000
                  + name           = (known after apply)
                }

              + resources {
                  + cpu_idle = false
                  + limits   = {
                      + "cpu"    = "2"
                      + "memory" = "2Gi"
                    }
                }
            }

          + scaling {
              + max_instance_count = 1
              + min_instance_count = 1
            }
        }
    }

  # module.signer[2].google_cloud_run_v2_service_iam_member.allow_all will be created
  + resource "google_cloud_run_v2_service_iam_member" "allow_all" {
      + etag     = (known after apply)
      + id       = (known after apply)
      + location = "us-east1"
      + member   = "allUsers"
      + name     = "mpc-recovery-signer-2-dev-265"
      + project  = (known after apply)
      + role     = "roles/run.invoker"
    }

  # module.signer[2].google_secret_manager_secret.cipher_key will be created
  + resource "google_secret_manager_secret" "cipher_key" {
      + create_time = (known after apply)
      + expire_time = (known after apply)
      + id          = (known after apply)
      + name        = (known after apply)
      + project     = (known after apply)
      + secret_id   = "mpc-recovery-encryption-cipher-2-dev-265"

      + replication {
          + automatic = true
        }
    }

  # module.signer[2].google_secret_manager_secret.secret_share will be created
  + resource "google_secret_manager_secret" "secret_share" {
      + create_time = (known after apply)
      + expire_time = (known after apply)
      + id          = (known after apply)
      + name        = (known after apply)
      + project     = (known after apply)
      + secret_id   = "mpc-recovery-secret-share-2-dev-265"

      + replication {
          + automatic = true
        }
    }

  # module.signer[2].google_secret_manager_secret_iam_member.cipher_key_secret_access will be created
  + resource "google_secret_manager_secret_iam_member" "cipher_key_secret_access" {
      + etag      = (known after apply)
      + id        = (known after apply)
      + member    = (known after apply)
      + project   = (known after apply)
      + role      = "roles/secretmanager.secretAccessor"
      + secret_id = (known after apply)
    }

  # module.signer[2].google_secret_manager_secret_iam_member.secret_share_secret_access will be created
  + resource "google_secret_manager_secret_iam_member" "secret_share_secret_access" {
      + etag      = (known after apply)
      + id        = (known after apply)
      + member    = (known after apply)
      + project   = (known after apply)
      + role      = "roles/secretmanager.secretAccessor"
      + secret_id = (known after apply)
    }

  # module.signer[2].google_secret_manager_secret_version.cipher_key_data will be created
  + resource "google_secret_manager_secret_version" "cipher_key_data" {
      + create_time  = (known after apply)
      + destroy_time = (known after apply)
      + enabled      = true
      + id           = (known after apply)
      + name         = (known after apply)
      + secret       = (known after apply)
      + secret_data  = (sensitive value)
      + version      = (known after apply)
    }

  # module.signer[2].google_secret_manager_secret_version.secret_share_data will be created
  + resource "google_secret_manager_secret_version" "secret_share_data" {
      + create_time  = (known after apply)
      + destroy_time = (known after apply)
      + enabled      = true
      + id           = (known after apply)
      + name         = (known after apply)
      + secret       = (known after apply)
      + secret_data  = (sensitive value)
      + version      = (known after apply)
    }

Plan: 35 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + leader_node = (known after apply)
google_service_account.service_account: Creating...
google_artifact_registry_repository.mpc_recovery: Creating...
google_service_account.service_account: Creation complete after 1s [id=projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
google_project_iam_member.service-account-datastore-user: Creating...
google_service_account_iam_binding.serivce-account-iam: Creating...
google_service_account_iam_binding.serivce-account-iam: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com/roles/iam.serviceAccountUser]
google_project_iam_member.service-account-datastore-user: Creation complete after 8s [id=pagoda-discovery-platform-dev/roles/datastore.user/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
google_artifact_registry_repository.mpc_recovery: Still creating... [10s elapsed]
google_artifact_registry_repository.mpc_recovery: Creation complete after 12s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/repositories/mpc-recovery-dev-265]
docker_image.mpc_recovery: Creating...
docker_image.mpc_recovery: Still creating... [10s elapsed]
docker_image.mpc_recovery: Still creating... [20s elapsed]
docker_image.mpc_recovery: Still creating... [30s elapsed]
docker_image.mpc_recovery: Still creating... [40s elapsed]
docker_image.mpc_recovery: Still creating... [50s elapsed]
docker_image.mpc_recovery: Still creating... [1m0s elapsed]
docker_image.mpc_recovery: Still creating... [1m10s elapsed]
docker_image.mpc_recovery: Still creating... [1m20s elapsed]
docker_image.mpc_recovery: Still creating... [1m30s elapsed]
docker_image.mpc_recovery: Still creating... [1m40s elapsed]
docker_image.mpc_recovery: Still creating... [1m50s elapsed]
docker_image.mpc_recovery: Still creating... [2m0s elapsed]
docker_image.mpc_recovery: Still creating... [2m10s elapsed]
docker_image.mpc_recovery: Still creating... [2m20s elapsed]
docker_image.mpc_recovery: Still creating... [2m30s elapsed]
docker_image.mpc_recovery: Still creating... [2m40s elapsed]
docker_image.mpc_recovery: Still creating... [2m50s elapsed]
docker_image.mpc_recovery: Still creating... [3m0s elapsed]
docker_image.mpc_recovery: Still creating... [3m10s elapsed]
docker_image.mpc_recovery: Still creating... [3m20s elapsed]
docker_image.mpc_recovery: Still creating... [3m30s elapsed]
docker_image.mpc_recovery: Still creating... [3m40s elapsed]
docker_image.mpc_recovery: Still creating... [3m50s elapsed]
docker_image.mpc_recovery: Still creating... [4m0s elapsed]
docker_image.mpc_recovery: Still creating... [4m10s elapsed]
docker_image.mpc_recovery: Still creating... [4m20s elapsed]
docker_image.mpc_recovery: Still creating... [4m30s elapsed]
docker_image.mpc_recovery: Still creating... [4m40s elapsed]
docker_image.mpc_recovery: Still creating... [4m50s elapsed]
docker_image.mpc_recovery: Still creating... [5m0s elapsed]
docker_image.mpc_recovery: Still creating... [5m10s elapsed]
docker_image.mpc_recovery: Still creating... [5m20s elapsed]
docker_image.mpc_recovery: Still creating... [5m30s elapsed]
docker_image.mpc_recovery: Still creating... [5m40s elapsed]
docker_image.mpc_recovery: Still creating... [5m50s elapsed]
docker_image.mpc_recovery: Still creating... [6m0s elapsed]
docker_image.mpc_recovery: Still creating... [6m10s elapsed]
docker_image.mpc_recovery: Still creating... [6m20s elapsed]
docker_image.mpc_recovery: Still creating... [6m30s elapsed]
docker_image.mpc_recovery: Still creating... [6m40s elapsed]
docker_image.mpc_recovery: Still creating... [6m50s elapsed]
docker_image.mpc_recovery: Still creating... [7m0s elapsed]
docker_image.mpc_recovery: Still creating... [7m10s elapsed]
docker_image.mpc_recovery: Still creating... [7m20s elapsed]
docker_image.mpc_recovery: Still creating... [7m30s elapsed]
docker_image.mpc_recovery: Still creating... [7m40s elapsed]
docker_image.mpc_recovery: Still creating... [7m50s elapsed]
docker_image.mpc_recovery: Still creating... [8m0s elapsed]
docker_image.mpc_recovery: Still creating... [8m10s elapsed]
docker_image.mpc_recovery: Still creating... [8m20s elapsed]
docker_image.mpc_recovery: Still creating... [8m30s elapsed]
docker_image.mpc_recovery: Still creating... [8m40s elapsed]
docker_image.mpc_recovery: Still creating... [8m50s elapsed]
docker_image.mpc_recovery: Still creating... [9m0s elapsed]
docker_image.mpc_recovery: Still creating... [9m10s elapsed]
docker_image.mpc_recovery: Still creating... [9m20s elapsed]
docker_image.mpc_recovery: Still creating... [9m30s elapsed]
docker_image.mpc_recovery: Still creating... [9m40s elapsed]
docker_image.mpc_recovery: Still creating... [9m50s elapsed]
docker_image.mpc_recovery: Still creating... [10m0s elapsed]
docker_image.mpc_recovery: Still creating... [10m10s elapsed]
docker_image.mpc_recovery: Still creating... [10m20s elapsed]
docker_image.mpc_recovery: Still creating... [10m30s elapsed]
docker_image.mpc_recovery: Still creating... [10m40s elapsed]
docker_image.mpc_recovery: Still creating... [10m50s elapsed]
docker_image.mpc_recovery: Still creating... [11m0s elapsed]
docker_image.mpc_recovery: Still creating... [11m10s elapsed]
docker_image.mpc_recovery: Still creating... [11m20s elapsed]
docker_image.mpc_recovery: Still creating... [11m30s elapsed]
docker_image.mpc_recovery: Still creating... [11m40s elapsed]
docker_image.mpc_recovery: Still creating... [11m50s elapsed]
docker_image.mpc_recovery: Still creating... [12m0s elapsed]
docker_image.mpc_recovery: Still creating... [12m10s elapsed]
docker_image.mpc_recovery: Still creating... [12m20s elapsed]
docker_image.mpc_recovery: Still creating... [12m30s elapsed]
docker_image.mpc_recovery: Still creating... [12m40s elapsed]
docker_image.mpc_recovery: Still creating... [12m50s elapsed]
docker_image.mpc_recovery: Still creating... [13m0s elapsed]
docker_image.mpc_recovery: Still creating... [13m10s elapsed]
docker_image.mpc_recovery: Still creating... [13m20s elapsed]
docker_image.mpc_recovery: Still creating... [13m30s elapsed]
docker_image.mpc_recovery: Still creating... [13m40s elapsed]
docker_image.mpc_recovery: Creation complete after 13m41s [id=sha256:3e238d0b3d29ab6f7a078884f8b60c3cdd29dd47219aec70841d4e5b01514486us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev-265/mpc-recovery-dev-265:87ce47929de14b40084a7c6c5a03035bfb0073fa]
docker_registry_image.mpc_recovery: Creating...
docker_registry_image.mpc_recovery: Creation complete after 10s [id=sha256:dc32da7b3c77b885bd0b5488bfe549d30f9d1b80e125c1d75d818d8917b22f18]
module.signer[1].google_secret_manager_secret.cipher_key: Creating...
module.signer[2].google_secret_manager_secret.secret_share: Creating...
module.signer[1].google_secret_manager_secret.secret_share: Creating...
module.signer[2].google_secret_manager_secret.cipher_key: Creating...
module.signer[0].google_secret_manager_secret.secret_share: Creating...
module.signer[0].google_secret_manager_secret.cipher_key: Creating...
module.signer[1].google_secret_manager_secret.secret_share: Creation complete after 0s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265]
module.signer[1].google_secret_manager_secret_iam_member.secret_share_secret_access: Creating...
module.signer[1].google_secret_manager_secret_version.secret_share_data: Creating...
module.signer[0].google_secret_manager_secret.secret_share: Creation complete after 0s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265]
module.signer[0].google_secret_manager_secret_iam_member.secret_share_secret_access: Creating...
module.signer[0].google_secret_manager_secret_version.secret_share_data: Creating...
module.signer[2].google_secret_manager_secret.cipher_key: Creation complete after 0s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265]
module.signer[2].google_secret_manager_secret_version.cipher_key_data: Creating...
module.signer[2].google_secret_manager_secret_iam_member.cipher_key_secret_access: Creating...
module.signer[2].google_secret_manager_secret.secret_share: Creation complete after 0s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265]
module.signer[2].google_secret_manager_secret_iam_member.secret_share_secret_access: Creating...
module.signer[2].google_secret_manager_secret_version.secret_share_data: Creating...
module.signer[1].google_secret_manager_secret.cipher_key: Creation complete after 0s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265]
module.signer[1].google_secret_manager_secret_version.cipher_key_data: Creating...
module.signer[0].google_secret_manager_secret.cipher_key: Creation complete after 0s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265]
module.signer[1].google_secret_manager_secret_iam_member.cipher_key_secret_access: Creating...
module.signer[0].google_secret_manager_secret_version.secret_share_data: Creation complete after 1s [id=projects/388645787527/secrets/mpc-recovery-secret-share-0-dev-265/versions/1]
module.signer[0].google_secret_manager_secret_iam_member.cipher_key_secret_access: Creating...
module.signer[1].google_secret_manager_secret_version.cipher_key_data: Creation complete after 1s [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-1-dev-265/versions/1]
module.signer[0].google_secret_manager_secret_version.cipher_key_data: Creating...
module.signer[2].google_secret_manager_secret_version.cipher_key_data: Creation complete after 1s [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-2-dev-265/versions/1]
module.signer[1].google_secret_manager_secret_version.secret_share_data: Creation complete after 1s [id=projects/388645787527/secrets/mpc-recovery-secret-share-1-dev-265/versions/1]
module.signer[2].google_secret_manager_secret_version.secret_share_data: Creation complete after 1s [id=projects/388645787527/secrets/mpc-recovery-secret-share-2-dev-265/versions/1]
module.signer[0].google_secret_manager_secret_version.cipher_key_data: Creation complete after 2s [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-0-dev-265/versions/1]
module.signer[0].google_secret_manager_secret_iam_member.secret_share_secret_access: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[2].google_secret_manager_secret_iam_member.secret_share_secret_access: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[2].google_secret_manager_secret_iam_member.cipher_key_secret_access: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_secret_manager_secret_iam_member.secret_share_secret_access: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[2].google_cloud_run_v2_service.signer: Creating...
module.signer[1].google_secret_manager_secret_iam_member.cipher_key_secret_access: Creation complete after 5s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_cloud_run_v2_service.signer: Creating...
module.signer[0].google_secret_manager_secret_iam_member.cipher_key_secret_access: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[0].google_cloud_run_v2_service.signer: Creating...
module.signer[2].google_cloud_run_v2_service.signer: Still creating... [10s elapsed]
module.signer[1].google_cloud_run_v2_service.signer: Still creating... [10s elapsed]
module.signer[0].google_cloud_run_v2_service.signer: Still creating... [10s elapsed]
module.signer[0].google_cloud_run_v2_service.signer: Creation complete after 11s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265]
module.signer[0].google_cloud_run_v2_service_iam_member.allow_all: Creating...
module.signer[2].google_cloud_run_v2_service.signer: Creation complete after 13s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265]
module.signer[2].google_cloud_run_v2_service_iam_member.allow_all: Creating...
module.signer[0].google_cloud_run_v2_service_iam_member.allow_all: Creation complete after 5s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265/roles/run.invoker/allUsers]
module.signer[2].google_cloud_run_v2_service_iam_member.allow_all: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265/roles/run.invoker/allUsers]
module.signer[1].google_cloud_run_v2_service.signer: Still creating... [20s elapsed]
module.signer[1].google_cloud_run_v2_service.signer: Creation complete after 21s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265]
module.signer[1].google_cloud_run_v2_service_iam_member.allow_all: Creating...
module.signer[1].google_cloud_run_v2_service_iam_member.allow_all: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265/roles/run.invoker/allUsers]
module.leader.google_secret_manager_secret.account_creator_sk: Creating...
module.leader.google_secret_manager_secret.account_creator_sk: Creation complete after 1s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265]
module.leader.google_secret_manager_secret_iam_member.account_creator_secret_access: Creating...
module.leader.google_secret_manager_secret_version.account_creator_sk_data: Creating...
module.leader.google_secret_manager_secret_version.account_creator_sk_data: Creation complete after 1s [id=projects/388645787527/secrets/mpc-recovery-account-creator-sk-dev-265/versions/1]
module.leader.google_secret_manager_secret_iam_member.account_creator_secret_access: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.leader.google_cloud_run_v2_service.leader: Creating...
module.leader.google_cloud_run_v2_service.leader: Still creating... [10s elapsed]
module.leader.google_cloud_run_v2_service.leader: Still creating... [20s elapsed]
module.leader.google_cloud_run_v2_service.leader: Creation complete after 21s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265]
module.leader.google_cloud_run_v2_service_iam_member.allow_all: Creating...
module.leader.google_cloud_run_v2_service_iam_member.allow_all: Creation complete after 4s [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265/roles/run.invoker/allUsers]

Apply complete! Resources: 35 added, 0 changed, 0 destroyed.

Outputs:

leader_node = "https://mpc-recovery-leader-dev-265-7tk2cmmtcq-ue.a.run.app"

Pusher: @volovyks, Action: pull_request, Working Directory: ``, Workflow: Terraform Feature Env

URL: https://mpc-recovery-leader-dev-265-7tk2cmmtcq-ue.a.run.app

2. Client fetches latest nonce, block hash using obtained recovery PK.
3. Client creates a delegate action with desired actions, such as add or delete key.
4. Client gets the signature from the MPC system using `/sign` endpoint.
5. Client sends the same delegate action to the relayer with obtained signature.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On step 5, is there a reason why FE need to sends the delegate action to relayer instead of endpoint handles it on its end?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We moved to the generic /sign endpoint to make the system more flexible and follow the single responsibility principle. Error handling is a nightmare if we need to pass errors from the relayer to the client. Also, we are designing multichain support now. That will make things even worse without this change.

The expected flow for the client is next:
1. Client uses `/user_credentials` endpoint to get the recovery PK.
2. Client fetches latest nonce, block hash using obtained recovery PK.
3. Client creates a delegate action with desired actions, such as add or delete key.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would be nicer if we either link that contains what delegate action format looks like, or have a example code here

Copy link
Collaborator Author

@volovyks volovyks Aug 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@volovyks volovyks merged commit 3cd4538 into develop Aug 21, 2023
@github-actions
Copy link

Terraform Feature Environment Destroy (dev-265)

Terraform Initialization ⚙️success

Terraform Destroy success

Show Destroy Plan

data.external.git_checkout: Reading...
data.external.git_checkout: Read complete after 0s [id=-]
google_artifact_registry_repository.mpc_recovery: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/repositories/mpc-recovery-dev-265]
google_service_account.service_account: Refreshing state... [id=projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
google_project_iam_member.service-account-datastore-user: Refreshing state... [id=pagoda-discovery-platform-dev/roles/datastore.user/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
google_service_account_iam_binding.serivce-account-iam: Refreshing state... [id=projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com/roles/iam.serviceAccountUser]
docker_image.mpc_recovery: Refreshing state... [id=sha256:3e238d0b3d29ab6f7a078884f8b60c3cdd29dd47219aec70841d4e5b01514486us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev-265/mpc-recovery-dev-265:87ce47929de14b40084a7c6c5a03035bfb0073fa]
docker_registry_image.mpc_recovery: Refreshing state... [id=sha256:dc32da7b3c77b885bd0b5488bfe549d30f9d1b80e125c1d75d818d8917b22f18]
module.signer[0].google_secret_manager_secret.secret_share: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265]
module.signer[2].google_secret_manager_secret.secret_share: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265]
module.signer[2].google_secret_manager_secret.cipher_key: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265]
module.signer[1].google_secret_manager_secret.secret_share: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265]
module.signer[0].google_secret_manager_secret.cipher_key: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265]
module.signer[1].google_secret_manager_secret.cipher_key: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265]
module.signer[0].google_secret_manager_secret_iam_member.cipher_key_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[2].google_secret_manager_secret_version.cipher_key_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-2-dev-265/versions/1]
module.signer[1].google_secret_manager_secret_version.cipher_key_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-1-dev-265/versions/1]
module.signer[2].google_secret_manager_secret_iam_member.cipher_key_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[0].google_secret_manager_secret_version.cipher_key_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-0-dev-265/versions/1]
module.signer[1].google_secret_manager_secret_iam_member.cipher_key_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[0].google_secret_manager_secret_iam_member.secret_share_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_secret_manager_secret_version.secret_share_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-secret-share-1-dev-265/versions/1]
module.signer[1].google_secret_manager_secret_iam_member.secret_share_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[2].google_secret_manager_secret_iam_member.secret_share_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[0].google_secret_manager_secret_version.secret_share_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-secret-share-0-dev-265/versions/1]
module.signer[2].google_secret_manager_secret_version.secret_share_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-secret-share-2-dev-265/versions/1]
module.signer[1].google_cloud_run_v2_service.signer: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265]
module.signer[0].google_cloud_run_v2_service.signer: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265]
module.signer[2].google_cloud_run_v2_service.signer: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265]
module.signer[2].google_cloud_run_v2_service_iam_member.allow_all: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265/roles/run.invoker/allUsers]
module.signer[1].google_cloud_run_v2_service_iam_member.allow_all: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265/roles/run.invoker/allUsers]
module.signer[0].google_cloud_run_v2_service_iam_member.allow_all: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265/roles/run.invoker/allUsers]
module.leader.google_secret_manager_secret.account_creator_sk: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265]
module.leader.google_secret_manager_secret_iam_member.account_creator_secret_access: Refreshing state... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.leader.google_secret_manager_secret_version.account_creator_sk_data: Refreshing state... [id=projects/388645787527/secrets/mpc-recovery-account-creator-sk-dev-265/versions/1]
module.leader.google_cloud_run_v2_service.leader: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265]
module.leader.google_cloud_run_v2_service_iam_member.allow_all: Refreshing state... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265/roles/run.invoker/allUsers]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  - destroy

Terraform will perform the following actions:

  # docker_registry_image.mpc_recovery will be destroyed
  - resource "docker_registry_image" "mpc_recovery" {
      - id                   = "sha256:dc32da7b3c77b885bd0b5488bfe549d30f9d1b80e125c1d75d818d8917b22f18" -> null
      - insecure_skip_verify = false -> null
      - keep_remotely        = true -> null
      - name                 = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev-265/mpc-recovery-dev-265:87ce47929de14b40084a7c6c5a03035bfb0073fa" -> null
      - sha256_digest        = "sha256:dc32da7b3c77b885bd0b5488bfe549d30f9d1b80e125c1d75d818d8917b22f18" -> null
    }

  # google_artifact_registry_repository.mpc_recovery will be destroyed
  - resource "google_artifact_registry_repository" "mpc_recovery" {
      - create_time   = "2023-08-16T10:38:15.940720Z" -> null
      - format        = "DOCKER" -> null
      - id            = "projects/pagoda-discovery-platform-dev/locations/us-east1/repositories/mpc-recovery-dev-265" -> null
      - labels        = {} -> null
      - location      = "us-east1" -> null
      - mode          = "STANDARD_REPOSITORY" -> null
      - name          = "mpc-recovery-dev-265" -> null
      - project       = "pagoda-discovery-platform-dev" -> null
      - repository_id = "mpc-recovery-dev-265" -> null
      - update_time   = "2023-08-16T10:38:15.940720Z" -> null
    }

  # google_project_iam_member.service-account-datastore-user will be destroyed
  - resource "google_project_iam_member" "service-account-datastore-user" {
      - etag    = "BwYDbJCiiIc=" -> null
      - id      = "pagoda-discovery-platform-dev/roles/datastore.user/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member  = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project = "pagoda-discovery-platform-dev" -> null
      - role    = "roles/datastore.user" -> null
    }

  # google_service_account.service_account will be destroyed
  - resource "google_service_account" "service_account" {
      - account_id   = "mpc-recovery-dev-265" -> null
      - disabled     = false -> null
      - display_name = "MPC Recovery dev-265 Account" -> null
      - email        = "mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - id           = "projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member       = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - name         = "projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project      = "pagoda-discovery-platform-dev" -> null
      - unique_id    = "103696771907423314901" -> null
    }

  # google_service_account_iam_binding.serivce-account-iam will be destroyed
  - resource "google_service_account_iam_binding" "serivce-account-iam" {
      - etag               = "BwYDB+Sxb8Q=" -> null
      - id                 = "projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com/roles/iam.serviceAccountUser" -> null
      - members            = [
          - "serviceAccount:mpc-recovery@pagoda-discovery-platform-dev.iam.gserviceaccount.com",
        ] -> null
      - role               = "roles/iam.serviceAccountUser" -> null
      - service_account_id = "projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
    }

  # module.leader.google_cloud_run_v2_service.leader will be destroyed
  - resource "google_cloud_run_v2_service" "leader" {
      - annotations             = {} -> null
      - conditions              = [
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:53:06.503643Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "RoutesReady"
            },
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:53.528730Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "ConfigurationsReady"
            },
        ] -> null
      - etag                    = "\"CIXV8qYGEMi2lm0/cHJvamVjdHMvcGFnb2RhLWRpc2NvdmVyeS1wbGF0Zm9ybS1kZXYvbG9jYXRpb25zL3VzLWVhc3QxL3NlcnZpY2VzL21wYy1yZWNvdmVyeS1sZWFkZXItZGV2LTI2NQ\"" -> null
      - generation              = "1" -> null
      - id                      = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265" -> null
      - ingress                 = "INGRESS_TRAFFIC_ALL" -> null
      - labels                  = {} -> null
      - latest_created_revision = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265/revisions/mpc-recovery-leader-dev-265-00001-lvd" -> null
      - latest_ready_revision   = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265/revisions/mpc-recovery-leader-dev-265-00001-lvd" -> null
      - launch_stage            = "GA" -> null
      - location                = "us-east1" -> null
      - name                    = "mpc-recovery-leader-dev-265" -> null
      - observed_generation     = "1" -> null
      - project                 = "pagoda-discovery-platform-dev" -> null
      - reconciling             = false -> null
      - terminal_condition      = [
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:53:06.503643Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "Ready"
            },
        ] -> null
      - traffic_statuses        = [
          - {
              - percent  = 100
              - revision = ""
              - tag      = ""
              - type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
              - uri      = ""
            },
        ] -> null
      - uid                     = "8441f11d-edaf-4995-8ed5-9dd2b69fcf04" -> null
      - uri                     = "https://mpc-recovery-leader-dev-265-7tk2cmmtcq-ue.a.run.app" -> null

      - template {
          - annotations                      = {} -> null
          - labels                           = {} -> null
          - max_instance_request_concurrency = 80 -> null
          - service_account                  = "mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
          - session_affinity                 = false -> null
          - timeout                          = "300s" -> null

          - containers {
              - args    = [
                  - "start-leader",
                ] -> null
              - command = [] -> null
              - image   = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev-265/mpc-recovery-dev-265:87ce47929de14b40084a7c6c5a03035bfb0073fa" -> null

              - env {
                  - name  = "MPC_RECOVERY_WEB_PORT" -> null
                  - value = "3000" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_SIGN_NODES" -> null
                  - value = "https://mpc-recovery-signer-0-dev-265-7tk2cmmtcq-ue.a.run.app,https://mpc-recovery-signer-1-dev-265-7tk2cmmtcq-ue.a.run.app,https://mpc-recovery-signer-2-dev-265-7tk2cmmtcq-ue.a.run.app" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_NEAR_RPC" -> null
                  - value = "https://rpc.testnet.near.org" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_RELAYER_URL" -> null
                  - value = "http://34.70.226.83:3030" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_NEAR_ROOT_ACCOUNT" -> null
                  - value = "testnet" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_ACCOUNT_CREATOR_ID" -> null
                  - value = "tmp_acount_creator.serhii.testnet" -> null
                }
              - env {
                  - name  = "PAGODA_FIREBASE_AUDIENCE_ID" -> null
                  - value = "pagoda-oboarding-dev" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_GCP_PROJECT_ID" -> null
                  - value = "pagoda-discovery-platform-dev" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_ENV" -> null
                  - value = "dev-265" -> null
                }
              - env {
                  - name  = "RUST_LOG" -> null
                  - value = "mpc_recovery=debug" -> null
                }

              - ports {
                  - container_port = 3000 -> null
                  - name           = "http1" -> null
                }

              - resources {
                  - cpu_idle          = false -> null
                  - limits            = {
                      - "cpu"    = "2"
                      - "memory" = "2Gi"
                    } -> null
                  - startup_cpu_boost = false -> null
                }

              - startup_probe {
                  - failure_threshold     = 1 -> null
                  - initial_delay_seconds = 0 -> null
                  - period_seconds        = 240 -> null
                  - timeout_seconds       = 240 -> null

                  - tcp_socket {
                      - port = 3000 -> null
                    }
                }
            }

          - scaling {
              - max_instance_count = 1 -> null
              - min_instance_count = 1 -> null
            }
        }

      - traffic {
          - percent = 100 -> null
          - type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST" -> null
        }
    }

  # module.leader.google_cloud_run_v2_service_iam_member.allow_all will be destroyed
  - resource "google_cloud_run_v2_service_iam_member" "allow_all" {
      - etag     = "BwYDCBozKKA=" -> null
      - id       = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265/roles/run.invoker/allUsers" -> null
      - location = "us-east1" -> null
      - member   = "allUsers" -> null
      - name     = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265" -> null
      - project  = "pagoda-discovery-platform-dev" -> null
      - role     = "roles/run.invoker" -> null
    }

  # module.leader.google_secret_manager_secret.account_creator_sk will be destroyed
  - resource "google_secret_manager_secret" "account_creator_sk" {
      - create_time = "2023-08-16T10:52:48.689848Z" -> null
      - id          = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265" -> null
      - labels      = {} -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-account-creator-sk-dev-265" -> null
      - project     = "pagoda-discovery-platform-dev" -> null
      - secret_id   = "mpc-recovery-account-creator-sk-dev-265" -> null

      - replication {
          - automatic = true -> null
        }
    }

  # module.leader.google_secret_manager_secret_iam_member.account_creator_secret_access will be destroyed
  - resource "google_secret_manager_secret_iam_member" "account_creator_secret_access" {
      - etag      = "BwYDCBixmDA=" -> null
      - id        = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member    = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project   = "pagoda-discovery-platform-dev" -> null
      - role      = "roles/secretmanager.secretAccessor" -> null
      - secret_id = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265" -> null
    }

  # module.leader.google_secret_manager_secret_version.account_creator_sk_data will be destroyed
  - resource "google_secret_manager_secret_version" "account_creator_sk_data" {
      - create_time = "2023-08-16T10:52:49.321275Z" -> null
      - enabled     = true -> null
      - id          = "projects/388645787527/secrets/mpc-recovery-account-creator-sk-dev-265/versions/1" -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-account-creator-sk-dev-265/versions/1" -> null
      - secret      = "projects/388645787527/secrets/mpc-recovery-account-creator-sk-dev-265" -> null
      - secret_data = (sensitive value) -> null
      - version     = "1" -> null
    }

  # module.signer[0].google_cloud_run_v2_service.signer will be destroyed
  - resource "google_cloud_run_v2_service" "signer" {
      - annotations             = {} -> null
      - conditions              = [
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:29.213283Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "RoutesReady"
            },
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:23.728637Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "ConfigurationsReady"
            },
        ] -> null
      - etag                    = "\"COfU8qYGEJiDu_MB/cHJvamVjdHMvcGFnb2RhLWRpc2NvdmVyeS1wbGF0Zm9ybS1kZXYvbG9jYXRpb25zL3VzLWVhc3QxL3NlcnZpY2VzL21wYy1yZWNvdmVyeS1zaWduZXItMC1kZXYtMjY1\"" -> null
      - generation              = "1" -> null
      - id                      = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265" -> null
      - ingress                 = "INGRESS_TRAFFIC_ALL" -> null
      - labels                  = {} -> null
      - latest_created_revision = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265/revisions/mpc-recovery-signer-0-dev-265-00001-tlg" -> null
      - latest_ready_revision   = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265/revisions/mpc-recovery-signer-0-dev-265-00001-tlg" -> null
      - launch_stage            = "GA" -> null
      - location                = "us-east1" -> null
      - name                    = "mpc-recovery-signer-0-dev-265" -> null
      - observed_generation     = "1" -> null
      - project                 = "pagoda-discovery-platform-dev" -> null
      - reconciling             = false -> null
      - terminal_condition      = [
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:29.213283Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "Ready"
            },
        ] -> null
      - traffic_statuses        = [
          - {
              - percent  = 100
              - revision = ""
              - tag      = ""
              - type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
              - uri      = ""
            },
        ] -> null
      - uid                     = "e5061769-24d8-4874-ae16-f087d1c3f801" -> null
      - uri                     = "https://mpc-recovery-signer-0-dev-265-7tk2cmmtcq-ue.a.run.app" -> null

      - template {
          - annotations                      = {} -> null
          - labels                           = {} -> null
          - max_instance_request_concurrency = 80 -> null
          - service_account                  = "mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
          - session_affinity                 = false -> null
          - timeout                          = "300s" -> null

          - containers {
              - args    = [
                  - "start-sign",
                ] -> null
              - command = [] -> null
              - image   = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev-265/mpc-recovery-dev-265:87ce47929de14b40084a7c6c5a03035bfb0073fa" -> null

              - env {
                  - name  = "MPC_RECOVERY_WEB_PORT" -> null
                  - value = "3000" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_NODE_ID" -> null
                  - value = "0" -> null
                }
              - env {
                  - name  = "PAGODA_FIREBASE_AUDIENCE_ID" -> null
                  - value = "pagoda-oboarding-dev" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_GCP_PROJECT_ID" -> null
                  - value = "pagoda-discovery-platform-dev" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_ENV" -> null
                  - value = "dev-265" -> null
                }
              - env {
                  - name  = "RUST_LOG" -> null
                  - value = "mpc_recovery=debug" -> null
                }

              - ports {
                  - container_port = 3000 -> null
                  - name           = "http1" -> null
                }

              - resources {
                  - cpu_idle          = false -> null
                  - limits            = {
                      - "cpu"    = "2"
                      - "memory" = "2Gi"
                    } -> null
                  - startup_cpu_boost = false -> null
                }

              - startup_probe {
                  - failure_threshold     = 1 -> null
                  - initial_delay_seconds = 0 -> null
                  - period_seconds        = 240 -> null
                  - timeout_seconds       = 240 -> null

                  - tcp_socket {
                      - port = 3000 -> null
                    }
                }
            }

          - scaling {
              - max_instance_count = 1 -> null
              - min_instance_count = 1 -> null
            }
        }

      - traffic {
          - percent = 100 -> null
          - type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST" -> null
        }
    }

  # module.signer[0].google_cloud_run_v2_service_iam_member.allow_all will be destroyed
  - resource "google_cloud_run_v2_service_iam_member" "allow_all" {
      - etag     = "BwYDCBfX/oo=" -> null
      - id       = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265/roles/run.invoker/allUsers" -> null
      - location = "us-east1" -> null
      - member   = "allUsers" -> null
      - name     = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265" -> null
      - project  = "pagoda-discovery-platform-dev" -> null
      - role     = "roles/run.invoker" -> null
    }

  # module.signer[0].google_secret_manager_secret.cipher_key will be destroyed
  - resource "google_secret_manager_secret" "cipher_key" {
      - create_time = "2023-08-16T10:52:18.162138Z" -> null
      - id          = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265" -> null
      - labels      = {} -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-0-dev-265" -> null
      - project     = "pagoda-discovery-platform-dev" -> null
      - secret_id   = "mpc-recovery-encryption-cipher-0-dev-265" -> null

      - replication {
          - automatic = true -> null
        }
    }

  # module.signer[0].google_secret_manager_secret.secret_share will be destroyed
  - resource "google_secret_manager_secret" "secret_share" {
      - create_time = "2023-08-16T10:52:18.159853Z" -> null
      - id          = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265" -> null
      - labels      = {} -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-secret-share-0-dev-265" -> null
      - project     = "pagoda-discovery-platform-dev" -> null
      - secret_id   = "mpc-recovery-secret-share-0-dev-265" -> null

      - replication {
          - automatic = true -> null
        }
    }

  # module.signer[0].google_secret_manager_secret_iam_member.cipher_key_secret_access will be destroyed
  - resource "google_secret_manager_secret_iam_member" "cipher_key_secret_access" {
      - etag      = "BwYDCBbtg5c=" -> null
      - id        = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member    = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project   = "pagoda-discovery-platform-dev" -> null
      - role      = "roles/secretmanager.secretAccessor" -> null
      - secret_id = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265" -> null
    }

  # module.signer[0].google_secret_manager_secret_iam_member.secret_share_secret_access will be destroyed
  - resource "google_secret_manager_secret_iam_member" "secret_share_secret_access" {
      - etag      = "BwYDCBbgEjk=" -> null
      - id        = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member    = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project   = "pagoda-discovery-platform-dev" -> null
      - role      = "roles/secretmanager.secretAccessor" -> null
      - secret_id = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265" -> null
    }

  # module.signer[0].google_secret_manager_secret_version.cipher_key_data will be destroyed
  - resource "google_secret_manager_secret_version" "cipher_key_data" {
      - create_time = "2023-08-16T10:52:20.112044Z" -> null
      - enabled     = true -> null
      - id          = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-0-dev-265/versions/1" -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-0-dev-265/versions/1" -> null
      - secret      = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-0-dev-265" -> null
      - secret_data = (sensitive value) -> null
      - version     = "1" -> null
    }

  # module.signer[0].google_secret_manager_secret_version.secret_share_data will be destroyed
  - resource "google_secret_manager_secret_version" "secret_share_data" {
      - create_time = "2023-08-16T10:52:18.800336Z" -> null
      - enabled     = true -> null
      - id          = "projects/388645787527/secrets/mpc-recovery-secret-share-0-dev-265/versions/1" -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-secret-share-0-dev-265/versions/1" -> null
      - secret      = "projects/388645787527/secrets/mpc-recovery-secret-share-0-dev-265" -> null
      - secret_data = (sensitive value) -> null
      - version     = "1" -> null
    }

  # module.signer[1].google_cloud_run_v2_service.signer will be destroyed
  - resource "google_cloud_run_v2_service" "signer" {
      - annotations             = {} -> null
      - conditions              = [
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:36.091951Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "RoutesReady"
            },
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:23.752334Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "ConfigurationsReady"
            },
        ] -> null
      - etag                    = "\"COfU8qYGEICAnSA/cHJvamVjdHMvcGFnb2RhLWRpc2NvdmVyeS1wbGF0Zm9ybS1kZXYvbG9jYXRpb25zL3VzLWVhc3QxL3NlcnZpY2VzL21wYy1yZWNvdmVyeS1zaWduZXItMS1kZXYtMjY1\"" -> null
      - generation              = "1" -> null
      - id                      = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265" -> null
      - ingress                 = "INGRESS_TRAFFIC_ALL" -> null
      - labels                  = {} -> null
      - latest_created_revision = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265/revisions/mpc-recovery-signer-1-dev-265-00001-j9c" -> null
      - latest_ready_revision   = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265/revisions/mpc-recovery-signer-1-dev-265-00001-j9c" -> null
      - launch_stage            = "GA" -> null
      - location                = "us-east1" -> null
      - name                    = "mpc-recovery-signer-1-dev-265" -> null
      - observed_generation     = "1" -> null
      - project                 = "pagoda-discovery-platform-dev" -> null
      - reconciling             = false -> null
      - terminal_condition      = [
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:36.091951Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "Ready"
            },
        ] -> null
      - traffic_statuses        = [
          - {
              - percent  = 100
              - revision = ""
              - tag      = ""
              - type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
              - uri      = ""
            },
        ] -> null
      - uid                     = "03b090e7-7634-4d76-a91b-4e244839c4fe" -> null
      - uri                     = "https://mpc-recovery-signer-1-dev-265-7tk2cmmtcq-ue.a.run.app" -> null

      - template {
          - annotations                      = {} -> null
          - labels                           = {} -> null
          - max_instance_request_concurrency = 80 -> null
          - service_account                  = "mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
          - session_affinity                 = false -> null
          - timeout                          = "300s" -> null

          - containers {
              - args    = [
                  - "start-sign",
                ] -> null
              - command = [] -> null
              - image   = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev-265/mpc-recovery-dev-265:87ce47929de14b40084a7c6c5a03035bfb0073fa" -> null

              - env {
                  - name  = "MPC_RECOVERY_WEB_PORT" -> null
                  - value = "3000" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_NODE_ID" -> null
                  - value = "1" -> null
                }
              - env {
                  - name  = "PAGODA_FIREBASE_AUDIENCE_ID" -> null
                  - value = "pagoda-oboarding-dev" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_GCP_PROJECT_ID" -> null
                  - value = "pagoda-discovery-platform-dev" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_ENV" -> null
                  - value = "dev-265" -> null
                }
              - env {
                  - name  = "RUST_LOG" -> null
                  - value = "mpc_recovery=debug" -> null
                }

              - ports {
                  - container_port = 3000 -> null
                  - name           = "http1" -> null
                }

              - resources {
                  - cpu_idle          = false -> null
                  - limits            = {
                      - "cpu"    = "2"
                      - "memory" = "2Gi"
                    } -> null
                  - startup_cpu_boost = false -> null
                }

              - startup_probe {
                  - failure_threshold     = 1 -> null
                  - initial_delay_seconds = 0 -> null
                  - period_seconds        = 240 -> null
                  - timeout_seconds       = 240 -> null

                  - tcp_socket {
                      - port = 3000 -> null
                    }
                }
            }

          - scaling {
              - max_instance_count = 1 -> null
              - min_instance_count = 1 -> null
            }
        }

      - traffic {
          - percent = 100 -> null
          - type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST" -> null
        }
    }

  # module.signer[1].google_cloud_run_v2_service_iam_member.allow_all will be destroyed
  - resource "google_cloud_run_v2_service_iam_member" "allow_all" {
      - etag     = "BwYDCBhr34Y=" -> null
      - id       = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265/roles/run.invoker/allUsers" -> null
      - location = "us-east1" -> null
      - member   = "allUsers" -> null
      - name     = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265" -> null
      - project  = "pagoda-discovery-platform-dev" -> null
      - role     = "roles/run.invoker" -> null
    }

  # module.signer[1].google_secret_manager_secret.cipher_key will be destroyed
  - resource "google_secret_manager_secret" "cipher_key" {
      - create_time = "2023-08-16T10:52:18.196116Z" -> null
      - id          = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265" -> null
      - labels      = {} -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-1-dev-265" -> null
      - project     = "pagoda-discovery-platform-dev" -> null
      - secret_id   = "mpc-recovery-encryption-cipher-1-dev-265" -> null

      - replication {
          - automatic = true -> null
        }
    }

  # module.signer[1].google_secret_manager_secret.secret_share will be destroyed
  - resource "google_secret_manager_secret" "secret_share" {
      - create_time = "2023-08-16T10:52:18.026826Z" -> null
      - id          = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265" -> null
      - labels      = {} -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-secret-share-1-dev-265" -> null
      - project     = "pagoda-discovery-platform-dev" -> null
      - secret_id   = "mpc-recovery-secret-share-1-dev-265" -> null

      - replication {
          - automatic = true -> null
        }
    }

  # module.signer[1].google_secret_manager_secret_iam_member.cipher_key_secret_access will be destroyed
  - resource "google_secret_manager_secret_iam_member" "cipher_key_secret_access" {
      - etag      = "BwYDCBbhccc=" -> null
      - id        = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member    = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project   = "pagoda-discovery-platform-dev" -> null
      - role      = "roles/secretmanager.secretAccessor" -> null
      - secret_id = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265" -> null
    }

  # module.signer[1].google_secret_manager_secret_iam_member.secret_share_secret_access will be destroyed
  - resource "google_secret_manager_secret_iam_member" "secret_share_secret_access" {
      - etag      = "BwYDCBbf4aE=" -> null
      - id        = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member    = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project   = "pagoda-discovery-platform-dev" -> null
      - role      = "roles/secretmanager.secretAccessor" -> null
      - secret_id = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265" -> null
    }

  # module.signer[1].google_secret_manager_secret_version.cipher_key_data will be destroyed
  - resource "google_secret_manager_secret_version" "cipher_key_data" {
      - create_time = "2023-08-16T10:52:18.807080Z" -> null
      - enabled     = true -> null
      - id          = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-1-dev-265/versions/1" -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-1-dev-265/versions/1" -> null
      - secret      = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-1-dev-265" -> null
      - secret_data = (sensitive value) -> null
      - version     = "1" -> null
    }

  # module.signer[1].google_secret_manager_secret_version.secret_share_data will be destroyed
  - resource "google_secret_manager_secret_version" "secret_share_data" {
      - create_time = "2023-08-16T10:52:19.042901Z" -> null
      - enabled     = true -> null
      - id          = "projects/388645787527/secrets/mpc-recovery-secret-share-1-dev-265/versions/1" -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-secret-share-1-dev-265/versions/1" -> null
      - secret      = "projects/388645787527/secrets/mpc-recovery-secret-share-1-dev-265" -> null
      - secret_data = (sensitive value) -> null
      - version     = "1" -> null
    }

  # module.signer[2].google_cloud_run_v2_service.signer will be destroyed
  - resource "google_cloud_run_v2_service" "signer" {
      - annotations             = {} -> null
      - conditions              = [
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:29.708068Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "RoutesReady"
            },
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:23.304243Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "ConfigurationsReady"
            },
        ] -> null
      - etag                    = "\"COfU8qYGEKjA8wQ/cHJvamVjdHMvcGFnb2RhLWRpc2NvdmVyeS1wbGF0Zm9ybS1kZXYvbG9jYXRpb25zL3VzLWVhc3QxL3NlcnZpY2VzL21wYy1yZWNvdmVyeS1zaWduZXItMi1kZXYtMjY1\"" -> null
      - generation              = "1" -> null
      - id                      = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265" -> null
      - ingress                 = "INGRESS_TRAFFIC_ALL" -> null
      - labels                  = {} -> null
      - latest_created_revision = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265/revisions/mpc-recovery-signer-2-dev-265-00001-4db" -> null
      - latest_ready_revision   = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265/revisions/mpc-recovery-signer-2-dev-265-00001-4db" -> null
      - launch_stage            = "GA" -> null
      - location                = "us-east1" -> null
      - name                    = "mpc-recovery-signer-2-dev-265" -> null
      - observed_generation     = "1" -> null
      - project                 = "pagoda-discovery-platform-dev" -> null
      - reconciling             = false -> null
      - terminal_condition      = [
          - {
              - execution_reason     = ""
              - last_transition_time = "2023-08-16T10:52:29.708068Z"
              - message              = ""
              - reason               = ""
              - revision_reason      = ""
              - severity             = ""
              - state                = "CONDITION_SUCCEEDED"
              - type                 = "Ready"
            },
        ] -> null
      - traffic_statuses        = [
          - {
              - percent  = 100
              - revision = ""
              - tag      = ""
              - type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
              - uri      = ""
            },
        ] -> null
      - uid                     = "4d096d51-9b96-4e87-a07e-85a177420adf" -> null
      - uri                     = "https://mpc-recovery-signer-2-dev-265-7tk2cmmtcq-ue.a.run.app" -> null

      - template {
          - annotations                      = {} -> null
          - labels                           = {} -> null
          - max_instance_request_concurrency = 80 -> null
          - service_account                  = "mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
          - session_affinity                 = false -> null
          - timeout                          = "300s" -> null

          - containers {
              - args    = [
                  - "start-sign",
                ] -> null
              - command = [] -> null
              - image   = "us-east1-docker.pkg.dev/pagoda-discovery-platform-dev/mpc-recovery-dev-265/mpc-recovery-dev-265:87ce47929de14b40084a7c6c5a03035bfb0073fa" -> null

              - env {
                  - name  = "MPC_RECOVERY_WEB_PORT" -> null
                  - value = "3000" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_NODE_ID" -> null
                  - value = "2" -> null
                }
              - env {
                  - name  = "PAGODA_FIREBASE_AUDIENCE_ID" -> null
                  - value = "pagoda-oboarding-dev" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_GCP_PROJECT_ID" -> null
                  - value = "pagoda-discovery-platform-dev" -> null
                }
              - env {
                  - name  = "MPC_RECOVERY_ENV" -> null
                  - value = "dev-265" -> null
                }
              - env {
                  - name  = "RUST_LOG" -> null
                  - value = "mpc_recovery=debug" -> null
                }

              - ports {
                  - container_port = 3000 -> null
                  - name           = "http1" -> null
                }

              - resources {
                  - cpu_idle          = false -> null
                  - limits            = {
                      - "cpu"    = "2"
                      - "memory" = "2Gi"
                    } -> null
                  - startup_cpu_boost = false -> null
                }

              - startup_probe {
                  - failure_threshold     = 1 -> null
                  - initial_delay_seconds = 0 -> null
                  - period_seconds        = 240 -> null
                  - timeout_seconds       = 240 -> null

                  - tcp_socket {
                      - port = 3000 -> null
                    }
                }
            }

          - scaling {
              - max_instance_count = 1 -> null
              - min_instance_count = 1 -> null
            }
        }

      - traffic {
          - percent = 100 -> null
          - type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST" -> null
        }
    }

  # module.signer[2].google_cloud_run_v2_service_iam_member.allow_all will be destroyed
  - resource "google_cloud_run_v2_service_iam_member" "allow_all" {
      - etag     = "BwYDCBfhkQ4=" -> null
      - id       = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265/roles/run.invoker/allUsers" -> null
      - location = "us-east1" -> null
      - member   = "allUsers" -> null
      - name     = "projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265" -> null
      - project  = "pagoda-discovery-platform-dev" -> null
      - role     = "roles/run.invoker" -> null
    }

  # module.signer[2].google_secret_manager_secret.cipher_key will be destroyed
  - resource "google_secret_manager_secret" "cipher_key" {
      - create_time = "2023-08-16T10:52:18.160061Z" -> null
      - id          = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265" -> null
      - labels      = {} -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-2-dev-265" -> null
      - project     = "pagoda-discovery-platform-dev" -> null
      - secret_id   = "mpc-recovery-encryption-cipher-2-dev-265" -> null

      - replication {
          - automatic = true -> null
        }
    }

  # module.signer[2].google_secret_manager_secret.secret_share will be destroyed
  - resource "google_secret_manager_secret" "secret_share" {
      - create_time = "2023-08-16T10:52:18.163038Z" -> null
      - id          = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265" -> null
      - labels      = {} -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-secret-share-2-dev-265" -> null
      - project     = "pagoda-discovery-platform-dev" -> null
      - secret_id   = "mpc-recovery-secret-share-2-dev-265" -> null

      - replication {
          - automatic = true -> null
        }
    }

  # module.signer[2].google_secret_manager_secret_iam_member.cipher_key_secret_access will be destroyed
  - resource "google_secret_manager_secret_iam_member" "cipher_key_secret_access" {
      - etag      = "BwYDCBbfzt0=" -> null
      - id        = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member    = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project   = "pagoda-discovery-platform-dev" -> null
      - role      = "roles/secretmanager.secretAccessor" -> null
      - secret_id = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265" -> null
    }

  # module.signer[2].google_secret_manager_secret_iam_member.secret_share_secret_access will be destroyed
  - resource "google_secret_manager_secret_iam_member" "secret_share_secret_access" {
      - etag      = "BwYDCBbf3C4=" -> null
      - id        = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - member    = "serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com" -> null
      - project   = "pagoda-discovery-platform-dev" -> null
      - role      = "roles/secretmanager.secretAccessor" -> null
      - secret_id = "projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265" -> null
    }

  # module.signer[2].google_secret_manager_secret_version.cipher_key_data will be destroyed
  - resource "google_secret_manager_secret_version" "cipher_key_data" {
      - create_time = "2023-08-16T10:52:18.988055Z" -> null
      - enabled     = true -> null
      - id          = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-2-dev-265/versions/1" -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-2-dev-265/versions/1" -> null
      - secret      = "projects/388645787527/secrets/mpc-recovery-encryption-cipher-2-dev-265" -> null
      - secret_data = (sensitive value) -> null
      - version     = "1" -> null
    }

  # module.signer[2].google_secret_manager_secret_version.secret_share_data will be destroyed
  - resource "google_secret_manager_secret_version" "secret_share_data" {
      - create_time = "2023-08-16T10:52:19.094482Z" -> null
      - enabled     = true -> null
      - id          = "projects/388645787527/secrets/mpc-recovery-secret-share-2-dev-265/versions/1" -> null
      - name        = "projects/388645787527/secrets/mpc-recovery-secret-share-2-dev-265/versions/1" -> null
      - secret      = "projects/388645787527/secrets/mpc-recovery-secret-share-2-dev-265" -> null
      - secret_data = (sensitive value) -> null
      - version     = "1" -> null
    }

Plan: 0 to add, 0 to change, 34 to destroy.

Changes to Outputs:
  - leader_node = "https://mpc-recovery-leader-dev-265-7tk2cmmtcq-ue.a.run.app" -> null
google_project_iam_member.service-account-datastore-user: Destroying... [id=pagoda-discovery-platform-dev/roles/datastore.user/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
google_service_account_iam_binding.serivce-account-iam: Destroying... [id=projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com/roles/iam.serviceAccountUser]
module.leader.google_cloud_run_v2_service_iam_member.allow_all: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265/roles/run.invoker/allUsers]
google_service_account_iam_binding.serivce-account-iam: Destruction complete after 4s
module.leader.google_cloud_run_v2_service_iam_member.allow_all: Destruction complete after 5s
module.leader.google_cloud_run_v2_service.leader: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-leader-dev-265]
google_project_iam_member.service-account-datastore-user: Destruction complete after 7s
module.leader.google_cloud_run_v2_service.leader: Still destroying... [id=projects/pagoda-discovery-platform-dev/...1/services/mpc-recovery-leader-dev-265, 10s elapsed]
module.leader.google_cloud_run_v2_service.leader: Destruction complete after 11s
module.leader.google_secret_manager_secret_version.account_creator_sk_data: Destroying... [id=projects/388645787527/secrets/mpc-recovery-account-creator-sk-dev-265/versions/1]
module.leader.google_secret_manager_secret_iam_member.account_creator_secret_access: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.leader.google_secret_manager_secret_version.account_creator_sk_data: Destruction complete after 0s
module.leader.google_secret_manager_secret_iam_member.account_creator_secret_access: Destruction complete after 3s
module.leader.google_secret_manager_secret.account_creator_sk: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-account-creator-sk-dev-265]
module.leader.google_secret_manager_secret.account_creator_sk: Destruction complete after 1s
module.signer[1].google_cloud_run_v2_service_iam_member.allow_all: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265/roles/run.invoker/allUsers]
module.signer[0].google_cloud_run_v2_service_iam_member.allow_all: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265/roles/run.invoker/allUsers]
module.signer[2].google_cloud_run_v2_service_iam_member.allow_all: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265/roles/run.invoker/allUsers]
module.signer[2].google_cloud_run_v2_service_iam_member.allow_all: Destruction complete after 4s
module.signer[2].google_cloud_run_v2_service.signer: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-2-dev-265]
module.signer[1].google_cloud_run_v2_service_iam_member.allow_all: Destruction complete after 4s
module.signer[0].google_cloud_run_v2_service_iam_member.allow_all: Destruction complete after 4s
module.signer[1].google_cloud_run_v2_service.signer: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-1-dev-265]
module.signer[0].google_cloud_run_v2_service.signer: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/services/mpc-recovery-signer-0-dev-265]
module.signer[2].google_cloud_run_v2_service.signer: Still destroying... [id=projects/pagoda-discovery-platform-dev/...services/mpc-recovery-signer-2-dev-265, 10s elapsed]
module.signer[1].google_cloud_run_v2_service.signer: Still destroying... [id=projects/pagoda-discovery-platform-dev/...services/mpc-recovery-signer-1-dev-265, 10s elapsed]
module.signer[0].google_cloud_run_v2_service.signer: Still destroying... [id=projects/pagoda-discovery-platform-dev/...services/mpc-recovery-signer-0-dev-265, 10s elapsed]
module.signer[2].google_cloud_run_v2_service.signer: Destruction complete after 11s
module.signer[2].google_secret_manager_secret_iam_member.secret_share_secret_access: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[2].google_secret_manager_secret_version.secret_share_data: Destroying... [id=projects/388645787527/secrets/mpc-recovery-secret-share-2-dev-265/versions/1]
module.signer[2].google_secret_manager_secret_version.cipher_key_data: Destroying... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-2-dev-265/versions/1]
module.signer[2].google_secret_manager_secret_iam_member.cipher_key_secret_access: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_cloud_run_v2_service.signer: Destruction complete after 11s
module.signer[1].google_secret_manager_secret_iam_member.secret_share_secret_access: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_secret_manager_secret_iam_member.cipher_key_secret_access: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_secret_manager_secret_version.cipher_key_data: Destroying... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-1-dev-265/versions/1]
module.signer[1].google_secret_manager_secret_version.secret_share_data: Destroying... [id=projects/388645787527/secrets/mpc-recovery-secret-share-1-dev-265/versions/1]
module.signer[0].google_cloud_run_v2_service.signer: Destruction complete after 11s
module.signer[0].google_secret_manager_secret_version.secret_share_data: Destroying... [id=projects/388645787527/secrets/mpc-recovery-secret-share-0-dev-265/versions/1]
module.signer[0].google_secret_manager_secret_iam_member.cipher_key_secret_access: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[2].google_secret_manager_secret_version.secret_share_data: Destruction complete after 0s
module.signer[0].google_secret_manager_secret_version.cipher_key_data: Destroying... [id=projects/388645787527/secrets/mpc-recovery-encryption-cipher-0-dev-265/versions/1]
module.signer[1].google_secret_manager_secret_version.secret_share_data: Destruction complete after 0s
module.signer[0].google_secret_manager_secret_iam_member.secret_share_secret_access: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265/roles/secretmanager.secretAccessor/serviceAccount:mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[1].google_secret_manager_secret_version.cipher_key_data: Destruction complete after 0s
module.signer[0].google_secret_manager_secret_version.secret_share_data: Destruction complete after 0s
module.signer[2].google_secret_manager_secret_version.cipher_key_data: Destruction complete after 0s
module.signer[0].google_secret_manager_secret_version.cipher_key_data: Destruction complete after 0s
module.signer[2].google_secret_manager_secret_iam_member.secret_share_secret_access: Destruction complete after 3s
module.signer[2].google_secret_manager_secret_iam_member.cipher_key_secret_access: Destruction complete after 3s
module.signer[2].google_secret_manager_secret.cipher_key: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-2-dev-265]
module.signer[2].google_secret_manager_secret.secret_share: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-2-dev-265]
module.signer[0].google_secret_manager_secret_iam_member.cipher_key_secret_access: Destruction complete after 4s
module.signer[1].google_secret_manager_secret_iam_member.cipher_key_secret_access: Destruction complete after 4s
module.signer[1].google_secret_manager_secret_iam_member.secret_share_secret_access: Destruction complete after 4s
module.signer[0].google_secret_manager_secret.cipher_key: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-0-dev-265]
module.signer[1].google_secret_manager_secret.secret_share: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-1-dev-265]
module.signer[1].google_secret_manager_secret.cipher_key: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-encryption-cipher-1-dev-265]
module.signer[0].google_secret_manager_secret_iam_member.secret_share_secret_access: Destruction complete after 4s
google_service_account.service_account: Destroying... [id=projects/pagoda-discovery-platform-dev/serviceAccounts/mpc-recovery-dev-265@pagoda-discovery-platform-dev.iam.gserviceaccount.com]
module.signer[0].google_secret_manager_secret.secret_share: Destroying... [id=projects/pagoda-discovery-platform-dev/secrets/mpc-recovery-secret-share-0-dev-265]
module.signer[2].google_secret_manager_secret.secret_share: Destruction complete after 1s
google_service_account.service_account: Destruction complete after 0s
module.signer[2].google_secret_manager_secret.cipher_key: Destruction complete after 1s
module.signer[1].google_secret_manager_secret.cipher_key: Destruction complete after 0s
module.signer[1].google_secret_manager_secret.secret_share: Destruction complete after 0s
module.signer[0].google_secret_manager_secret.cipher_key: Destruction complete after 0s
module.signer[0].google_secret_manager_secret.secret_share: Destruction complete after 0s
docker_registry_image.mpc_recovery: Destroying... [id=sha256:dc32da7b3c77b885bd0b5488bfe549d30f9d1b80e125c1d75d818d8917b22f18]
docker_registry_image.mpc_recovery: Destruction complete after 0s
google_artifact_registry_repository.mpc_recovery: Destroying... [id=projects/pagoda-discovery-platform-dev/locations/us-east1/repositories/mpc-recovery-dev-265]
google_artifact_registry_repository.mpc_recovery: Destruction complete after 1s

Destroy complete! Resources: 34 destroyed.

Pusher: @volovyks, Action: pull_request, Working Directory: ``, Workflow: Terraform Feature Env (Destroy)

@volovyks volovyks deleted the serhii/sign-instructions branch December 13, 2023 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants