kbc-cinema-custom-app

1.0.0 • Public • Published

KRB Cinema

Local環境

pnpm i
# 初回のみ
cd apps/[起動したいアプリのフォルダー]
pnpm run setup
pnpm run dev
# 一応 Dev をストップする
# shopify.app.tomlから scopes と api_version をコピーする ( 初回のみ )
pnpm shopify app deploy
pnpm run dev

個人で開発用の Custom Appを作成する場合は

  • tomlファイルを*.local.toml*-local.tomlにする

Local docker build

docker build -t asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/kbc-custom-app/customer:latest -f apps/customer/Dockerfile.alpine .
docker push asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/kbc-custom-app/customer:latest
gcloud run deploy customer --image asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/kbc-custom-app/analytics:latest --region asia-northeast2

Database

Production

  • Migration

    • GCPのアカウントを設定する

    • localのIPを許可する

    • 各 App .envにDATABASE_URLを設定する

      # Local
      DATABASE_URL="mysql://username:password@db_ip_address/db_name"
      # Production
      DATABASE_URL="mysql://username:password@localhost/db_name?socket=/cloudsql/connection_name"
  • 各App配下で以下のコマンドを実行する

pnpm prisma migrate deploy --schema=./prisma/mysql/schema.prisma
  • The database schema is not empty. Read more about how to baseline an existing production database:のエラーが出た場合 BaseLineを作成する
pnpm prisma migrate resolve --applied baseline --schema=./prisma/mysql/schema.prisma && prisma migrate deploy --schema=./prisma/mysql/schema.prisma

Github CI

Run in local

brew install act
# Dockerを起動する
# Rootにて
act pull_request -e .github/pull_request_event.json
# > Medium

Turbo repo remote cache setup

  • Step 1
docker pull fox1t/turborepo-remote-cache:latest
docker tag fox1t/turborepo-remote-cache:latest asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/turbo-remote-caching/fox1t/turborepo-remote-cache:latest
docker push asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/turbo-remote-caching/fox1t/turborepo-remote-cache:latest
  • Step 2

Cloud runのenv

Webhookの設定

App toml (実例)

[webhooks]
api_version = "2024-07"

[[webhooks.subscriptions]]
topics = [ "metaobjects/create", "metaobjects/update", "metaobjects/delete" ]
uri = "https://glad-counting-introducing-consultants.trycloudflare.com/webhooks/movie"
filter = "type:movie"
metafield_namespaces = [ "custom", "$app" ]

[[webhooks.subscriptions]]
topics = [ "orders/fulfilled" ]
uri = "https://glad-counting-introducing-consultants.trycloudflare.com/webhooks/orders-fulfilled"
metafield_namespaces = [ "custom", "$app" ]

Graphql (実例)

query getWebhook {
  webhookSubscriptions(first: 20) {
    nodes {
      id
      topic
      filter
      metafieldNamespaces
      endpoint {
        ... on WebhookHttpEndpoint {
          callbackUrl
        }
      }
    }
  }
}

mutation registerWebhook {
  webhookSubscriptionCreate(
    topic: METAOBJECTS_DELETE
    webhookSubscription: {
      # filter: "type:movie"
      callbackUrl: "https://latest-reserved-interracial-ps.trycloudflare.com/webhooks/movie",
      metafieldNamespaces: ["custom", "$app"],
  		format: JSON,
    }
  ) {
    userErrors {
      field
      message
    }
    webhookSubscription {
      apiVersion {
        displayName
      }
      endpoint {
        ... on WebhookHttpEndpoint {
          callbackUrl
        }
      }
      filter
      topic
    }
  }
}

mutation updateWebhook {
  webhookSubscriptionUpdate(
    id: "gid://shopify/WebhookSubscription/1539109650752",
    webhookSubscription: {
      callbackUrl: "https://glad-counting-introducing-consultants.trycloudflare.com/webhooks/movie"
    }
  ) {
    userErrors {
      field
      message
    }
    webhookSubscription {
      apiVersion {
        displayName
      }
      endpoint {
        ... on WebhookHttpEndpoint {
          callbackUrl
        }
      }
      filter
      topic
    }
  }
}

Readme

Keywords

none

Package Sidebar

Install

npm i kbc-cinema-custom-app

Weekly Downloads

1

Version

1.0.0

License

ISC

Unpacked Size

28 MB

Total Files

1024

Last publish

Collaborators

  • nomin.sasabuchi