├── .cargo └── makefiles │ ├── consumers.toml │ ├── development.toml │ └── docker.toml ├── .config └── nextest.toml ├── .dockerignore ├── .env.local-integration ├── .env.sample ├── .github └── workflows │ └── release.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── Makefile.toml ├── README.md ├── cli.sh ├── cli ├── Cargo.toml ├── Dockerfile ├── README.md └── src │ ├── app.rs │ ├── main.rs │ ├── queries │ ├── get-account-info.graphql │ ├── get-accounts.graphql │ ├── get-aggregates.graphql │ ├── get-atoms.graphql │ ├── get-predicate-objects.graphql │ ├── get-signals.graphql │ ├── mod.rs │ └── schema.graphql │ └── ui │ ├── accounts.rs │ ├── aggregates.rs │ ├── atoms.rs │ ├── mod.rs │ ├── predicateobjects.rs │ └── signals.rs ├── consumer-api ├── .dockerignore ├── Cargo.toml ├── Dockerfile ├── README.md └── src │ ├── app.rs │ ├── endpoints │ ├── mod.rs │ └── refetch_atoms.rs │ ├── error.rs │ ├── main.rs │ ├── openapi.rs │ ├── state.rs │ └── types.rs ├── consumer ├── .dockerignore ├── Cargo.toml ├── Dockerfile ├── README.md ├── contracts │ └── EthMultiVault.json ├── devops │ └── localstack-setup.sh └── src │ ├── app_context.rs │ ├── config.rs │ ├── consumer_type │ ├── mod.rs │ └── sqs.rs │ ├── error.rs │ ├── main.rs │ ├── mode │ ├── decoded │ │ ├── atom │ │ │ ├── atom_creation.rs │ │ │ ├── atom_supported_types.rs │ │ │ └── mod.rs │ │ ├── deposited.rs │ │ ├── fees_transfered.rs │ │ ├── mod.rs │ │ ├── redeemed.rs │ │ ├── triple.rs │ │ └── utils.rs │ ├── ipfs_upload │ │ ├── handler.rs │ │ ├── mod.rs │ │ └── types.rs │ ├── mod.rs │ ├── raw │ │ ├── handler.rs │ │ ├── mod.rs │ │ └── parse_and_decode.rs │ ├── resolver │ │ ├── atom_resolver.rs │ │ ├── ens_resolver.rs │ │ ├── mod.rs │ │ └── types.rs │ └── types.rs │ ├── schemas │ ├── goldsky.rs │ ├── mod.rs │ ├── substreams.rs │ └── types.rs │ └── traits.rs ├── devops ├── argocd │ ├── README.md │ ├── apps │ │ ├── coreapps.yaml │ │ ├── coreapps │ │ │ ├── crossplane-aws-provider.yaml │ │ │ ├── crossplane.yaml │ │ │ ├── dev-api.yaml │ │ │ ├── dev-rpc-proxy.yaml │ │ │ ├── ingress-main.yaml │ │ │ ├── ipfs.yaml │ │ │ ├── kubernetes-replicator.yaml │ │ │ ├── pgadmin.yaml │ │ │ ├── prod-api.yaml │ │ │ ├── prod-rpc-proxy.yaml │ │ │ ├── rds.yaml │ │ │ └── safe-content.yaml │ │ ├── default │ │ │ └── envio-indexer-base.yaml │ │ ├── namespacedapps.yaml │ │ └── namespacedapps │ │ │ ├── consumer-decoded.yaml │ │ │ ├── consumer-ipfs-upload.yaml │ │ │ ├── consumer-raw.yaml │ │ │ ├── consumer-resolver.yaml │ │ │ ├── createdb.yaml │ │ │ ├── db-main-creds.yaml │ │ │ ├── graphql-service.yaml │ │ │ ├── histocrawler.yaml │ │ │ └── histoflux.yaml │ ├── kustomize │ │ └── create-db │ │ │ ├── create-db.yaml │ │ │ └── kustomization.yaml │ └── manifests │ │ ├── crossplane-aws-provider │ │ └── aws-provider.yaml │ │ ├── db-main-creds │ │ └── db-main-creds.yaml │ │ ├── ingress-main │ │ └── ingress.yaml │ │ ├── pgadmin │ │ └── pgadmin.yaml │ │ └── replicator │ │ ├── deployment.yaml │ │ └── rbac.yaml ├── aws-rolling-releases │ ├── api │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-base │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── clean_pvc.sh │ ├── cluster.yaml │ ├── consumer-api │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── consumers.sh │ ├── consumers │ │ ├── base │ │ │ ├── decoded │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── sqs.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── service.yaml │ │ │ ├── raw │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── sqs.yaml │ │ │ └── resolver │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── sqs.yaml │ │ └── overlays │ │ │ ├── dev-base-mainnet │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── dev-base-sepolia │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet-v2 │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia-v2 │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet-v2 │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-sepolia │ │ │ ├── decoded │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── curl.yaml │ ├── envio-indexer │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── histocrawler │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── histoflux │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── service.yaml │ │ │ └── sqs.yaml │ │ └── overlays │ │ │ ├── dev-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── ingress │ │ └── ingress.yaml │ ├── ipfs │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ ├── secret-provider.yaml │ │ ├── service-account.yaml │ │ ├── service.yaml │ │ └── storage-class.yaml │ ├── kustomization.yaml │ ├── monitoring │ │ ├── log-cleanup │ │ │ ├── deployment.yaml │ │ │ └── kustomization.yaml │ │ └── prometheus │ │ │ ├── cluster-rolebinding.yaml │ │ │ ├── configmap.yaml │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ ├── nuke.sh │ ├── rbac │ │ ├── cluster-role-binding.yaml │ │ └── cluster-role.yaml │ ├── rpc-proxy │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── safe-content-api │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ └── service.yaml │ ├── scripts │ │ ├── delete_consumer_deployments.sh │ │ ├── delete_graphql_engine.sh │ │ ├── delete_secret_providers.sh │ │ └── delete_substreams_sink.sh │ ├── services │ │ └── graphql │ │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── indexer-cache-migrations-job.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-deployment.yaml │ │ │ └── service.yaml │ │ │ └── overlays │ │ │ ├── dev-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ ├── substreams-sink │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── test_postgres.yaml │ └── versions.sh ├── aws │ ├── api │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-base │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── clean_pvc.sh │ ├── cluster.yaml │ ├── consumer-api │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── consumers.sh │ ├── consumers │ │ ├── base │ │ │ ├── decoded │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── service.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── service.yaml │ │ │ ├── raw │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── service.yaml │ │ │ └── resolver │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base-mainnet │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── dev-base-sepolia │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet-v2 │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia-v2 │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet-v2 │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet │ │ │ ├── decoded │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ │ ├── deployment-patch.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-sepolia │ │ │ ├── decoded │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── ipfs-upload │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── raw │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── resolver │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── curl.yaml │ ├── envio-indexer │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── histocrawler │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── histoflux │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── ingress │ │ └── ingress.yaml │ ├── ipfs │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ ├── secret-provider.yaml │ │ ├── service-account.yaml │ │ ├── service.yaml │ │ └── storage-class.yaml │ ├── kustomization.yaml │ ├── monitoring │ │ ├── log-cleanup │ │ │ ├── deployment.yaml │ │ │ └── kustomization.yaml │ │ └── prometheus │ │ │ ├── cluster-rolebinding.yaml │ │ │ ├── configmap.yaml │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ ├── nuke.sh │ ├── rbac │ │ ├── cluster-role-binding.yaml │ │ └── cluster-role.yaml │ ├── rpc-proxy │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ ├── safe-content-api │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ └── service.yaml │ ├── scripts │ │ ├── delete_consumer_deployments.sh │ │ ├── delete_graphql_engine.sh │ │ ├── delete_secret_providers.sh │ │ └── delete_substreams_sink.sh │ ├── services │ │ └── graphql │ │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-deployment.yaml │ │ │ └── service.yaml │ │ │ └── overlays │ │ │ ├── dev-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── dev-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet-v2 │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ ├── prod-linea-mainnet │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-linea-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── indexer-migrations.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-patch.yaml │ │ │ └── secret-provider.yaml │ ├── substreams-sink │ │ ├── base │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ └── overlays │ │ │ ├── dev-base │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ │ │ └── prod-base-sepolia │ │ │ ├── deployment-patch.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret-provider.yaml │ └── versions.sh ├── kubernetes │ ├── argocd │ │ ├── namespace.yaml │ │ └── values.yaml │ ├── aws-lb-controller │ │ ├── alb.yaml │ │ ├── create_sa.sh │ │ └── iam-policy.json │ ├── cert-manager │ │ └── cert-manager.yaml │ ├── external-dns │ │ ├── create_sa.sh │ │ ├── policy.json │ │ └── values.yaml │ └── secrets-store-csi-driver │ │ ├── access-secret-policy.json │ │ ├── install.sh │ │ └── storage-classes.yaml ├── minikube │ ├── api │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ └── service.yaml │ ├── base │ │ ├── namespaces.yaml │ │ └── storage │ │ │ └── kustomization.yaml │ ├── consumers │ │ ├── decoded │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ ├── ipfs-upload │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ ├── raw │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ └── resolver-consumer │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ ├── hasura-migrations │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ └── service.yaml │ ├── ipfs │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ └── service.yaml │ ├── kustomization.yaml │ ├── monitoring │ │ ├── log-cleanup │ │ │ ├── deployment.yaml │ │ │ └── kustomization.yaml │ │ └── prometheus │ │ │ ├── configmap.yaml │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ ├── services │ │ ├── database │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ ├── graphql │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── migrations-deployment.yaml │ │ │ ├── migrations-pod.yaml │ │ │ └── service.yaml │ │ ├── safe-content │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── sqs │ │ │ ├── configmap.yaml │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ └── substreams-sink │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── service.yaml │ │ └── volume.yaml └── terraform │ └── aws │ └── prod │ └── eks │ ├── .terraform.lock.hcl │ ├── config.tf │ ├── crossplane-policy.json │ ├── eks.tf │ └── main.tf ├── docker-compose.yml ├── download_docker_images.sh ├── envio-indexer ├── Cargo.toml ├── Dockerfile ├── README.md └── src │ ├── app.rs │ ├── error.rs │ ├── main.rs │ └── types.rs ├── geth ├── genesis.json ├── init-script.sh ├── keystore.json └── password.txt ├── hasura ├── Dockerfile ├── config.yaml ├── metadata │ ├── actions.graphql │ ├── actions.yaml │ ├── allow_list.yaml │ ├── api_limits.yaml │ ├── backend_configs.yaml │ ├── cron_triggers.yaml │ ├── databases │ │ ├── cache │ │ │ └── tables │ │ │ │ ├── cached_images_cached_image.yaml │ │ │ │ └── tables.yaml │ │ ├── databases.yaml │ │ └── intuition │ │ │ ├── functions │ │ │ ├── functions.yaml │ │ │ ├── public_accounts_that_claim_about_account.yaml │ │ │ ├── public_claims_from_following.yaml │ │ │ ├── public_following.yaml │ │ │ └── public_signals_from_following.yaml │ │ │ └── tables │ │ │ ├── public_account.yaml │ │ │ ├── public_atom.yaml │ │ │ ├── public_atom_value.yaml │ │ │ ├── public_book.yaml │ │ │ ├── public_byte_object.yaml │ │ │ ├── public_cached_image.yaml │ │ │ ├── public_caip10.yaml │ │ │ ├── public_chainlink_price.yaml │ │ │ ├── public_claim.yaml │ │ │ ├── public_deposit.yaml │ │ │ ├── public_event.yaml │ │ │ ├── public_fee_transfer.yaml │ │ │ ├── public_json_object.yaml │ │ │ ├── public_organization.yaml │ │ │ ├── public_person.yaml │ │ │ ├── public_position.yaml │ │ │ ├── public_predicate_object.yaml │ │ │ ├── public_redemption.yaml │ │ │ ├── public_signal.yaml │ │ │ ├── public_stats.yaml │ │ │ ├── public_stats_hour.yaml │ │ │ ├── public_text_object.yaml │ │ │ ├── public_thing.yaml │ │ │ ├── public_triple.yaml │ │ │ ├── public_vault.yaml │ │ │ └── tables.yaml │ ├── graphql_schema_introspection.yaml │ ├── inherited_roles.yaml │ ├── metrics_config.yaml │ ├── network.yaml │ ├── opentelemetry.yaml │ ├── query_collections.yaml │ ├── remote_schemas.yaml │ ├── rest_endpoints.yaml │ └── version.yaml └── migrations │ ├── cache │ └── 1738779627_init │ │ ├── down.sql │ │ └── up.sql │ └── intuition │ ├── 1729947331632_basic_schema │ ├── down.sql │ └── up.sql │ ├── 1731340404091_triggers │ ├── down.sql │ └── up.sql │ ├── 1731340422862_stats_hour │ ├── down.sql │ └── up.sql │ ├── 1731344677101_functions │ ├── down.sql │ └── up.sql │ ├── 1733405408001_updating_thing_description_index │ ├── down.sql │ └── up.sql │ ├── 1733405478010_updating_thing_index_full_text │ ├── down.sql │ └── up.sql │ ├── 1733405637001_updating_description_index │ ├── down.sql │ └── up.sql │ ├── 1736343936133_caip10_support │ ├── down.sql │ └── up.sql │ ├── 1738252565000_expanding_atom_value │ ├── down.sql │ └── up.sql │ ├── 1739413212123_new_triggers │ ├── down.sql │ └── up.sql │ └── 1739457611336_new_triggers_and_migrate │ ├── down.sql │ └── up.sql ├── histocrawler ├── Cargo.toml ├── Dockerfile └── src │ ├── app.rs │ ├── error.rs │ └── main.rs ├── histoflux ├── Cargo.toml ├── Dockerfile ├── README.md └── src │ ├── app_context.rs │ ├── error.rs │ ├── main.rs │ ├── models │ ├── cursor.rs │ └── mod.rs │ └── types.rs ├── image-guard ├── .dockerignore ├── Cargo.toml ├── Dockerfile ├── README.md └── src │ ├── app.rs │ ├── endpoints │ ├── mod.rs │ ├── upload_image.rs │ ├── upload_image_from_url.rs │ └── upload_json_to_ipfs.rs │ ├── error.rs │ ├── main.rs │ ├── openapi.rs │ ├── state.rs │ └── types.rs ├── indexer-and-cache-migrations ├── 1736513289_create_raw_data.down.sql ├── 1736513289_create_raw_data.up.sql ├── 1736866698_current_share_price.down.sql ├── 1736866698_current_share_price.up.sql ├── 1737498243_histoflux_cursor.down.sql ├── 1737498243_histoflux_cursor.up.sql ├── 1737728488_substreams_cursor.down.sql ├── 1737728488_substreams_cursor.up.sql ├── 1737730594_create_raw_data_sepolia.down.sql ├── 1737730594_create_raw_data_sepolia.up.sql ├── 1737926477_updating_proxy_method_enum.down.sql ├── 1737926477_updating_proxy_method_enum.up.sql ├── 1738206736_create_base_raw_data.down.sql ├── 1738206736_create_base_raw_data.up.sql ├── 1738586869_create_cached_images.down.sql ├── 1738586869_create_cached_images.up.sql ├── 1739195744_updating_proxy_method_enum.up.sql ├── 1739311955_alter_cursor_env_enum.down.sql ├── 1739311955_alter_cursor_env_enum.up.sql ├── 1739311956_create_linea_mainnet_raw_data.down.sql ├── 1739311956_create_linea_mainnet_raw_data.up.sql ├── 1739377754_alter_cursor_env_enum.down.sql ├── 1739377754_alter_cursor_env_enum.up.sql ├── 1739378168_create_base_mainnet_v2_raw_data.down.sql ├── 1739378168_create_base_mainnet_v2_raw_data.up.sql ├── 1739415841_alter_cursor_env_enum.down.sql ├── 1739415841_alter_cursor_env_enum.up.sql ├── 1739590962_create_base_mainnet_v2_raw_data.down.sql ├── 1739590962_create_base_mainnet_v2_raw_data.up.sql ├── 1739591152_alter_cursor_env_enum.down.sql ├── 1739591152_alter_cursor_env_enum.up.sql ├── 1739591262_create_linea_sepolia_raw_data.down.sql ├── 1739591262_create_linea_sepolia_raw_data.up.sql ├── 1739844132_alter_cursor_env_enum_add_new_linea.down.sql ├── 1739844132_alter_cursor_env_enum_add_new_linea.up.sql ├── 1739844222_create_linea_mainnet_v2_raw_data.down.sql ├── 1739844222_create_linea_mainnet_v2_raw_data.up.sql └── Dockerfile ├── init-dbs.sh ├── integration-tests ├── .gitignore ├── Dockerfile ├── README.md ├── codegen.ts ├── package.json ├── pnpm-lock.yaml ├── src │ ├── create-person.test.ts │ ├── create-predicates.test.ts │ ├── create-update-thing.test.ts │ ├── denver-events.test.ts │ ├── graphql │ │ ├── fragment-masking.ts │ │ ├── gql.ts │ │ ├── graphql.ts │ │ └── index.ts │ └── setup │ │ ├── bytecode.ts │ │ ├── constants.ts │ │ ├── deploy.ts │ │ └── utils.ts ├── tsconfig.json └── vitest.config.ts ├── kubernetes ├── local └── Dockerfile ├── models ├── Cargo.toml ├── src │ ├── account.rs │ ├── atom.rs │ ├── atom_value.rs │ ├── book.rs │ ├── byte_object.rs │ ├── cached_image.rs │ ├── caip10.rs │ ├── claim.rs │ ├── deposit.rs │ ├── error.rs │ ├── event.rs │ ├── fee_transfer.rs │ ├── json_object.rs │ ├── lib.rs │ ├── organization.rs │ ├── person.rs │ ├── position.rs │ ├── predicate_object.rs │ ├── raw_logs.rs │ ├── redemption.rs │ ├── signal.rs │ ├── stats.rs │ ├── stats_hour.rs │ ├── substreams_cursor.rs │ ├── test_helpers │ │ └── mod.rs │ ├── text_object.rs │ ├── thing.rs │ ├── traits.rs │ ├── triple.rs │ ├── types │ │ └── mod.rs │ └── vault.rs └── tests │ ├── test_account_crud.rs │ ├── test_atom_crud.rs │ ├── test_atom_value_crud.rs │ ├── test_book_crud.rs │ ├── test_byte_object_crud.rs │ ├── test_caip10_crud.rs │ ├── test_claim_crud.rs │ ├── test_deposit_crud.rs │ ├── test_event_crud.rs │ ├── test_fee_transfer_crud.rs │ ├── test_image_guard.rs │ ├── test_json_object_crud.rs │ ├── test_organization_crud.rs │ ├── test_person_crud.rs │ ├── test_position_crud.rs │ ├── test_predicate_object.rs │ ├── test_redemption_crud.rs │ ├── test_signal_crud.rs │ ├── test_stats_crud.rs │ ├── test_stats_hour_crud.rs │ ├── test_substreams_cursor.rs │ ├── test_text_object_crud.rs │ ├── test_thing_crud.rs │ ├── test_triple_crud.rs │ ├── test_use_case_1.rs │ └── test_vauld_crud.rs ├── prometheus ├── alert.rules ├── prometheus.yml └── recording.rules ├── remove_pvc.sh ├── restart.sh ├── rpc-proxy ├── Cargo.toml ├── Dockerfile ├── README.md ├── contracts │ └── EthMultiVault.json └── src │ ├── app.rs │ ├── endpoints │ ├── mod.rs │ └── proxy.rs │ ├── error.rs │ ├── main.rs │ ├── models │ ├── json_rpc_cache.rs │ └── mod.rs │ └── openapi.rs ├── shared-utils ├── Cargo.toml └── src │ ├── error.rs │ ├── image.rs │ ├── ipfs.rs │ ├── lib.rs │ ├── postgres.rs │ ├── traits.rs │ └── types.rs ├── start.sh ├── stop.sh ├── substreams-sink ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── Dockerfile ├── README.md ├── basemainnet-18528268-21791864-trimmed.txt.zip ├── buf.gen.yaml └── src │ ├── app.rs │ ├── error.rs │ ├── main.rs │ ├── pb │ ├── mod.rs │ ├── pb.rs │ ├── sf.ethereum.substreams.v1.rs │ ├── sf.ethereum.type.v2.rs │ ├── sf.firehose.v2.rs │ ├── sf.firehose.v2.tonic.rs │ ├── sf.substreams.ethereum.v1.rs │ ├── sf.substreams.index.v1.rs │ ├── sf.substreams.rpc.v2.rs │ ├── sf.substreams.rpc.v2.tonic.rs │ ├── sf.substreams.rs │ └── sf.substreams.v1.rs │ ├── substreams.rs │ ├── substreams_stream.rs │ ├── types.rs │ └── utils.rs └── tq /.cargo/makefiles/consumers.toml: -------------------------------------------------------------------------------- 1 | [tasks.raw-consumer] 2 | env = { "RUST_LOG" = "info" } 3 | command = "cargo" 4 | args = ["run", "--bin", "consumer", "--", "--mode", "raw"] 5 | 6 | [tasks.decoded-consumer] 7 | env = { "RUST_LOG" = "info" } 8 | command = "cargo" 9 | args = ["run", "--bin", "consumer", "--", "--mode", "decoded"] 10 | 11 | [tasks.resolver-consumer] 12 | env = { "RUST_LOG" = "info" } 13 | command = "cargo" 14 | args = ["run", "--bin", "consumer", "--", "--mode", "resolver"] -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | target 2 | .git 3 | Dockerfile -------------------------------------------------------------------------------- /.env.local-integration: -------------------------------------------------------------------------------- 1 | BASE_MAINNET_RPC_URL=http://geth:8545 2 | BASE_SEPOLIA_RPC_URL=http://geth:8545 3 | INTUITION_CONTRACT_ADDRESS=0x04056c43d0498b22f7a0c60d4c3584fb5fa881cc 4 | START_BLOCK=0 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | volume 3 | .DS_store 4 | .env 5 | .env.docker 6 | .env.dump 7 | logs/* 8 | devops/aws/test_postgres.yaml 9 | **/.terraform/** 10 | -------------------------------------------------------------------------------- /Makefile.toml: -------------------------------------------------------------------------------- 1 | [env] 2 | CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true 3 | 4 | [config] 5 | default_to_workspace = false 6 | 7 | [tasks] 8 | 9 | # Docker tasks 10 | [[extend]] 11 | path = ".cargo/makefiles/docker.toml" 12 | 13 | # Consumers tasks 14 | [[extend]] 15 | path = ".cargo/makefiles/consumers.toml" 16 | 17 | # Development tasks 18 | [[extend]] 19 | path = ".cargo/makefiles/development.toml" 20 | -------------------------------------------------------------------------------- /cli.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker run -i -t \ 3 | --network intuition-rs_default \ 4 | --env INTUITION_URL=http://graphql-engine:8080/v1/graphql \ 5 | ghcr.io/0xintuition/cli:latest cli 6 | 7 | -------------------------------------------------------------------------------- /cli/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cli" 3 | version = "0.1.0" 4 | edition = "2024" 5 | 6 | [dependencies] 7 | alloy.workspace = true 8 | crossterm = "0.28.1" 9 | graphql_client = { version = "0.14", features = ["reqwest"] } 10 | lazy_static = "1.4.0" 11 | ratatui = "0.29" 12 | reqwest = { version = "0.12.8", features = ["json", "blocking"] } 13 | serde.workspace = true 14 | tokio.workspace = true 15 | -------------------------------------------------------------------------------- /cli/README.md: -------------------------------------------------------------------------------- 1 | ## Development 2 | 3 | ### Update graphql schema 4 | 5 | ``` 6 | npx get-graphql-schema http://localhost:8080/v1/graphql > src/queries/schema.graphql 7 | ``` 8 | -------------------------------------------------------------------------------- /cli/src/queries/get-accounts.graphql: -------------------------------------------------------------------------------- 1 | query GetAccounts { 2 | accounts(where: {type: {_eq: "Default"}}, order_by: {claims_aggregate: {count: desc}}) { 3 | id 4 | label 5 | positions_aggregate { 6 | aggregate { 7 | count 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /cli/src/queries/get-atoms.graphql: -------------------------------------------------------------------------------- 1 | query GetAtoms { 2 | atoms(limit: 250) { 3 | id 4 | label 5 | type 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /cli/src/queries/get-predicate-objects.graphql: -------------------------------------------------------------------------------- 1 | query GetPredicateObjects { 2 | predicate_objects( 3 | order_by: [{claim_count: desc}, {triple_count: desc}] 4 | ) { 5 | claim_count 6 | triple_count 7 | object { 8 | label 9 | data 10 | id 11 | } 12 | predicate { 13 | label 14 | id 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /cli/src/queries/get-signals.graphql: -------------------------------------------------------------------------------- 1 | query GetSignals { 2 | signals(limit: 250, order_by: {block_timestamp: desc}) { 3 | id 4 | delta 5 | block_timestamp 6 | account { 7 | label 8 | type 9 | } 10 | atom { 11 | emoji 12 | id 13 | label 14 | } 15 | deposit { 16 | shares_for_receiver 17 | } 18 | redemption { 19 | receiver { 20 | label 21 | } 22 | } 23 | triple { 24 | subject { 25 | label 26 | } 27 | predicate { 28 | label 29 | } 30 | object { 31 | label 32 | } 33 | } 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /consumer-api/.dockerignore: -------------------------------------------------------------------------------- 1 | target 2 | .git 3 | Dockerfile -------------------------------------------------------------------------------- /consumer-api/src/endpoints/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod refetch_atoms; 2 | -------------------------------------------------------------------------------- /consumer-api/src/main.rs: -------------------------------------------------------------------------------- 1 | use app::App; 2 | use error::ApiError; 3 | 4 | mod app; 5 | mod endpoints; 6 | mod error; 7 | mod openapi; 8 | mod state; 9 | mod types; 10 | 11 | #[tokio::main] 12 | async fn main() -> Result<(), ApiError> { 13 | App::new().await?.serve().await 14 | } 15 | -------------------------------------------------------------------------------- /consumer-api/src/openapi.rs: -------------------------------------------------------------------------------- 1 | use crate::endpoints::{self, refetch_atoms::RefetchAtomsRequest}; 2 | use utoipa::OpenApi; 3 | 4 | #[derive(OpenApi)] 5 | #[openapi( 6 | paths( 7 | endpoints::refetch_atoms::refetch_atoms, 8 | ), 9 | components( 10 | schemas( 11 | RefetchAtomsRequest, 12 | ) 13 | ), 14 | tags( 15 | (name = "atoms", description = "Atom re-fetch endpoints") 16 | ) 17 | )] 18 | pub struct ApiDoc; 19 | -------------------------------------------------------------------------------- /consumer-api/src/types.rs: -------------------------------------------------------------------------------- 1 | use serde::Deserialize; 2 | 3 | #[derive(Deserialize)] 4 | pub struct Env { 5 | pub consumer_api_port: Option, 6 | pub resolver_queue_url: String, 7 | pub localstack_url: Option, 8 | } 9 | -------------------------------------------------------------------------------- /consumer/.dockerignore: -------------------------------------------------------------------------------- 1 | target 2 | .git 3 | Dockerfile -------------------------------------------------------------------------------- /consumer/devops/localstack-setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "Initializing localstack SQS..." 3 | awslocal sqs create-queue --queue-name raw_logs.fifo --attributes FifoQueue=true,ContentBasedDeduplication=true 4 | awslocal sqs create-queue --queue-name decoded_logs.fifo --attributes FifoQueue=true,ContentBasedDeduplication=true 5 | awslocal sqs create-queue --queue-name resolver 6 | awslocal sqs create-queue --queue-name ipfs_upload --attributes VisibilityTimeout=600 7 | -------------------------------------------------------------------------------- /consumer/src/consumer_type/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod sqs; 2 | -------------------------------------------------------------------------------- /consumer/src/mode/decoded/atom/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod atom_creation; 2 | pub mod atom_supported_types; 3 | -------------------------------------------------------------------------------- /consumer/src/mode/decoded/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod atom; 2 | pub mod deposited; 3 | pub mod fees_transfered; 4 | pub mod redeemed; 5 | pub mod triple; 6 | pub mod utils; 7 | -------------------------------------------------------------------------------- /consumer/src/mode/ipfs_upload/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod handler; 2 | pub mod types; 3 | -------------------------------------------------------------------------------- /consumer/src/mode/ipfs_upload/types.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | #[derive(Debug, Serialize, Deserialize)] 4 | pub struct IpfsUploadMessage { 5 | pub image: String, 6 | } 7 | -------------------------------------------------------------------------------- /consumer/src/mode/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod decoded; 2 | pub mod ipfs_upload; 3 | pub mod raw; 4 | pub mod resolver; 5 | pub mod types; 6 | -------------------------------------------------------------------------------- /consumer/src/mode/raw/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod handler; 2 | pub mod parse_and_decode; 3 | -------------------------------------------------------------------------------- /consumer/src/mode/resolver/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod atom_resolver; 2 | pub mod ens_resolver; 3 | pub mod types; 4 | -------------------------------------------------------------------------------- /consumer/src/schemas/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod goldsky; 2 | pub mod substreams; 3 | pub mod types; 4 | -------------------------------------------------------------------------------- /devops/argocd/apps/coreapps/crossplane-aws-provider.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: argoproj.io/v1alpha1 2 | kind: Application 3 | metadata: 4 | name: crossplane-aws-provider 5 | namespace: argocd 6 | spec: 7 | project: prod 8 | source: 9 | repoURL: 'https://github.com/0xintuition/intuition-rs.git' 10 | targetRevision: francois/add-iac 11 | path: devops/argocd/manifests/crossplane-aws-provider 12 | destination: 13 | server: 'https://kubernetes.default.svc' 14 | namespace: crossplane-system 15 | syncPolicy: 16 | automated: 17 | prune: true 18 | selfHeal: true 19 | syncOptions: 20 | - CreateNamespace=true 21 | -------------------------------------------------------------------------------- /devops/argocd/apps/coreapps/crossplane.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: argoproj.io/v1alpha1 2 | kind: Application 3 | metadata: 4 | name: crossplane 5 | namespace: argocd 6 | spec: 7 | project: prod 8 | source: 9 | chart: crossplane 10 | repoURL: https://charts.crossplane.io/stable 11 | targetRevision: 1.19.0 12 | helm: 13 | releaseName: crossplane 14 | destination: 15 | server: 'https://kubernetes.default.svc' 16 | namespace: crossplane-system 17 | syncPolicy: 18 | automated: 19 | prune: true 20 | selfHeal: true 21 | syncOptions: 22 | - CreateNamespace=true 23 | -------------------------------------------------------------------------------- /devops/argocd/apps/coreapps/ingress-main.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: argoproj.io/v1alpha1 2 | kind: Application 3 | metadata: 4 | name: ingress-main 5 | namespace: argocd 6 | spec: 7 | project: prod 8 | source: 9 | repoURL: 'https://github.com/0xintuition/intuition-rs.git' 10 | targetRevision: francois/add-iac 11 | path: devops/argocd/manifests/ingress-main 12 | destination: 13 | server: 'https://kubernetes.default.svc' 14 | namespace: default 15 | syncPolicy: 16 | automated: 17 | prune: true 18 | selfHeal: true 19 | syncOptions: 20 | - CreateNamespace=true 21 | -------------------------------------------------------------------------------- /devops/argocd/apps/coreapps/kubernetes-replicator.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: argoproj.io/v1alpha1 2 | kind: Application 3 | metadata: 4 | name: replicator 5 | namespace: argocd 6 | spec: 7 | project: prod 8 | source: 9 | repoURL: 'https://github.com/0xintuition/intuition-rs.git' 10 | targetRevision: francois/add-iac 11 | path: devops/argocd/manifests/replicator 12 | destination: 13 | server: 'https://kubernetes.default.svc' 14 | namespace: default 15 | syncPolicy: 16 | automated: 17 | prune: true 18 | selfHeal: true 19 | syncOptions: 20 | - CreateNamespace=true 21 | -------------------------------------------------------------------------------- /devops/argocd/apps/coreapps/pgadmin.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: argoproj.io/v1alpha1 2 | kind: Application 3 | metadata: 4 | name: pgadmin 5 | namespace: argocd 6 | spec: 7 | project: prod 8 | source: 9 | repoURL: 'https://github.com/0xintuition/intuition-rs.git' 10 | targetRevision: francois/add-iac 11 | path: devops/argocd/manifests/pgadmin 12 | destination: 13 | server: 'https://kubernetes.default.svc' 14 | namespace: default 15 | syncPolicy: 16 | automated: 17 | prune: true 18 | selfHeal: true 19 | syncOptions: 20 | - CreateNamespace=true 21 | -------------------------------------------------------------------------------- /devops/argocd/kustomize/create-db/create-db.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: create-database-job 5 | spec: 6 | template: 7 | spec: 8 | containers: 9 | - name: postgres 10 | image: postgres:16 11 | command: 12 | - "sh" 13 | - "-c" 14 | - 'psql $DATABASE_URL -c "CREATE DATABASE $DBNAME;"' 15 | env: 16 | - name: DATABASE_URL 17 | value: "postgresql://$(MAINDB_username):$(MAINDB_password)@$(MAINDB_endpoint)/postgres?sslmode=require" 18 | envFrom: 19 | - secretRef: 20 | name: main-db-creds 21 | prefix: "MAINDB_" 22 | restartPolicy: Never 23 | backoffLimit: 2 24 | -------------------------------------------------------------------------------- /devops/argocd/kustomize/create-db/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - create-db.yaml 6 | -------------------------------------------------------------------------------- /devops/argocd/manifests/db-main-creds/db-main-creds.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: main-db-creds 5 | annotations: 6 | replicator.v1.mittwald.de/replicate-from: default/main-db-creds 7 | data: {} 8 | -------------------------------------------------------------------------------- /devops/argocd/manifests/pgadmin/pgadmin.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: pgadmin 5 | namespace: default 6 | spec: 7 | containers: 8 | - env: 9 | - name: PGADMIN_DEFAULT_EMAIL 10 | value: luis@intuition.com 11 | - name: PGADMIN_DEFAULT_PASSWORD 12 | value: admin 13 | image: dpage/pgadmin4:latest 14 | name: pgadmin 15 | ports: 16 | - containerPort: 80 17 | protocol: TCP 18 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/api/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: api -------------------------------------------------------------------------------- /devops/aws-rolling-releases/api/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: api 9 | name: api 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3000" 14 | port: 3000 15 | targetPort: 3000 16 | selector: 17 | io.kompose.service: api 18 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/api/overlays/dev-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: api 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/api/overlays/prod-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: api 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumer-api/base/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: consumer-api 5 | spec: 6 | replicas: 1 7 | selector: 8 | matchLabels: 9 | io.kompose.service: consumer-api 10 | template: 11 | metadata: 12 | labels: 13 | io.kompose.service: consumer-api 14 | spec: 15 | serviceAccountName: secrets-access-sa 16 | containers: 17 | - name: consumer-api 18 | ports: 19 | - containerPort: 3003 20 | protocol: TCP 21 | 22 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumer-api/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: consumer-api -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumer-api/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: consumer-api 9 | name: consumer-api 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3003" 14 | port: 3003 15 | targetPort: 3003 16 | selector: 17 | io.kompose.service: consumer-api 18 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumer-api/overlays/dev-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumer-api/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumer-api/overlays/prod-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumer-api/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumer-api/overlays/prod-linea-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | - sqs.yaml 8 | 9 | commonLabels: 10 | component: decoded-consumer 11 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/decoded/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | prometheus.io/scrape: "true" 8 | prometheus.io/port: "3002" 9 | prometheus.io/path: "/metrics" 10 | labels: 11 | io.kompose.service: decoded-consumer 12 | name: decoded-consumer 13 | spec: 14 | type: ClusterIP 15 | ports: 16 | - name: "3002" 17 | port: 3002 18 | targetPort: 3002 19 | selector: 20 | io.kompose.service: decoded-consumer 21 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/decoded/sqs.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: sqs.aws.upbound.io/v1beta1 2 | kind: Queue 3 | metadata: 4 | name: resolver-queue 5 | spec: 6 | forProvider: 7 | name: resolver-queue 8 | region: us-west-2 9 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | 8 | commonLabels: 9 | component: ipfs-consumer -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/ipfs-upload/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: ipfs-upload-consumer 9 | name: ipfs-upload-consumer 10 | spec: 11 | ports: 12 | - name: "8002" 13 | port: 8002 14 | targetPort: 8002 15 | selector: 16 | io.kompose.service: ipfs-upload-consumer 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | - sqs.yaml 8 | 9 | commonLabels: 10 | component: raw-consumer 11 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/raw/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: raw-consumer 9 | name: raw-consumer 10 | spec: 11 | ports: 12 | - name: "8003" 13 | port: 8003 14 | targetPort: 8003 15 | selector: 16 | io.kompose.service: raw-consumer 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/raw/sqs.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: sqs.aws.upbound.io/v1beta1 2 | kind: Queue 3 | metadata: 4 | name: decoded-logs 5 | spec: 6 | forProvider: 7 | name: decoded-logs 8 | region: us-west-2 9 | fifoQueue: true 10 | contentBasedDeduplication: true 11 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | - sqs.yaml 8 | 9 | commonLabels: 10 | component: resolver-consumer 11 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/resolver/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: resolver-consumer 9 | name: resolver-consumer 10 | spec: 11 | ports: 12 | - name: "8001" 13 | port: 8001 14 | targetPort: 8001 15 | selector: 16 | io.kompose.service: resolver-consumer 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/base/resolver/sqs.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: sqs.aws.upbound.io/v1beta1 2 | kind: Queue 3 | metadata: 4 | name: ipfs-upload 5 | spec: 6 | forProvider: 7 | name: ipfs-upload 8 | region: us-west-2 9 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/dev-base-mainnet/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: decoded-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/dev-base-mainnet/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: ipfs-upload-consumer 13 | 14 | commonLabels: 15 | network: base-mainnet 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/dev-base-mainnet/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: raw-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/dev-base-mainnet/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: resolver-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/dev-base-sepolia/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: decoded-consumer 14 | 15 | commonLabels: 16 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/dev-base-sepolia/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: ipfs-upload-consumer 13 | 14 | commonLabels: 15 | network: base-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/dev-base-sepolia/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: raw-consumer 14 | 15 | commonLabels: 16 | network: base-sepolia 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/dev-base-sepolia/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: resolver-consumer 14 | 15 | commonLabels: 16 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet-v2/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: decoded-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet-v2/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: ipfs-upload-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet-v2/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: raw-consumer 14 | 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet-v2/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: resolver-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: decoded-consumer 13 | 14 | commonLabels: 15 | network: base-mainnet 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | - pvc.yaml 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: ipfs-upload-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet/ipfs-upload/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prod-base-mainnet-ipfs-upload-logs 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: raw-consumer 13 | 14 | 15 | commonLabels: 16 | network: base-mainnet 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | - pvc.yaml 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: resolver-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-mainnet/resolver/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prod-base-mainnet-resolver-logs 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia-v2/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: decoded-consumer 13 | 14 | commonLabels: 15 | network: base-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia-v2/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: ipfs-upload-consumer 13 | 14 | commonLabels: 15 | network: base-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia-v2/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: raw-consumer 13 | 14 | 15 | commonLabels: 16 | network: base-sepolia 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia-v2/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: resolver-consumer 13 | 14 | commonLabels: 15 | network: base-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: decoded-consumer 13 | 14 | commonLabels: 15 | network: base-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: ipfs-upload-consumer 13 | 14 | commonLabels: 15 | network: base-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia/ipfs-upload/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: ipfs-upload-logs 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi 12 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: raw-consumer 13 | 14 | 15 | commonLabels: 16 | network: base-sepolia 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | - pvc.yaml 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: resolver-consumer 14 | 15 | commonLabels: 16 | network: base-sepolia 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-base-sepolia/resolver/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prod-base-sepolia-resolver-logs 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-mainnet-v2/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: decoded-consumer 14 | 15 | commonLabels: 16 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-mainnet-v2/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: ipfs-upload-consumer 13 | 14 | commonLabels: 15 | network: linea-mainnet-v2 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-mainnet-v2/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: raw-consumer 14 | 15 | 16 | commonLabels: 17 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-mainnet-v2/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: resolver-consumer 14 | 15 | commonLabels: 16 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-mainnet/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: decoded-consumer 14 | 15 | commonLabels: 16 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-mainnet/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: ipfs-upload-consumer 13 | 14 | commonLabels: 15 | network: linea-mainnet 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-mainnet/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: raw-consumer 14 | 15 | 16 | commonLabels: 17 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-mainnet/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: resolver-consumer 14 | 15 | commonLabels: 16 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-sepolia/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: decoded-consumer 14 | 15 | commonLabels: 16 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-sepolia/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: ipfs-upload-consumer 13 | 14 | commonLabels: 15 | network: linea-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-sepolia/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: raw-consumer 14 | 15 | 16 | commonLabels: 17 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/consumers/overlays/prod-linea-sepolia/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: resolver-consumer 14 | 15 | commonLabels: 16 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/curl.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: test-curl-pod 5 | spec: 6 | containers: 7 | - name: curl-container 8 | image: curlimages/curl:latest 9 | command: ["sh", "-c", "while true; do sleep 30; done;"] 10 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/envio-indexer/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | commonLabels: 9 | component: envio-indexer -------------------------------------------------------------------------------- /devops/aws-rolling-releases/envio-indexer/base/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: envio-indexer-data 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | storageClassName: gp2-immediate 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /devops/aws-rolling-releases/envio-indexer/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | app: envio-indexer 9 | name: envio-indexer 10 | spec: 11 | ports: 12 | - name: envio-indexer 13 | port: 3000 14 | targetPort: 3000 15 | selector: 16 | app: envio-indexer -------------------------------------------------------------------------------- /devops/aws-rolling-releases/envio-indexer/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: envio-indexer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/envio-indexer/overlays/prod-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: envio-indexer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/envio-indexer/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: envio-indexer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histocrawler/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | commonLabels: 8 | component: envio-indexer -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histocrawler/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | app: histocrawler 9 | name: histocrawler 10 | spec: 11 | ports: 12 | - name: histocrawler 13 | port: 3000 14 | targetPort: 3000 15 | selector: 16 | app: histocrawler -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histocrawler/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histocrawler 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histocrawler/overlays/prod-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: histocrawler 13 | 14 | commonLabels: 15 | network: base-mainnet 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histocrawler/overlays/prod-linea-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histocrawler 15 | 16 | commonLabels: 17 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histocrawler/overlays/prod-linea-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: histocrawler 13 | 14 | commonLabels: 15 | network: linea-mainnet 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histocrawler/overlays/prod-linea-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: histocrawler 13 | 14 | commonLabels: 15 | network: linea-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/base/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: histoflux 5 | spec: 6 | replicas: 1 7 | selector: 8 | matchLabels: 9 | io.kompose.service: histoflux 10 | template: 11 | metadata: 12 | labels: 13 | io.kompose.service: histoflux 14 | spec: 15 | serviceAccountName: secrets-access-sa 16 | containers: 17 | - name: histoflux 18 | ports: 19 | - containerPort: 3009 20 | protocol: TCP 21 | envFrom: [] 22 | env: [] 23 | 24 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | - sqs.yaml 8 | 9 | commonLabels: 10 | component: histoflux 11 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: histoflux 9 | name: histoflux 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3009" 14 | port: 3009 15 | targetPort: 3009 16 | selector: 17 | io.kompose.service: histoflux -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/base/sqs.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: sqs.aws.upbound.io/v1beta1 2 | kind: Queue 3 | metadata: 4 | name: raw-logs-queue 5 | spec: 6 | forProvider: 7 | name: raw-logs-queue 8 | region: us-west-2 9 | fifoQueue: true 10 | contentBasedDeduplication: true 11 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/dev-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: histoflux 14 | 15 | commonLabels: 16 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: histoflux 14 | 15 | commonLabels: 16 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/prod-base-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: histoflux 14 | 15 | commonLabels: 16 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/prod-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: histoflux 13 | 14 | commonLabels: 15 | network: base-mainnet 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/prod-base-sepolia-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: histoflux 13 | 14 | commonLabels: 15 | network: base-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: histoflux 13 | 14 | commonLabels: 15 | network: base-sepolia 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/prod-linea-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | patches: 9 | - path: deployment-patch.yaml 10 | target: 11 | kind: Deployment 12 | name: histoflux 13 | 14 | commonLabels: 15 | network: linea-mainnet-v2 16 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/prod-linea-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: histoflux 14 | 15 | commonLabels: 16 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws-rolling-releases/histoflux/overlays/prod-linea-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: histoflux 14 | 15 | commonLabels: 16 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/ipfs/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - storage-class.yaml 6 | - deployment.yaml 7 | - pvc.yaml 8 | - service.yaml 9 | - service-account.yaml 10 | - secret-provider.yaml 11 | - configmap.yaml 12 | 13 | commonLabels: 14 | component: ipfs -------------------------------------------------------------------------------- /devops/aws-rolling-releases/ipfs/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: ipfs-data-new 5 | labels: 6 | component: ipfs 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 20Gi 13 | storageClassName: gp2-resizable -------------------------------------------------------------------------------- /devops/aws-rolling-releases/ipfs/secret-provider.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: secrets-store.csi.x-k8s.io/v1 2 | kind: SecretProviderClass 3 | metadata: 4 | name: ipfs-aws-secrets 5 | namespace: default 6 | spec: 7 | provider: aws 8 | parameters: 9 | objects: | 10 | - objectName: "new-be-secrets" 11 | objectType: "secretsmanager" 12 | objectVersionLabel: "AWSCURRENT" 13 | jmesPath: 14 | - path: "PINATA_API_JWT" 15 | objectAlias: "PINATA_API_JWT" 16 | secretObjects: 17 | - secretName: "ipfs-aws-secrets" # The name of the Kubernetes secret to create 18 | type: Opaque 19 | data: 20 | - objectName: "PINATA_API_JWT" 21 | key: "PINATA_API_JWT" 22 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/ipfs/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: secrets-access-sa 5 | annotations: 6 | eks.amazonaws.com/role-arn: arn:aws:iam::064662847354:role/aws-secrets -------------------------------------------------------------------------------- /devops/aws-rolling-releases/ipfs/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | app: ipfs 9 | name: ipfs 10 | spec: 11 | type: LoadBalancer 12 | ports: 13 | - name: "4001" 14 | port: 4001 15 | targetPort: 4001 16 | - name: "4002" 17 | port: 4002 18 | protocol: UDP 19 | targetPort: 4002 20 | - name: "4003" 21 | port: 4003 22 | targetPort: 4003 23 | - name: "5001" 24 | port: 5001 25 | targetPort: 5001 26 | - name: "8080" 27 | port: 8080 28 | targetPort: 8080 29 | selector: 30 | app: ipfs 31 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/ipfs/storage-class.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: storage.k8s.io/v1 2 | kind: StorageClass 3 | metadata: 4 | name: gp2-resizable 5 | provisioner: kubernetes.io/aws-ebs 6 | parameters: 7 | type: gp2 8 | allowVolumeExpansion: true # This is the key setting 9 | reclaimPolicy: Retain 10 | volumeBindingMode: WaitForFirstConsumer -------------------------------------------------------------------------------- /devops/aws-rolling-releases/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - api 6 | - consumers/decoded 7 | - consumers/ipfs-upload 8 | - consumers/raw 9 | - consumers/resolver-consumer 10 | - ipfs 11 | - monitoring/log-cleanup 12 | - monitoring/prometheus 13 | - rbac/secrets-store-csi-driver-rbac.yaml 14 | - services/graphql 15 | - services/safe-content-api 16 | - substreams-sink 17 | 18 | commonLabels: 19 | app: intuition -------------------------------------------------------------------------------- /devops/aws-rolling-releases/monitoring/log-cleanup/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | 7 | commonLabels: 8 | component: log-cleanup -------------------------------------------------------------------------------- /devops/aws-rolling-releases/monitoring/prometheus/cluster-rolebinding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | name: secrets-access-cluster-rolebinding 5 | subjects: 6 | - kind: ServiceAccount 7 | name: secrets-access-sa 8 | namespace: default 9 | roleRef: 10 | kind: ClusterRole 11 | name: secrets-store-csi-driver-cluster-role 12 | apiGroup: rbac.authorization.k8s.io 13 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/monitoring/prometheus/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - cluster-rolebinding.yaml 6 | - configmap.yaml 7 | - pvc.yaml 8 | - deployment.yaml 9 | - service.yaml 10 | commonLabels: 11 | component: prometheus -------------------------------------------------------------------------------- /devops/aws-rolling-releases/monitoring/prometheus/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prometheus-data 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws-rolling-releases/monitoring/prometheus/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: prometheus 5 | spec: 6 | type: LoadBalancer 7 | ports: 8 | - port: 9090 9 | targetPort: 9090 10 | protocol: TCP 11 | selector: 12 | app: prometheus 13 | 14 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/rbac/cluster-role-binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | name: secrets-store-csi-driver-cluster-rolebinding 5 | subjects: 6 | - kind: ServiceAccount 7 | name: secrets-store-csi-driver 8 | namespace: kube-system 9 | roleRef: 10 | kind: ClusterRole 11 | name: secrets-store-csi-driver-cluster-role 12 | apiGroup: rbac.authorization.k8s.io -------------------------------------------------------------------------------- /devops/aws-rolling-releases/rpc-proxy/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: rpc-proxy -------------------------------------------------------------------------------- /devops/aws-rolling-releases/rpc-proxy/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: rpc-proxy 9 | name: rpc-proxy 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3008" 14 | port: 3008 15 | targetPort: 3008 16 | selector: 17 | io.kompose.service: rpc-proxy 18 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/rpc-proxy/overlays/dev/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: rpc-proxy 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/rpc-proxy/overlays/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: rpc-proxy 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/safe-content-api/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: safe-content 5 | spec: 6 | replicas: 2 7 | selector: 8 | matchLabels: 9 | io.kompose.service: safe-content 10 | template: 11 | metadata: 12 | labels: 13 | io.kompose.service: safe-content 14 | spec: 15 | serviceAccountName: secrets-access-sa 16 | containers: 17 | - name: safe-content 18 | image: steelcityamir/safe-content-ai:latest 19 | imagePullPolicy: Always 20 | ports: 21 | - containerPort: 8000 22 | protocol: TCP 23 | 24 | 25 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/safe-content-api/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: safe-content-api -------------------------------------------------------------------------------- /devops/aws-rolling-releases/safe-content-api/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: safe-content 9 | name: safe-content 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "8000" 14 | port: 8000 15 | targetPort: 8000 16 | selector: 17 | io.kompose.service: safe-content 18 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/scripts/delete_consumer_deployments.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xIntuition/intuition-rs/a6265a38af1644734774b16fc2c1f87bf7336c86/devops/aws-rolling-releases/scripts/delete_consumer_deployments.sh -------------------------------------------------------------------------------- /devops/aws-rolling-releases/scripts/delete_graphql_engine.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "Deleting graphql-engine deployment..." 4 | kubectl delete deployment graphql-engine 5 | 6 | echo "Deleting hasura-migrations job..." 7 | kubectl delete job hasura-migrations 8 | 9 | echo "Done!" 10 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/scripts/delete_secret_providers.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "Deleting secret provider class..." 4 | kubectl delete secretproviderclass hasura-aws-secrets -n default 5 | kubectl delete secretproviderclass substreams-aws-secrets -n default 6 | kubectl delete secretproviderclass resolver-aws-secrets -n default 7 | kubectl delete secretproviderclass ipfs-upload-aws-secrets -n default 8 | kubectl delete secretproviderclass raw-aws-secrets -n default 9 | kubectl delete secretproviderclass decoded-aws-secrets -n default 10 | 11 | echo "Done!" 12 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/scripts/delete_substreams_sink.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "Deleting substreams-sink deployment..." 4 | kubectl delete deployment substreams-sink 5 | kubectl delete pvc substreams-data 6 | 7 | echo "Done!" 8 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/base/indexer-cache-migrations-job.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: indexer-and-cache-migration 5 | spec: 6 | template: 7 | spec: 8 | serviceAccountName: secrets-access-sa 9 | containers: 10 | - name: indexer-and-cache-migration 11 | env: [] 12 | envFrom: [] 13 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | - migrations-deployment.yaml 8 | - indexer-cache-migrations-job.yaml 9 | # - migrations-pod.yaml 10 | commonLabels: 11 | component: graphql 12 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/base/migrations-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: hasura-migrations 5 | spec: 6 | template: 7 | spec: 8 | serviceAccountName: secrets-access-sa 9 | initContainers: 10 | - name: wait 11 | image: busybox 12 | command: ['sh', '-c', 'sleep 5'] 13 | containers: 14 | - name: hasura-migrations 15 | env: [] 16 | envFrom: [] 17 | restartPolicy: Never 18 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: graphql-engine 5 | labels: 6 | io.kompose.service: graphql-engine 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 8080 11 | targetPort: 8080 12 | protocol: TCP 13 | name: http 14 | selector: 15 | io.kompose.service: graphql-engine -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/overlays/prod-base-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-base-mainnet-v2-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: base-mainnet 24 | io.kompose.service: prod-base-mainnet-v2-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/overlays/prod-base-sepolia-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-base-sepolia-v2-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: base-mainnet 24 | io.kompose.service: prod-base-sepolia-v2-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/overlays/prod-linea-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-linea-mainnet-v2-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: linea-mainnet-v2 24 | io.kompose.service: prod-linea-mainnet-v2-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/overlays/prod-linea-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-linea-mainnet-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: linea-mainnet 24 | io.kompose.service: prod-linea-mainnet-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/services/graphql/overlays/prod-linea-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-linea-sepolia-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: linea-sepolia 24 | io.kompose.service: prod-linea-sepolia-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/substreams-sink/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | commonLabels: 9 | component: substreams-sink -------------------------------------------------------------------------------- /devops/aws-rolling-releases/substreams-sink/base/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: substreams-data 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | storageClassName: gp2-immediate 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /devops/aws-rolling-releases/substreams-sink/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: substreams-sink 9 | name: substreams-sink 10 | spec: 11 | ports: 12 | - name: substreams-sink 13 | port: 3000 14 | targetPort: 3000 15 | selector: 16 | io.kompose.service: substreams-sink 17 | -------------------------------------------------------------------------------- /devops/aws-rolling-releases/substreams-sink/overlays/dev-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: substreams-sink 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws-rolling-releases/substreams-sink/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: substreams-sink 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/api/base/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: api 5 | spec: 6 | replicas: 3 7 | selector: 8 | matchLabels: 9 | io.kompose.service: api 10 | template: 11 | metadata: 12 | labels: 13 | io.kompose.service: api 14 | spec: 15 | serviceAccountName: secrets-access-sa 16 | containers: 17 | - name: api 18 | ports: 19 | - containerPort: 3000 20 | protocol: TCP 21 | 22 | -------------------------------------------------------------------------------- /devops/aws/api/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: api -------------------------------------------------------------------------------- /devops/aws/api/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: api 9 | name: api 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3000" 14 | port: 3000 15 | targetPort: 3000 16 | selector: 17 | io.kompose.service: api 18 | -------------------------------------------------------------------------------- /devops/aws/api/overlays/dev-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: api 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/api/overlays/prod-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: api 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumer-api/base/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: consumer-api 5 | spec: 6 | replicas: 1 7 | selector: 8 | matchLabels: 9 | io.kompose.service: consumer-api 10 | template: 11 | metadata: 12 | labels: 13 | io.kompose.service: consumer-api 14 | spec: 15 | serviceAccountName: secrets-access-sa 16 | containers: 17 | - name: consumer-api 18 | ports: 19 | - containerPort: 3003 20 | protocol: TCP 21 | 22 | -------------------------------------------------------------------------------- /devops/aws/consumer-api/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: consumer-api -------------------------------------------------------------------------------- /devops/aws/consumer-api/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: consumer-api 9 | name: consumer-api 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3003" 14 | port: 3003 15 | targetPort: 3003 16 | selector: 17 | io.kompose.service: consumer-api 18 | -------------------------------------------------------------------------------- /devops/aws/consumer-api/overlays/dev-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumer-api/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumer-api/overlays/prod-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumer-api/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumer-api/overlays/prod-linea-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: consumer-api 15 | 16 | commonLabels: 17 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/base/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | 8 | commonLabels: 9 | component: decoded-consumer 10 | -------------------------------------------------------------------------------- /devops/aws/consumers/base/decoded/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | prometheus.io/scrape: "true" 8 | prometheus.io/port: "3002" 9 | prometheus.io/path: "/metrics" 10 | labels: 11 | io.kompose.service: decoded-consumer 12 | name: decoded-consumer 13 | spec: 14 | type: ClusterIP 15 | ports: 16 | - name: "3002" 17 | port: 3002 18 | targetPort: 3002 19 | selector: 20 | io.kompose.service: decoded-consumer 21 | -------------------------------------------------------------------------------- /devops/aws/consumers/base/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | 8 | commonLabels: 9 | component: ipfs-consumer -------------------------------------------------------------------------------- /devops/aws/consumers/base/ipfs-upload/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: ipfs-upload-consumer 9 | name: ipfs-upload-consumer 10 | spec: 11 | ports: 12 | - name: "8002" 13 | port: 8002 14 | targetPort: 8002 15 | selector: 16 | io.kompose.service: ipfs-upload-consumer 17 | -------------------------------------------------------------------------------- /devops/aws/consumers/base/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | 8 | commonLabels: 9 | component: raw-consumer -------------------------------------------------------------------------------- /devops/aws/consumers/base/raw/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: raw-consumer 9 | name: raw-consumer 10 | spec: 11 | ports: 12 | - name: "8003" 13 | port: 8003 14 | targetPort: 8003 15 | selector: 16 | io.kompose.service: raw-consumer 17 | -------------------------------------------------------------------------------- /devops/aws/consumers/base/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | 8 | commonLabels: 9 | component: resolver-consumer -------------------------------------------------------------------------------- /devops/aws/consumers/base/resolver/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: resolver-consumer 9 | name: resolver-consumer 10 | spec: 11 | ports: 12 | - name: "8001" 13 | port: 8001 14 | targetPort: 8001 15 | selector: 16 | io.kompose.service: resolver-consumer 17 | -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/dev-base-mainnet/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/dev-base-mainnet/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | namePrefix: "dev-base-mainnet-" 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: ipfs-upload-consumer 14 | 15 | commonLabels: 16 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/dev-base-mainnet/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: raw-consumer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/dev-base-mainnet/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: resolver-consumer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/dev-base-sepolia/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/dev-base-sepolia/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: ipfs-upload-consumer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/dev-base-sepolia/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: raw-consumer 15 | 16 | 17 | commonLabels: 18 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/dev-base-sepolia/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: resolver-consumer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet-v2/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet-v2/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: ipfs-upload-consumer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet-v2/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: raw-consumer 15 | 16 | 17 | commonLabels: 18 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet-v2/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: resolver-consumer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | - pvc.yaml 8 | 9 | namePrefix: "prod-base-mainnet-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: ipfs-upload-consumer 16 | 17 | commonLabels: 18 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet/ipfs-upload/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prod-base-mainnet-ipfs-upload-logs 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: raw-consumer 15 | 16 | 17 | commonLabels: 18 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | - pvc.yaml 8 | 9 | namePrefix: "prod-base-mainnet-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: resolver-consumer 16 | 17 | commonLabels: 18 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-mainnet/resolver/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prod-base-mainnet-resolver-logs 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia-v2/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia-v2/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: ipfs-upload-consumer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia-v2/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | namePrefix: "prod-base-sepolia-v2-" 8 | 9 | patches: 10 | - path: deployment-patch.yaml 11 | target: 12 | kind: Deployment 13 | name: raw-consumer 14 | 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia-v2/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: resolver-consumer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | - pvc.yaml 8 | 9 | namePrefix: "prod-base-sepolia-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: ipfs-upload-consumer 16 | 17 | commonLabels: 18 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia/ipfs-upload/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prod-base-sepolia-ipfs-upload-logs 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: raw-consumer 15 | 16 | 17 | commonLabels: 18 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | - pvc.yaml 8 | 9 | namePrefix: "prod-base-sepolia-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: resolver-consumer 16 | 17 | commonLabels: 18 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-base-sepolia/resolver/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prod-base-sepolia-resolver-logs 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-mainnet-v2/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-mainnet-v2/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: ipfs-upload-consumer 15 | 16 | commonLabels: 17 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-mainnet-v2/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: raw-consumer 15 | 16 | 17 | commonLabels: 18 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-mainnet-v2/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: resolver-consumer 15 | 16 | commonLabels: 17 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-mainnet/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-mainnet/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: ipfs-upload-consumer 15 | 16 | commonLabels: 17 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-mainnet/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: raw-consumer 15 | 16 | 17 | commonLabels: 18 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-mainnet/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: resolver-consumer 15 | 16 | commonLabels: 17 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-sepolia/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/decoded 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: decoded-consumer 15 | 16 | commonLabels: 17 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-sepolia/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/ipfs-upload 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: ipfs-upload-consumer 15 | 16 | commonLabels: 17 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-sepolia/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/raw 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: raw-consumer 15 | 16 | 17 | commonLabels: 18 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws/consumers/overlays/prod-linea-sepolia/resolver/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../../base/resolver 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: resolver-consumer 15 | 16 | commonLabels: 17 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws/curl.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: test-curl-pod 5 | spec: 6 | containers: 7 | - name: curl-container 8 | image: curlimages/curl:latest 9 | command: ["sh", "-c", "while true; do sleep 30; done;"] 10 | -------------------------------------------------------------------------------- /devops/aws/envio-indexer/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | commonLabels: 9 | component: envio-indexer -------------------------------------------------------------------------------- /devops/aws/envio-indexer/base/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: envio-indexer-data 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | storageClassName: gp2-immediate 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /devops/aws/envio-indexer/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | app: envio-indexer 9 | name: envio-indexer 10 | spec: 11 | ports: 12 | - name: envio-indexer 13 | port: 3000 14 | targetPort: 3000 15 | selector: 16 | app: envio-indexer -------------------------------------------------------------------------------- /devops/aws/envio-indexer/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: envio-indexer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/envio-indexer/overlays/prod-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: envio-indexer 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/envio-indexer/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: envio-indexer 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/histocrawler/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | commonLabels: 8 | component: envio-indexer -------------------------------------------------------------------------------- /devops/aws/histocrawler/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | app: histocrawler 9 | name: histocrawler 10 | spec: 11 | ports: 12 | - name: histocrawler 13 | port: 3000 14 | targetPort: 3000 15 | selector: 16 | app: histocrawler -------------------------------------------------------------------------------- /devops/aws/histocrawler/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histocrawler 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/histocrawler/overlays/prod-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histocrawler 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/histocrawler/overlays/prod-linea-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histocrawler 15 | 16 | commonLabels: 17 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws/histocrawler/overlays/prod-linea-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histocrawler 15 | 16 | commonLabels: 17 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws/histocrawler/overlays/prod-linea-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histocrawler 15 | 16 | commonLabels: 17 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws/histoflux/base/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: histoflux 5 | spec: 6 | replicas: 1 7 | selector: 8 | matchLabels: 9 | io.kompose.service: histoflux 10 | template: 11 | metadata: 12 | labels: 13 | io.kompose.service: histoflux 14 | spec: 15 | serviceAccountName: secrets-access-sa 16 | containers: 17 | - name: histoflux 18 | ports: 19 | - containerPort: 3009 20 | protocol: TCP 21 | -------------------------------------------------------------------------------- /devops/aws/histoflux/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: histoflux -------------------------------------------------------------------------------- /devops/aws/histoflux/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: histoflux 9 | name: histoflux 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3009" 14 | port: 3009 15 | targetPort: 3009 16 | selector: 17 | io.kompose.service: histoflux -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/dev-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/prod-base-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/prod-base-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: base-mainnet -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/prod-base-sepolia-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/prod-linea-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-v2-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: linea-mainnet-v2 -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/prod-linea-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-mainnet-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: linea-mainnet -------------------------------------------------------------------------------- /devops/aws/histoflux/overlays/prod-linea-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-linea-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: histoflux 15 | 16 | commonLabels: 17 | network: linea-sepolia -------------------------------------------------------------------------------- /devops/aws/ipfs/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - storage-class.yaml 6 | - deployment.yaml 7 | - pvc.yaml 8 | - service.yaml 9 | - service-account.yaml 10 | - secret-provider.yaml 11 | - configmap.yaml 12 | 13 | commonLabels: 14 | component: ipfs -------------------------------------------------------------------------------- /devops/aws/ipfs/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: ipfs-data-new 5 | labels: 6 | component: ipfs 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 20Gi 13 | storageClassName: gp2-resizable -------------------------------------------------------------------------------- /devops/aws/ipfs/secret-provider.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: secrets-store.csi.x-k8s.io/v1 2 | kind: SecretProviderClass 3 | metadata: 4 | name: ipfs-aws-secrets 5 | namespace: default 6 | spec: 7 | provider: aws 8 | parameters: 9 | objects: | 10 | - objectName: "new-be-secrets" 11 | objectType: "secretsmanager" 12 | objectVersionLabel: "AWSCURRENT" 13 | jmesPath: 14 | - path: "PINATA_API_JWT" 15 | objectAlias: "PINATA_API_JWT" 16 | secretObjects: 17 | - secretName: "ipfs-aws-secrets" # The name of the Kubernetes secret to create 18 | type: Opaque 19 | data: 20 | - objectName: "PINATA_API_JWT" 21 | key: "PINATA_API_JWT" 22 | -------------------------------------------------------------------------------- /devops/aws/ipfs/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: secrets-access-sa 5 | annotations: 6 | eks.amazonaws.com/role-arn: arn:aws:iam::064662847354:role/aws-secrets -------------------------------------------------------------------------------- /devops/aws/ipfs/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | app: ipfs 9 | name: ipfs 10 | spec: 11 | type: LoadBalancer 12 | ports: 13 | - name: "4001" 14 | port: 4001 15 | targetPort: 4001 16 | - name: "4002" 17 | port: 4002 18 | protocol: UDP 19 | targetPort: 4002 20 | - name: "4003" 21 | port: 4003 22 | targetPort: 4003 23 | - name: "5001" 24 | port: 5001 25 | targetPort: 5001 26 | - name: "8080" 27 | port: 8080 28 | targetPort: 8080 29 | selector: 30 | app: ipfs 31 | -------------------------------------------------------------------------------- /devops/aws/ipfs/storage-class.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: storage.k8s.io/v1 2 | kind: StorageClass 3 | metadata: 4 | name: gp2-resizable 5 | provisioner: kubernetes.io/aws-ebs 6 | parameters: 7 | type: gp2 8 | allowVolumeExpansion: true # This is the key setting 9 | reclaimPolicy: Retain 10 | volumeBindingMode: WaitForFirstConsumer -------------------------------------------------------------------------------- /devops/aws/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - api 6 | - consumers/decoded 7 | - consumers/ipfs-upload 8 | - consumers/raw 9 | - consumers/resolver-consumer 10 | - ipfs 11 | - monitoring/log-cleanup 12 | - monitoring/prometheus 13 | - rbac/secrets-store-csi-driver-rbac.yaml 14 | - services/graphql 15 | - services/safe-content-api 16 | - substreams-sink 17 | 18 | commonLabels: 19 | app: intuition -------------------------------------------------------------------------------- /devops/aws/monitoring/log-cleanup/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | 7 | commonLabels: 8 | component: log-cleanup -------------------------------------------------------------------------------- /devops/aws/monitoring/prometheus/cluster-rolebinding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | name: secrets-access-cluster-rolebinding 5 | subjects: 6 | - kind: ServiceAccount 7 | name: secrets-access-sa 8 | namespace: default 9 | roleRef: 10 | kind: ClusterRole 11 | name: secrets-store-csi-driver-cluster-role 12 | apiGroup: rbac.authorization.k8s.io 13 | -------------------------------------------------------------------------------- /devops/aws/monitoring/prometheus/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - cluster-rolebinding.yaml 6 | - configmap.yaml 7 | - pvc.yaml 8 | - deployment.yaml 9 | - service.yaml 10 | commonLabels: 11 | component: prometheus -------------------------------------------------------------------------------- /devops/aws/monitoring/prometheus/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: prometheus-data 5 | spec: 6 | storageClassName: gp2 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /devops/aws/monitoring/prometheus/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: prometheus 5 | spec: 6 | type: LoadBalancer 7 | ports: 8 | - port: 9090 9 | targetPort: 9090 10 | protocol: TCP 11 | selector: 12 | app: prometheus 13 | 14 | -------------------------------------------------------------------------------- /devops/aws/rbac/cluster-role-binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | name: secrets-store-csi-driver-cluster-rolebinding 5 | subjects: 6 | - kind: ServiceAccount 7 | name: secrets-store-csi-driver 8 | namespace: kube-system 9 | roleRef: 10 | kind: ClusterRole 11 | name: secrets-store-csi-driver-cluster-role 12 | apiGroup: rbac.authorization.k8s.io -------------------------------------------------------------------------------- /devops/aws/rpc-proxy/base/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: rpc-proxy 5 | spec: 6 | replicas: 1 7 | selector: 8 | matchLabels: 9 | io.kompose.service: rpc-proxy 10 | template: 11 | metadata: 12 | labels: 13 | io.kompose.service: rpc-proxy 14 | spec: 15 | serviceAccountName: secrets-access-sa 16 | containers: 17 | - name: rpc-proxy 18 | ports: 19 | - containerPort: 3008 20 | protocol: TCP 21 | 22 | -------------------------------------------------------------------------------- /devops/aws/rpc-proxy/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: rpc-proxy -------------------------------------------------------------------------------- /devops/aws/rpc-proxy/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: rpc-proxy 9 | name: rpc-proxy 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3008" 14 | port: 3008 15 | targetPort: 3008 16 | selector: 17 | io.kompose.service: rpc-proxy 18 | -------------------------------------------------------------------------------- /devops/aws/rpc-proxy/overlays/dev/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: rpc-proxy 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/rpc-proxy/overlays/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: rpc-proxy 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/safe-content-api/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: safe-content 5 | spec: 6 | replicas: 2 7 | selector: 8 | matchLabels: 9 | io.kompose.service: safe-content 10 | template: 11 | metadata: 12 | labels: 13 | io.kompose.service: safe-content 14 | spec: 15 | serviceAccountName: secrets-access-sa 16 | containers: 17 | - name: safe-content 18 | image: steelcityamir/safe-content-ai:latest 19 | imagePullPolicy: Always 20 | ports: 21 | - containerPort: 8000 22 | protocol: TCP 23 | 24 | 25 | -------------------------------------------------------------------------------- /devops/aws/safe-content-api/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | 8 | commonLabels: 9 | component: safe-content-api -------------------------------------------------------------------------------- /devops/aws/safe-content-api/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: safe-content 9 | name: safe-content 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "8000" 14 | port: 8000 15 | targetPort: 8000 16 | selector: 17 | io.kompose.service: safe-content 18 | -------------------------------------------------------------------------------- /devops/aws/scripts/delete_consumer_deployments.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xIntuition/intuition-rs/a6265a38af1644734774b16fc2c1f87bf7336c86/devops/aws/scripts/delete_consumer_deployments.sh -------------------------------------------------------------------------------- /devops/aws/scripts/delete_graphql_engine.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "Deleting graphql-engine deployment..." 4 | kubectl delete deployment graphql-engine 5 | 6 | echo "Deleting hasura-migrations job..." 7 | kubectl delete job hasura-migrations 8 | 9 | echo "Done!" 10 | -------------------------------------------------------------------------------- /devops/aws/scripts/delete_secret_providers.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "Deleting secret provider class..." 4 | kubectl delete secretproviderclass hasura-aws-secrets -n default 5 | kubectl delete secretproviderclass substreams-aws-secrets -n default 6 | kubectl delete secretproviderclass resolver-aws-secrets -n default 7 | kubectl delete secretproviderclass ipfs-upload-aws-secrets -n default 8 | kubectl delete secretproviderclass raw-aws-secrets -n default 9 | kubectl delete secretproviderclass decoded-aws-secrets -n default 10 | 11 | echo "Done!" 12 | -------------------------------------------------------------------------------- /devops/aws/scripts/delete_substreams_sink.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "Deleting substreams-sink deployment..." 4 | kubectl delete deployment substreams-sink 5 | kubectl delete pvc substreams-data 6 | 7 | echo "Done!" 8 | -------------------------------------------------------------------------------- /devops/aws/services/graphql/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - service.yaml 6 | - deployment.yaml 7 | - migrations-deployment.yaml 8 | # - migrations-pod.yaml 9 | commonLabels: 10 | component: graphql -------------------------------------------------------------------------------- /devops/aws/services/graphql/base/migrations-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: hasura-migrations 5 | spec: 6 | template: 7 | spec: 8 | serviceAccountName: secrets-access-sa 9 | initContainers: 10 | - name: wait 11 | image: busybox 12 | command: ['sh', '-c', 'sleep 5'] 13 | containers: 14 | - name: hasura-migrations 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /devops/aws/services/graphql/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: graphql-engine 5 | labels: 6 | io.kompose.service: graphql-engine 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 8080 11 | targetPort: 8080 12 | protocol: TCP 13 | name: http 14 | selector: 15 | io.kompose.service: graphql-engine -------------------------------------------------------------------------------- /devops/aws/services/graphql/overlays/dev-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "dev-base-sepolia-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: base-sepolia 24 | io.kompose.service: dev-base-sepolia-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws/services/graphql/overlays/prod-base-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-base-mainnet-v2-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: base-mainnet 24 | io.kompose.service: prod-base-mainnet-v2-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws/services/graphql/overlays/prod-base-sepolia-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-base-sepolia-v2-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: base-mainnet 24 | io.kompose.service: prod-base-sepolia-v2-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws/services/graphql/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base # Adjusted to point to the base directory 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-base-sepolia-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: base-sepolia 24 | io.kompose.service: prod-base-sepolia-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws/services/graphql/overlays/prod-linea-mainnet-v2/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-linea-mainnet-v2-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: linea-mainnet-v2 24 | io.kompose.service: prod-linea-mainnet-v2-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws/services/graphql/overlays/prod-linea-mainnet/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-linea-mainnet-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: linea-mainnet 24 | io.kompose.service: prod-linea-mainnet-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws/services/graphql/overlays/prod-linea-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | - indexer-migrations.yaml 8 | 9 | namePrefix: "prod-linea-sepolia-" 10 | 11 | patches: 12 | - path: deployment-patch.yaml 13 | target: 14 | kind: Deployment 15 | name: graphql-engine 16 | 17 | - path: migrations-patch.yaml 18 | target: 19 | kind: Job 20 | name: hasura-migrations 21 | 22 | commonLabels: 23 | network: linea-sepolia 24 | io.kompose.service: prod-linea-sepolia-graphql-engine 25 | 26 | -------------------------------------------------------------------------------- /devops/aws/substreams-sink/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | commonLabels: 9 | component: substreams-sink -------------------------------------------------------------------------------- /devops/aws/substreams-sink/base/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: substreams-data 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | storageClassName: gp2-immediate 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /devops/aws/substreams-sink/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: substreams-sink 9 | name: substreams-sink 10 | spec: 11 | ports: 12 | - name: substreams-sink 13 | port: 3000 14 | targetPort: 3000 15 | selector: 16 | io.kompose.service: substreams-sink 17 | -------------------------------------------------------------------------------- /devops/aws/substreams-sink/overlays/dev-base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "dev-base-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: substreams-sink 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/aws/substreams-sink/overlays/prod-base-sepolia/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - secret-provider.yaml 7 | 8 | namePrefix: "prod-base-sepolia-" 9 | 10 | patches: 11 | - path: deployment-patch.yaml 12 | target: 13 | kind: Deployment 14 | name: substreams-sink 15 | 16 | commonLabels: 17 | network: base-sepolia -------------------------------------------------------------------------------- /devops/kubernetes/argocd/namespace.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: argocd 5 | -------------------------------------------------------------------------------- /devops/kubernetes/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | global: 2 | domain: argocd.intuition.sh 3 | 4 | configs: 5 | params: 6 | server.insecure: true 7 | 8 | server: 9 | ingress: 10 | enabled: true 11 | ingressClassName: alb 12 | annotations: 13 | external-dns.alpha.kubernetes.io/hostname: argocd.intuition.sh 14 | alb.ingress.kubernetes.io/scheme: "internet-facing" 15 | alb.ingress.kubernetes.io/target-type: "ip" 16 | alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]' 17 | -------------------------------------------------------------------------------- /devops/kubernetes/external-dns/policy.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": "2012-10-17", 3 | "Statement": [ 4 | { 5 | "Effect": "Allow", 6 | "Action": [ 7 | "route53:ChangeResourceRecordSets" 8 | ], 9 | "Resource": [ 10 | "arn:aws:route53:::hostedzone/*" 11 | ] 12 | }, 13 | { 14 | "Effect": "Allow", 15 | "Action": [ 16 | "route53:ListHostedZones", 17 | "route53:ListResourceRecordSets", 18 | "route53:ListTagsForResource" 19 | ], 20 | "Resource": [ 21 | "*" 22 | ] 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /devops/kubernetes/external-dns/values.yaml: -------------------------------------------------------------------------------- 1 | provider: 2 | name: aws 3 | env: 4 | - name: AWS_DEFAULT_REGION 5 | value: us-west-2 6 | -------------------------------------------------------------------------------- /devops/kubernetes/secrets-store-csi-driver/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts 4 | helm install csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver --namespace kube-system 5 | helm repo add aws-secrets-manager https://aws.github.io/secrets-store-csi-driver-provider-aws 6 | helm install -n kube-system secrets-provider-aws aws-secrets-manager/secrets-store-csi-driver-provider-aws 7 | -------------------------------------------------------------------------------- /devops/kubernetes/secrets-store-csi-driver/storage-classes.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: storage.k8s.io/v1 2 | kind: StorageClass 3 | metadata: 4 | name: gp2-resizable 5 | provisioner: kubernetes.io/aws-ebs 6 | parameters: 7 | type: gp2 8 | allowVolumeExpansion: true # This is the key setting 9 | reclaimPolicy: Retain 10 | volumeBindingMode: WaitForFirstConsumer 11 | --- 12 | apiVersion: storage.k8s.io/v1 13 | kind: StorageClass 14 | metadata: 15 | name: gp2-immediate 16 | parameters: 17 | encrypted: "true" 18 | type: gp2 19 | provisioner: ebs.csi.aws.com 20 | reclaimPolicy: Delete 21 | volumeBindingMode: Immediate 22 | -------------------------------------------------------------------------------- /devops/minikube/api/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | 8 | commonLabels: 9 | component: raw-consumer -------------------------------------------------------------------------------- /devops/minikube/api/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: api 9 | name: api 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "3000" 14 | port: 3000 15 | targetPort: 3000 16 | selector: 17 | io.kompose.service: api 18 | -------------------------------------------------------------------------------- /devops/minikube/base/namespaces.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: intuition -------------------------------------------------------------------------------- /devops/minikube/base/storage/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | 6 | commonLabels: 7 | type: storage -------------------------------------------------------------------------------- /devops/minikube/consumers/decoded/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | 9 | commonLabels: 10 | component: decoded-consumer -------------------------------------------------------------------------------- /devops/minikube/consumers/decoded/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | labels: 5 | io.kompose.service: decoded-logs 6 | name: decoded-logs 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 1Gi 13 | -------------------------------------------------------------------------------- /devops/minikube/consumers/decoded/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | prometheus.io/scrape: "true" 8 | prometheus.io/port: "3002" 9 | prometheus.io/path: "/metrics" 10 | labels: 11 | io.kompose.service: decoded-consumer 12 | name: decoded-consumer 13 | spec: 14 | type: ClusterIP 15 | ports: 16 | - name: "3002" 17 | port: 3002 18 | targetPort: 3002 19 | selector: 20 | app: decoded-consumer 21 | -------------------------------------------------------------------------------- /devops/minikube/consumers/ipfs-upload/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | 9 | commonLabels: 10 | component: ipfs-consumer -------------------------------------------------------------------------------- /devops/minikube/consumers/ipfs-upload/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | labels: 5 | io.kompose.service: ipfs-upload-logs 6 | name: ipfs-upload-logs 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 1Gi 13 | -------------------------------------------------------------------------------- /devops/minikube/consumers/ipfs-upload/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: ipfs-upload-consumer 9 | name: ipfs-upload-consumer 10 | spec: 11 | ports: 12 | - name: "8002" 13 | port: 8002 14 | targetPort: 8002 15 | selector: 16 | io.kompose.service: ipfs-upload-consumer 17 | -------------------------------------------------------------------------------- /devops/minikube/consumers/raw/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | 9 | commonLabels: 10 | component: raw-consumer -------------------------------------------------------------------------------- /devops/minikube/consumers/raw/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | labels: 5 | io.kompose.service: raw-logs 6 | name: raw-logs 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 1Gi 13 | -------------------------------------------------------------------------------- /devops/minikube/consumers/raw/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: raw-consumer 9 | name: raw-consumer 10 | spec: 11 | ports: 12 | - name: "8003" 13 | port: 8003 14 | targetPort: 8003 15 | selector: 16 | io.kompose.service: raw-consumer 17 | -------------------------------------------------------------------------------- /devops/minikube/consumers/resolver-consumer/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | 9 | commonLabels: 10 | component: resolver-consumer -------------------------------------------------------------------------------- /devops/minikube/consumers/resolver-consumer/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | labels: 5 | io.kompose.service: resolver-logs 6 | name: resolver-logs 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 1Gi 13 | -------------------------------------------------------------------------------- /devops/minikube/consumers/resolver-consumer/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: resolver-consumer 9 | name: resolver-consumer 10 | spec: 11 | ports: 12 | - name: "8001" 13 | port: 8001 14 | targetPort: 8001 15 | selector: 16 | io.kompose.service: resolver-consumer 17 | -------------------------------------------------------------------------------- /devops/minikube/hasura-migrations/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml -------------------------------------------------------------------------------- /devops/minikube/hasura-migrations/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: hasura-migrations 5 | spec: 6 | ports: 7 | - port: 8080 8 | targetPort: 8080 9 | protocol: TCP 10 | selector: 11 | app: hasura-migrations -------------------------------------------------------------------------------- /devops/minikube/ipfs/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - configmap.yaml 6 | - deployment.yaml 7 | - pvc.yaml 8 | - service.yaml 9 | 10 | commonLabels: 11 | component: ipfs -------------------------------------------------------------------------------- /devops/minikube/ipfs/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | labels: 5 | io.kompose.service: ipfs-data 6 | name: ipfs-data 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 1Gi -------------------------------------------------------------------------------- /devops/minikube/ipfs/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | app: ipfs 9 | name: ipfs 10 | spec: 11 | type: LoadBalancer 12 | ports: 13 | - name: "4001" 14 | port: 4001 15 | targetPort: 4001 16 | - name: "4002" 17 | port: 4002 18 | protocol: UDP 19 | targetPort: 4002 20 | - name: "4003" 21 | port: 4003 22 | targetPort: 4003 23 | - name: "5001" 24 | port: 5001 25 | targetPort: 5001 26 | - name: "8080" 27 | port: 8080 28 | targetPort: 8080 29 | selector: 30 | app: ipfs 31 | -------------------------------------------------------------------------------- /devops/minikube/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - api 6 | - base/namespaces.yaml 7 | - consumers/decoded 8 | - consumers/ipfs-upload 9 | - consumers/raw 10 | - consumers/resolver-consumer 11 | - ipfs 12 | - monitoring/log-cleanup 13 | - monitoring/prometheus 14 | - services/database 15 | - services/graphql 16 | - services/safe-content 17 | - services/sqs 18 | - substreams-sink 19 | 20 | commonLabels: 21 | app: intuition -------------------------------------------------------------------------------- /devops/minikube/monitoring/log-cleanup/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | 7 | commonLabels: 8 | component: log-cleanup -------------------------------------------------------------------------------- /devops/minikube/monitoring/prometheus/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - configmap.yaml 6 | - deployment.yaml 7 | - service.yaml 8 | 9 | commonLabels: 10 | component: prometheus -------------------------------------------------------------------------------- /devops/minikube/monitoring/prometheus/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: prometheus 9 | name: prometheus 10 | spec: 11 | type: ClusterIP 12 | ports: 13 | - name: "9090" 14 | port: 9090 15 | targetPort: 9090 16 | selector: 17 | io.kompose.service: prometheus 18 | -------------------------------------------------------------------------------- /devops/minikube/services/database/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - pvc.yaml 7 | - service.yaml 8 | 9 | commonLabels: 10 | component: database -------------------------------------------------------------------------------- /devops/minikube/services/database/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | labels: 5 | io.kompose.service: database-data 6 | name: database-data 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 5Gi 13 | -------------------------------------------------------------------------------- /devops/minikube/services/database/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: database 9 | name: database 10 | spec: 11 | type: NodePort 12 | ports: 13 | - name: "postgres" 14 | port: 5435 15 | targetPort: 5435 16 | nodePort: 30435 17 | selector: 18 | io.kompose.service: database 19 | -------------------------------------------------------------------------------- /devops/minikube/services/graphql/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - migrations-deployment.yaml 7 | - migrations-pod.yaml 8 | - service.yaml 9 | 10 | commonLabels: 11 | component: graphql -------------------------------------------------------------------------------- /devops/minikube/services/graphql/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: graphql-engine 5 | labels: 6 | io.kompose.service: graphql-engine 7 | spec: 8 | type: ClusterIP # This is where 'type' should go 9 | ports: 10 | - port: 8080 11 | targetPort: 8080 12 | protocol: TCP 13 | selector: 14 | io.kompose.service: graphql-engine -------------------------------------------------------------------------------- /devops/minikube/services/safe-content/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: safe-content 5 | labels: 6 | app: safe-content 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | app: safe-content 12 | template: 13 | metadata: 14 | labels: 15 | app: safe-content 16 | spec: 17 | containers: 18 | - name: safe-content 19 | image: steelcityamir/safe-content-ai:latest 20 | ports: 21 | - containerPort: 8000 22 | resources: 23 | requests: 24 | cpu: "1000m" 25 | memory: "128Mi" 26 | limits: 27 | cpu: "2000m" 28 | memory: "1Gi" -------------------------------------------------------------------------------- /devops/minikube/services/safe-content/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | 8 | commonLabels: 9 | component: safe-content -------------------------------------------------------------------------------- /devops/minikube/services/safe-content/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: safe-content 5 | spec: 6 | selector: 7 | app: safe-content 8 | ports: 9 | - port: 8000 10 | targetPort: 8000 11 | type: ClusterIP 12 | -------------------------------------------------------------------------------- /devops/minikube/services/sqs/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | - configmap.yaml 8 | 9 | commonLabels: 10 | component: sqs -------------------------------------------------------------------------------- /devops/minikube/services/sqs/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: sqs 9 | name: sqs 10 | spec: 11 | type: NodePort 12 | ports: 13 | - name: "4566" 14 | port: 4566 15 | targetPort: 4566 16 | - name: "4571" 17 | port: 4571 18 | targetPort: 4571 19 | selector: 20 | io.kompose.service: sqs 21 | -------------------------------------------------------------------------------- /devops/minikube/substreams-sink/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - deployment.yaml 6 | - service.yaml 7 | - volume.yaml 8 | 9 | commonLabels: 10 | component: substreams-sink -------------------------------------------------------------------------------- /devops/minikube/substreams-sink/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert -f docker-compose-kompose.yml 6 | kompose.version: 1.34.0 (HEAD) 7 | labels: 8 | io.kompose.service: substreams-sink 9 | name: substreams-sink 10 | spec: 11 | ports: 12 | - name: substreams-sink 13 | port: 3000 14 | targetPort: 3000 15 | selector: 16 | io.kompose.service: substreams-sink 17 | -------------------------------------------------------------------------------- /devops/minikube/substreams-sink/volume.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | labels: 5 | io.kompose.service: substreams-data 6 | name: substreams-data 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 100Mi 13 | -------------------------------------------------------------------------------- /devops/terraform/aws/prod/eks/config.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | backend "s3" { 3 | bucket = "intuition-terraform-state" 4 | key = "terraform/state/prod/eks-vpc/terraform.state" 5 | region = "us-west-2" 6 | encrypt = true 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /devops/terraform/aws/prod/eks/crossplane-policy.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": "2012-10-17", 3 | "Statement": [ 4 | { 5 | "Effect": "Allow", 6 | "Action": [ 7 | "rds:*", 8 | "iam:*", 9 | "sqs:*" 10 | ], 11 | "Resource": "*" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /envio-indexer/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "envio-indexer" 3 | version = "0.1.0" 4 | edition = "2024" 5 | 6 | [dependencies] 7 | anyhow.workspace = true 8 | aws-config.workspace = true 9 | aws-sdk-sqs.workspace = true 10 | aws-smithy-runtime-api.workspace = true 11 | clap.workspace = true 12 | dotenvy.workspace = true 13 | env_logger.workspace = true 14 | envy.workspace = true 15 | hypersync-client.workspace = true 16 | log.workspace = true 17 | models = { path = "../models" } 18 | serde.workspace = true 19 | serde_json.workspace = true 20 | shared-utils = { path = "../shared-utils" } 21 | sqlx.workspace = true 22 | thiserror.workspace = true 23 | tokio.workspace = true 24 | url.workspace = true -------------------------------------------------------------------------------- /envio-indexer/README.md: -------------------------------------------------------------------------------- 1 | # Envio Indexer 2 | 3 | This crate is used to index the events of our contracts using Envio. Currently, it is only used to index the base-sepolia events of our contract, but we are working on adding more networks. 4 | 5 | You need to export your hypersync token in the `HYPERSYNC_TOKEN` environment variable. 6 | You can create one here: https://envio.dev/app/api-tokens 7 | 8 | ```bash 9 | export HYPERSYNC_TOKEN=your_token 10 | ``` 11 | 12 | Run with 13 | 14 | ```bash 15 | cargo run -- --network base-sepolia 16 | ``` -------------------------------------------------------------------------------- /envio-indexer/src/main.rs: -------------------------------------------------------------------------------- 1 | use app::App; 2 | use clap::Parser; 3 | use error::IndexerError; 4 | use log::info; 5 | use types::{Network, Output}; 6 | 7 | mod app; 8 | mod error; 9 | mod types; 10 | 11 | /// The CLI arguments 12 | #[derive(Parser)] 13 | pub struct Args { 14 | /// The network to index 15 | #[arg(short, long)] 16 | network: Network, 17 | /// The output to use 18 | #[arg(short, long)] 19 | output: Output, 20 | } 21 | 22 | #[tokio::main] 23 | async fn main() -> Result<(), IndexerError> { 24 | let app = App::init().await?; 25 | info!("Starting indexer"); 26 | app.start_indexer().await 27 | } 28 | -------------------------------------------------------------------------------- /geth/init-script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | geth init /config/genesis.json 3 | geth "$@" 4 | -------------------------------------------------------------------------------- /geth/keystore.json: -------------------------------------------------------------------------------- 1 | { 2 | "address": "07baa707f61c89f6eb33c8cb948c483c9b387084", 3 | "crypto": { 4 | "cipher": "aes-128-ctr", 5 | "ciphertext": "f6a646d74051d5a8b4cc44a499eef5224b2f0c1286c720b5bfcc6b79983fffbc", 6 | "cipherparams": { "iv": "11448972109728a357edc7b43033a18d" }, 7 | "kdf": "scrypt", 8 | "kdfparams": { 9 | "dklen": 32, 10 | "n": 262144, 11 | "p": 1, 12 | "r": 8, 13 | "salt": "b7a81794954b31a145a39976015f79575b5201aafe2deffc298dd70f31f8ceb0" 14 | }, 15 | "mac": "cba6226eb41e6022f29deea52ea2c550b04fe8d94223459b8a0b0b8cefd6ec52" 16 | }, 17 | "id": "80a97af3-2026-4d82-bc64-83ca28e2ab0c", 18 | "version": 3 19 | } 20 | -------------------------------------------------------------------------------- /geth/password.txt: -------------------------------------------------------------------------------- 1 | qwerty 2 | -------------------------------------------------------------------------------- /hasura/Dockerfile: -------------------------------------------------------------------------------- 1 | # Use Ubuntu as the base image 2 | FROM ubuntu:latest 3 | 4 | # Install necessary packages 5 | RUN apt-get update && apt-get install -y \ 6 | curl \ 7 | bash \ 8 | git \ 9 | && rm -rf /var/lib/apt/lists/* 10 | 11 | # Copy the hasura folder into the container 12 | COPY hasura /app/hasura 13 | 14 | # Set the working directory 15 | WORKDIR /app 16 | 17 | # Download and install hasura 18 | RUN curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash 19 | 20 | # Execute the hasura deploy command 21 | CMD ["hasura", "deploy", "--project", "hasura"] 22 | -------------------------------------------------------------------------------- /hasura/config.yaml: -------------------------------------------------------------------------------- 1 | version: 3 2 | endpoint: http://localhost:8080 3 | admin_secret: myadminsecretkey 4 | metadata_directory: metadata 5 | actions: 6 | kind: synchronous 7 | handler_webhook_baseurl: http://localhost:3000 8 | -------------------------------------------------------------------------------- /hasura/metadata/allow_list.yaml: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /hasura/metadata/api_limits.yaml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /hasura/metadata/backend_configs.yaml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /hasura/metadata/cron_triggers.yaml: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /hasura/metadata/databases/cache/tables/cached_images_cached_image.yaml: -------------------------------------------------------------------------------- 1 | table: 2 | name: cached_image 3 | schema: cached_images 4 | select_permissions: 5 | - role: anonymous 6 | permission: 7 | columns: 8 | - safe 9 | - score 10 | - model 11 | - original_url 12 | - url 13 | - created_at 14 | filter: {} 15 | limit: 250 16 | comment: "" 17 | -------------------------------------------------------------------------------- /hasura/metadata/databases/cache/tables/tables.yaml: -------------------------------------------------------------------------------- 1 | - "!include cached_images_cached_image.yaml" 2 | -------------------------------------------------------------------------------- /hasura/metadata/databases/databases.yaml: -------------------------------------------------------------------------------- 1 | - name: cache 2 | kind: postgres 3 | configuration: 4 | connection_info: 5 | database_url: 6 | from_env: HASURA_GRAPHQL_CACHE_DATABASE_URL 7 | isolation_level: read-committed 8 | use_prepared_statements: false 9 | tables: "!include cache/tables/tables.yaml" 10 | - name: intuition 11 | kind: postgres 12 | configuration: 13 | connection_info: 14 | database_url: 15 | from_env: HASURA_GRAPHQL_METADATA_DATABASE_URL 16 | isolation_level: read-committed 17 | use_prepared_statements: false 18 | tables: "!include intuition/tables/tables.yaml" 19 | functions: "!include intuition/functions/functions.yaml" 20 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/functions/functions.yaml: -------------------------------------------------------------------------------- 1 | - "!include public_accounts_that_claim_about_account.yaml" 2 | - "!include public_claims_from_following.yaml" 3 | - "!include public_following.yaml" 4 | - "!include public_signals_from_following.yaml" 5 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/functions/public_accounts_that_claim_about_account.yaml: -------------------------------------------------------------------------------- 1 | function: 2 | name: accounts_that_claim_about_account 3 | schema: public 4 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/functions/public_claims_from_following.yaml: -------------------------------------------------------------------------------- 1 | function: 2 | name: claims_from_following 3 | schema: public 4 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/functions/public_following.yaml: -------------------------------------------------------------------------------- 1 | function: 2 | name: following 3 | schema: public 4 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/functions/public_signals_from_following.yaml: -------------------------------------------------------------------------------- 1 | function: 2 | name: signals_from_following 3 | schema: public 4 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/tables/public_byte_object.yaml: -------------------------------------------------------------------------------- 1 | table: 2 | name: byte_object 3 | schema: public 4 | select_permissions: 5 | - role: anonymous 6 | permission: 7 | columns: 8 | - data 9 | - id 10 | filter: {} 11 | limit: 250 12 | allow_aggregations: true 13 | comment: "" 14 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/tables/public_cached_image.yaml: -------------------------------------------------------------------------------- 1 | table: 2 | name: cached_image 3 | schema: public 4 | configuration: 5 | column_config: {} 6 | custom_column_names: {} 7 | custom_name: cached_images 8 | custom_root_fields: 9 | select_by_pk: cached_image 10 | query_configuration: 11 | default_limit: 250 12 | max_limit: 250 13 | select_permissions: 14 | - role: anonymous 15 | permission: 16 | columns: 17 | - safe 18 | - score 19 | - model 20 | - original_url 21 | - url 22 | - created_at 23 | filter: {} 24 | limit: 250 25 | comment: "" 26 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/tables/public_caip10.yaml: -------------------------------------------------------------------------------- 1 | table: 2 | name: caip10 3 | schema: public 4 | configuration: 5 | column_config: {} 6 | custom_column_names: {} 7 | custom_root_fields: 8 | select: caip10s 9 | select_by_pk: caip10 10 | query_configuration: 11 | default_limit: 250 12 | max_limit: 250 13 | select_permissions: 14 | - role: anonymous 15 | permission: 16 | columns: 17 | - chain_id 18 | - id 19 | - account_address 20 | - namespace 21 | filter: {} 22 | limit: 250 23 | allow_aggregations: true 24 | comment: "" 25 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/tables/public_chainlink_price.yaml: -------------------------------------------------------------------------------- 1 | table: 2 | name: chainlink_price 3 | schema: public 4 | configuration: 5 | column_config: {} 6 | custom_column_names: {} 7 | custom_name: chainlink_prices 8 | custom_root_fields: 9 | select_by_pk: chainlink_price 10 | select_permissions: 11 | - role: anonymous 12 | permission: 13 | columns: 14 | - usd 15 | - id 16 | filter: {} 17 | limit: 250 18 | comment: "" 19 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/tables/public_json_object.yaml: -------------------------------------------------------------------------------- 1 | table: 2 | name: json_object 3 | schema: public 4 | configuration: 5 | column_config: {} 6 | custom_column_names: {} 7 | custom_name: json_objects 8 | custom_root_fields: 9 | select_by_pk: json_object 10 | query_configuration: 11 | default_limit: 250 12 | max_limit: 250 13 | select_permissions: 14 | - role: anonymous 15 | permission: 16 | columns: 17 | - data 18 | - id 19 | filter: {} 20 | limit: 250 21 | allow_aggregations: true 22 | comment: "" 23 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/tables/public_stats_hour.yaml: -------------------------------------------------------------------------------- 1 | table: 2 | name: stats_hour 3 | schema: public 4 | configuration: 5 | column_config: {} 6 | custom_column_names: {} 7 | custom_name: statHours 8 | custom_root_fields: 9 | select_by_pk: statHour 10 | -------------------------------------------------------------------------------- /hasura/metadata/databases/intuition/tables/public_text_object.yaml: -------------------------------------------------------------------------------- 1 | table: 2 | name: text_object 3 | schema: public 4 | configuration: 5 | column_config: {} 6 | custom_column_names: {} 7 | custom_name: text_objects 8 | custom_root_fields: 9 | select_by_pk: text_object 10 | query_configuration: 11 | default_limit: 250 12 | max_limit: 250 13 | select_permissions: 14 | - role: anonymous 15 | permission: 16 | columns: 17 | - id 18 | - data 19 | filter: {} 20 | allow_aggregations: true 21 | comment: "" 22 | -------------------------------------------------------------------------------- /hasura/metadata/graphql_schema_introspection.yaml: -------------------------------------------------------------------------------- 1 | disabled_for_roles: [] 2 | -------------------------------------------------------------------------------- /hasura/metadata/inherited_roles.yaml: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /hasura/metadata/metrics_config.yaml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /hasura/metadata/network.yaml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /hasura/metadata/opentelemetry.yaml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /hasura/metadata/query_collections.yaml: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /hasura/metadata/remote_schemas.yaml: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /hasura/metadata/rest_endpoints.yaml: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /hasura/metadata/version.yaml: -------------------------------------------------------------------------------- 1 | version: 3 2 | -------------------------------------------------------------------------------- /hasura/migrations/cache/1738779627_init/down.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xIntuition/intuition-rs/a6265a38af1644734774b16fc2c1f87bf7336c86/hasura/migrations/cache/1738779627_init/down.sql -------------------------------------------------------------------------------- /hasura/migrations/cache/1738779627_init/up.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xIntuition/intuition-rs/a6265a38af1644734774b16fc2c1f87bf7336c86/hasura/migrations/cache/1738779627_init/up.sql -------------------------------------------------------------------------------- /hasura/migrations/intuition/1731340422862_stats_hour/down.sql: -------------------------------------------------------------------------------- 1 | -- Drop functions and triggers in reverse order 2 | DROP FUNCTION IF EXISTS signals_from_following(text); 3 | DROP FUNCTION IF EXISTS claims_from_following(text); 4 | DROP FUNCTION IF EXISTS following(text); 5 | DROP FUNCTION IF EXISTS accounts_that_claim_about_account(text, numeric, numeric); 6 | 7 | DROP TRIGGER IF EXISTS trigger_on_stats_update ON stats; 8 | DROP FUNCTION IF EXISTS trigger_update_stats_hour(); 9 | DROP FUNCTION IF EXISTS update_stats_hour_if_needed(); 10 | 11 | DROP TABLE IF EXISTS stats_hour_tracker; 12 | DROP FUNCTION IF EXISTS update_stats_hour(); -------------------------------------------------------------------------------- /hasura/migrations/intuition/1731344677101_functions/down.sql: -------------------------------------------------------------------------------- 1 | DROP FUNCTION IF EXISTS signals_from_following; 2 | DROP FUNCTION IF EXISTS claims_from_following; 3 | DROP FUNCTION IF EXISTS following; 4 | DROP FUNCTION IF EXISTS accounts_that_claim_about_account; 5 | -------------------------------------------------------------------------------- /hasura/migrations/intuition/1733405408001_updating_thing_description_index/down.sql: -------------------------------------------------------------------------------- 1 | DROP INDEX IF EXISTS idx_thing_description; -------------------------------------------------------------------------------- /hasura/migrations/intuition/1733405408001_updating_thing_description_index/up.sql: -------------------------------------------------------------------------------- 1 | DROP INDEX IF EXISTS idx_thing_description; 2 | CREATE INDEX idx_thing_description_hash ON thing USING hash (description); 3 | -------------------------------------------------------------------------------- /hasura/migrations/intuition/1733405478010_updating_thing_index_full_text/down.sql: -------------------------------------------------------------------------------- 1 | DROP INDEX IF EXISTS idx_thing_description; -------------------------------------------------------------------------------- /hasura/migrations/intuition/1733405478010_updating_thing_index_full_text/up.sql: -------------------------------------------------------------------------------- 1 | DROP INDEX IF EXISTS idx_thing_description; 2 | -- First, ensure the pg_trgm extension is enabled 3 | CREATE EXTENSION IF NOT EXISTS pg_trgm; 4 | 5 | -- Then, create a GIN index on the description column 6 | CREATE INDEX idx_thing_description_gin ON thing USING gin (description gin_trgm_ops); 7 | -------------------------------------------------------------------------------- /hasura/migrations/intuition/1733405637001_updating_description_index/down.sql: -------------------------------------------------------------------------------- 1 | DROP INDEX IF EXISTS idx_person_description; 2 | DROP INDEX IF EXISTS idx_organization_description; 3 | -------------------------------------------------------------------------------- /hasura/migrations/intuition/1733405637001_updating_description_index/up.sql: -------------------------------------------------------------------------------- 1 | DROP INDEX IF EXISTS idx_person_description; 2 | DROP INDEX IF EXISTS idx_organization_description; 3 | 4 | -- First, ensure the pg_trgm extension is enabled 5 | CREATE EXTENSION IF NOT EXISTS pg_trgm; 6 | 7 | CREATE INDEX idx_person_description ON person USING gin (description gin_trgm_ops); 8 | CREATE INDEX idx_organization_description ON organization USING gin (description gin_trgm_ops); 9 | -------------------------------------------------------------------------------- /hasura/migrations/intuition/1736343936133_caip10_support/down.sql: -------------------------------------------------------------------------------- 1 | -- Unfortunately, PostgreSQL doesn't allow removing enum values directly. The down migration requires recreating the type. 2 | CREATE TYPE atom_type_new AS ENUM ( 3 | 'Unknown', 'Account', 'Thing', 'ThingPredicate', 'Person', 'PersonPredicate', 4 | 'Organization', 'OrganizationPredicate', 'Book', 'LikeAction', 'FollowAction', 'Keywords' 5 | ); 6 | 7 | ALTER TABLE ${BACKEND_SCHEMA_NAME}.atoms 8 | ALTER COLUMN type TYPE atom_type_new 9 | USING (type::text::atom_type_new); 10 | 11 | DROP TYPE atom_type; 12 | ALTER TYPE atom_type_new RENAME TO atom_type; 13 | 14 | DROP TABLE ${BACKEND_SCHEMA_NAME}.caip10; -------------------------------------------------------------------------------- /hasura/migrations/intuition/1736343936133_caip10_support/up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE atom_type ADD VALUE 'Caip10'; 2 | 3 | CREATE TABLE caip10 ( 4 | id NUMERIC(78, 0) PRIMARY KEY NOT NULL, 5 | namespace TEXT NOT NULL, 6 | chain_id INTEGER NOT NULL, 7 | account_address TEXT NOT NULL 8 | ); -------------------------------------------------------------------------------- /hasura/migrations/intuition/1739413212123_new_triggers/down.sql: -------------------------------------------------------------------------------- 1 | DROP function update_vault_positions_on_deposit(); 2 | DROP function update_vault_positions_on_position_delete(); 3 | DROP TRIGGER IF EXISTS deposit_insert_trigger ON deposit; 4 | DROP TRIGGER IF EXISTS position_delete_vault_trigger ON position; -------------------------------------------------------------------------------- /hasura/migrations/intuition/1739457611336_new_triggers_and_migrate/down.sql: -------------------------------------------------------------------------------- 1 | DROP TRIGGER IF EXISTS position_insert_trigger ON position; 2 | DROP FUNCTION IF EXISTS update_vault_positions_on_position(); 3 | -------------------------------------------------------------------------------- /histocrawler/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "histocrawler" 3 | version = "0.1.0" 4 | edition = "2024" 5 | 6 | [dependencies] 7 | alloy.workspace = true 8 | dotenvy.workspace = true 9 | env_logger.workspace = true 10 | envy.workspace = true 11 | log.workspace = true 12 | models = { path = "../models" } 13 | serde.workspace = true 14 | serde_json.workspace = true 15 | shared-utils = { path = "../shared-utils" } 16 | sqlx.workspace = true 17 | thiserror.workspace = true 18 | tokio.workspace = true 19 | url.workspace = true -------------------------------------------------------------------------------- /histocrawler/src/main.rs: -------------------------------------------------------------------------------- 1 | use app::HistoCrawler; 2 | use error::HistoCrawlerError; 3 | use serde::Deserialize; 4 | 5 | mod app; 6 | mod error; 7 | 8 | #[derive(Debug, Deserialize)] 9 | pub struct Env { 10 | pub rpc_url: String, 11 | pub start_block: u64, 12 | pub end_block: Option, 13 | pub intuition_contract_address: String, 14 | pub histocrawler_database_url: String, 15 | pub indexer_schema: String, 16 | } 17 | 18 | #[tokio::main] 19 | async fn main() -> Result<(), HistoCrawlerError> { 20 | let mut app = HistoCrawler::new().await?; 21 | app.start_indexing().await 22 | } 23 | -------------------------------------------------------------------------------- /histoflux/README.md: -------------------------------------------------------------------------------- 1 | # HistoFlux 2 | 3 | This crate contains the code for the HistoFlux project. The goal of this project is to process historical events from the database and feed them to an SQS queue. 4 | After the historical events are processed, the project will start listening for new events and feed them to the SQS queue. 5 | 6 | ## Usage 7 | 8 | In order to run the project, you simply need to run the following command: 9 | 10 | ```bash 11 | RUST_LOG=info cargo run 12 | ``` 13 | 14 | -------------------------------------------------------------------------------- /histoflux/src/main.rs: -------------------------------------------------------------------------------- 1 | use app_context::SqsProducer; 2 | 3 | mod app_context; 4 | mod error; 5 | mod models; 6 | mod types; 7 | 8 | #[tokio::main] 9 | async fn main() -> Result<(), Box> { 10 | let app = SqsProducer::init().await?; 11 | app.start_pooling_events().await?; 12 | Ok(()) 13 | } 14 | -------------------------------------------------------------------------------- /histoflux/src/models/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod cursor; 2 | -------------------------------------------------------------------------------- /histoflux/src/types.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | #[derive(Debug, Serialize, Deserialize)] 4 | pub struct RawLog { 5 | pub block_number: i64, 6 | pub transaction_hash: String, 7 | pub transaction_index: i64, 8 | pub log_index: i64, 9 | pub address: String, 10 | pub data: String, 11 | pub topics: Vec, 12 | pub block_timestamp: i64, 13 | } 14 | -------------------------------------------------------------------------------- /image-guard/.dockerignore: -------------------------------------------------------------------------------- 1 | target 2 | .git 3 | Dockerfile -------------------------------------------------------------------------------- /image-guard/src/main.rs: -------------------------------------------------------------------------------- 1 | use app::App; 2 | use error::ApiError; 3 | 4 | mod app; 5 | mod endpoints; 6 | mod error; 7 | mod openapi; 8 | mod state; 9 | mod types; 10 | 11 | #[tokio::main] 12 | async fn main() -> Result<(), ApiError> { 13 | App::new().await?.serve().await 14 | } 15 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1736513289_create_raw_data.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS base_indexer.raw_data; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1736866698_current_share_price.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE base_proxy.json_rpc_cache; 2 | DROP TYPE base_proxy.method; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1736866698_current_share_price.up.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA IF NOT EXISTS base_proxy; 2 | 3 | CREATE TYPE base_proxy.method AS ENUM ('eth_call'); 4 | 5 | CREATE TABLE base_proxy.json_rpc_cache( 6 | chain_id BIGINT NOT NULL, 7 | block_number BIGINT NOT NULL, 8 | method base_proxy.method NOT NULL, 9 | to_address TEXT NOT NULL, 10 | input TEXT NOT NULL, 11 | result TEXT NOT NULL 12 | ); 13 | 14 | -- Indexes for common query patterns 15 | CREATE INDEX idx_json_rpc_cache_block_number ON base_proxy.json_rpc_cache(block_number); 16 | CREATE INDEX idx_json_rpc_cache_input ON base_proxy.json_rpc_cache(input); 17 | CREATE INDEX idx_json_rpc_cache_method_input ON base_proxy.json_rpc_cache(method, input); 18 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1737498243_histoflux_cursor.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE cursors.histoflux_cursor; 2 | DROP TYPE cursors.environment; 3 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1737728488_substreams_cursor.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS base_sepolia_indexer.substreams_cursor; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1737728488_substreams_cursor.up.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA IF NOT EXISTS base_sepolia_indexer; 2 | 3 | CREATE TABLE base_sepolia_indexer.substreams_cursor ( 4 | id SERIAL PRIMARY KEY NOT NULL, 5 | cursor TEXT NOT NULL, 6 | endpoint TEXT NOT NULL, 7 | start_block BIGINT NOT NULL, 8 | end_block BIGINT, 9 | created_at TIMESTAMPTZ NOT NULL DEFAULT now() 10 | ); 11 | 12 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1737730594_create_raw_data_sepolia.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS base_sepolia_indexer.raw_data; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1737926477_updating_proxy_method_enum.down.sql: -------------------------------------------------------------------------------- 1 | DROP TYPE base_proxy.method; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1737926477_updating_proxy_method_enum.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE base_proxy.method ADD VALUE 'eth_getBlockByNumber'; 2 | 3 | ALTER TABLE base_proxy.json_rpc_cache ALTER COLUMN to_address DROP NOT NULL; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1738206736_create_base_raw_data.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS base_mainnet_indexer.raw_data; 2 | DROP FUNCTION IF EXISTS base_mainnet_indexer.notify_raw_logs(); 3 | DROP TRIGGER IF EXISTS raw_logs_notify_trigger ON base_mainnet_indexer.raw_data; 4 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1738586869_create_cached_images.down.sql: -------------------------------------------------------------------------------- 1 | DROP INDEX idx_cached_image_original_url; 2 | DROP INDEX idx_cached_image_url; 3 | DROP TABLE cached_images.cached_image; 4 | DROP SCHEMA cached_images; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1738586869_create_cached_images.up.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA IF NOT EXISTS cached_images; 2 | 3 | CREATE TABLE cached_images.cached_image ( 4 | -- id is the original name of the image in lowercase without the extension 5 | url TEXT PRIMARY KEY NOT NULL, 6 | original_url TEXT NOT NULL, 7 | score JSONB, 8 | model TEXT, 9 | safe BOOLEAN NOT NULL DEFAULT false, 10 | created_at TIMESTAMPTZ NOT NULL DEFAULT now() 11 | ); 12 | 13 | CREATE INDEX idx_cached_image_original_url ON cached_images.cached_image(original_url); 14 | CREATE INDEX idx_cached_image_url ON cached_images.cached_image(url); -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739195744_updating_proxy_method_enum.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE base_proxy.method ADD VALUE 'eth_getBalance'; 2 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739311955_alter_cursor_env_enum.down.sql: -------------------------------------------------------------------------------- 1 | DROP TYPE IF EXISTS cursors.environment CASCADE; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739311955_alter_cursor_env_enum.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE cursors.environment ADD VALUE 'ProdLineaMainnet' AFTER 'ProdBaseSepolia'; 2 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739311956_create_linea_mainnet_raw_data.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS linea_mainnet_indexer.raw_data; 2 | DROP FUNCTION IF EXISTS linea_mainnet_indexer.notify_raw_logs(); 3 | DROP TRIGGER IF EXISTS linea_mainnet_raw_logs_notify_trigger ON linea_mainnet_indexer.raw_data; 4 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739377754_alter_cursor_env_enum.down.sql: -------------------------------------------------------------------------------- 1 | DROP TYPE IF EXISTS cursors.environment CASCADE; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739377754_alter_cursor_env_enum.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE cursors.environment ADD VALUE 'ProdBaseMainnetV2' AFTER 'ProdLineaMainnet'; 2 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739378168_create_base_mainnet_v2_raw_data.down.sql: -------------------------------------------------------------------------------- 1 | -- prod-linea-mainnet 2 | DELETE FROM cursors.histoflux_cursor WHERE id = 5; 3 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739378168_create_base_mainnet_v2_raw_data.up.sql: -------------------------------------------------------------------------------- 1 | -- prod-linea-mainnet 2 | INSERT INTO cursors.histoflux_cursor (id, last_processed_id, environment, queue_url) VALUES (5, 0, 'ProdBaseMainnetV2', 'https://sqs.us-west-2.amazonaws.com/064662847354/prod-base-mainnet-v2-raw-logs.fifo'); 3 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739415841_alter_cursor_env_enum.down.sql: -------------------------------------------------------------------------------- 1 | DROP TYPE IF EXISTS cursors.environment CASCADE; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739415841_alter_cursor_env_enum.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE cursors.environment ADD VALUE 'ProdBaseSepoliaV2' AFTER 'ProdBaseMainnetV2'; 2 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739590962_create_base_mainnet_v2_raw_data.down.sql: -------------------------------------------------------------------------------- 1 | -- prod-linea-mainnet 2 | DELETE FROM cursors.histoflux_cursor WHERE id = 5; 3 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739590962_create_base_mainnet_v2_raw_data.up.sql: -------------------------------------------------------------------------------- 1 | -- prod-linea-mainnet 2 | INSERT INTO cursors.histoflux_cursor (id, last_processed_id, environment, queue_url) VALUES (6, 0, 'ProdBaseSepoliaV2', 'https://sqs.us-west-2.amazonaws.com/064662847354/prod-base-sepolia-v2-raw-logs.fifo'); 3 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739591152_alter_cursor_env_enum.down.sql: -------------------------------------------------------------------------------- 1 | DROP TYPE IF EXISTS cursors.environment CASCADE; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739591152_alter_cursor_env_enum.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE cursors.environment ADD VALUE 'ProdLineaSepolia' AFTER 'ProdBaseSepoliaV2'; 2 | DROP TABLE IF EXISTS linea_sepolia_indexer.raw_data; 3 | DROP FUNCTION IF EXISTS linea_sepolia_indexer.notify_raw_logs(); 4 | DROP TRIGGER IF EXISTS linea_sepolia_raw_logs_notify_trigger ON linea_sepolia_indexer.raw_data; 5 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739591262_create_linea_sepolia_raw_data.down.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM cursors.histoflux_cursor WHERE id = 7; 2 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739844132_alter_cursor_env_enum_add_new_linea.down.sql: -------------------------------------------------------------------------------- 1 | DROP TYPE IF EXISTS cursors.environment CASCADE; -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739844132_alter_cursor_env_enum_add_new_linea.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE cursors.environment ADD VALUE 'ProdLineaMainnetV2' AFTER 'ProdLineaSepolia'; 2 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/1739844222_create_linea_mainnet_v2_raw_data.down.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM cursors.histoflux_cursor WHERE id = 8; 2 | -------------------------------------------------------------------------------- /indexer-and-cache-migrations/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rust:1.85-slim 2 | 3 | # Set the workdir 4 | WORKDIR /app 5 | 6 | # Copy migrations from workspace 7 | COPY indexer-and-cache-migrations ./migrations 8 | 9 | # Install build and runtime dependencies 10 | RUN apt-get update && \ 11 | apt-get install -y --no-install-recommends \ 12 | ca-certificates \ 13 | libssl3 \ 14 | libssl-dev \ 15 | pkg-config \ 16 | capnproto \ 17 | && rm -rf /var/lib/apt/lists/* 18 | 19 | RUN cargo install sqlx-cli --no-default-features --features native-tls,postgres 20 | 21 | CMD ["sh", "-c", "sqlx migrate run --database-url $INDEXER_DATABASE_URL"] 22 | -------------------------------------------------------------------------------- /integration-tests/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /integration-tests/README.md: -------------------------------------------------------------------------------- 1 | # Integration tests 2 | 3 | ``` 4 | pnpm i 5 | pnpm test 6 | ``` 7 | -------------------------------------------------------------------------------- /integration-tests/codegen.ts: -------------------------------------------------------------------------------- 1 | 2 | import { CodegenConfig } from '@graphql-codegen/cli'; 3 | 4 | const config: CodegenConfig = { 5 | schema: 'http://localhost:8080/v1/graphql', 6 | documents: ['src/**/*.ts'], 7 | ignoreNoDocuments: true, 8 | generates: { 9 | './src/graphql/': { 10 | preset: 'client', 11 | config: { 12 | documentMode: 'string' 13 | } 14 | } 15 | } 16 | }; 17 | 18 | export default config; 19 | -------------------------------------------------------------------------------- /integration-tests/src/graphql/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./fragment-masking"; 2 | export * from "./gql"; -------------------------------------------------------------------------------- /integration-tests/src/setup/constants.ts: -------------------------------------------------------------------------------- 1 | import { privateKeyToAccount } from 'viem/accounts' 2 | 3 | export const MNEMONIC = 4 | 'legal winner thank year wave sausage worth useful legal winner thank yellow' 5 | 6 | export const CONTRACT_ADDRESS = '0x04056c43d0498b22f7a0c60d4c3584fb5fa881cc' 7 | 8 | export const PROTOCOL_MULTISIG = '0xEcAc3Da134C2e5f492B702546c8aaeD2793965BB' 9 | 10 | export const ADMIN = privateKeyToAccount( 11 | '0x3c0afbd619ed4a8a11cfbd8c5794e08dc324b6809144a90c58bc0ff24219103b', 12 | ) 13 | -------------------------------------------------------------------------------- /integration-tests/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "moduleResolution": "bundler", 5 | "module": "Preserve" 6 | } 7 | } -------------------------------------------------------------------------------- /integration-tests/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | 3 | // https://vitest.dev/config/ 4 | export default defineConfig({ 5 | 6 | test: { 7 | testTimeout: 100000, 8 | }, 9 | }) 10 | -------------------------------------------------------------------------------- /kubernetes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xIntuition/intuition-rs/a6265a38af1644734774b16fc2c1f87bf7336c86/kubernetes -------------------------------------------------------------------------------- /local/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rust:1.84-slim 2 | 3 | WORKDIR /app 4 | 5 | # Install PostgreSQL client 6 | RUN apt-get update && \ 7 | apt-get install -y --no-install-recommends \ 8 | postgresql-client \ 9 | && rm -rf /var/lib/apt/lists/* 10 | 11 | # Create update script 12 | RUN echo '#!/bin/bash \n\ 13 | PGPASSWORD=$POSTGRES_PASSWORD psql -h database -U $POSTGRES_USER -d $POSTGRES_DB -p $POSTGRES_PORT -c \ 14 | "UPDATE cursors.histoflux_cursor SET queue_url = '\''http://sqs.us-east-1.localhost.localstack.cloud:4566/000000000000/raw_logs.fifo'\'';"' > /app/update.sh 15 | 16 | RUN chmod +x /app/update.sh 17 | 18 | CMD ["/app/update.sh"] -------------------------------------------------------------------------------- /models/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "models" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | alloy.workspace = true 8 | async-trait.workspace = true 9 | bytes = "1.9.0" 10 | chrono.workspace = true 11 | hex.workspace = true 12 | hypersync-client.workspace = true 13 | macon.workspace = true 14 | rand.workspace = true 15 | serde.workspace = true 16 | serde_json.workspace = true 17 | sqlx.workspace = true 18 | strum.workspace = true 19 | strum_macros.workspace = true 20 | thiserror.workspace = true 21 | tokio.workspace = true 22 | utoipa.workspace = true 23 | 24 | [package.metadata.cargo-machete] 25 | ignored = ["strum"] 26 | -------------------------------------------------------------------------------- /models/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod account; 2 | pub mod atom; 3 | pub mod atom_value; 4 | pub mod book; 5 | pub mod byte_object; 6 | pub mod cached_image; 7 | pub mod caip10; 8 | pub mod claim; 9 | pub mod deposit; 10 | pub mod error; 11 | pub mod event; 12 | pub mod fee_transfer; 13 | pub mod json_object; 14 | pub mod organization; 15 | pub mod person; 16 | pub mod position; 17 | pub mod predicate_object; 18 | pub mod raw_logs; 19 | pub mod redemption; 20 | pub mod signal; 21 | pub mod stats; 22 | pub mod stats_hour; 23 | pub mod substreams_cursor; 24 | pub mod test_helpers; 25 | pub mod text_object; 26 | pub mod thing; 27 | pub mod traits; 28 | pub mod triple; 29 | pub mod types; 30 | pub mod vault; 31 | #[macro_use] 32 | extern crate macon; 33 | -------------------------------------------------------------------------------- /prometheus/alert.rules: -------------------------------------------------------------------------------- 1 | # alert.rules 2 | groups: 3 | - name: example 4 | rules: 5 | - alert: HighHTTP500ErrorRate 6 | expr: sum(rate(axum_http_requests_total{status="500"}[5m])) > 5 7 | for: 5m 8 | labels: 9 | severity: critical 10 | annotations: 11 | summary: "High rate of HTTP 500 errors" 12 | description: "There is a high rate of HTTP 500 errors for the last 5 minutes." -------------------------------------------------------------------------------- /prometheus/prometheus.yml: -------------------------------------------------------------------------------- 1 | global: 2 | scrape_interval: 15s 3 | 4 | scrape_configs: 5 | - job_name: 'api' 6 | static_configs: 7 | - targets: ['api:3000'] 8 | - targets: ['decoded_consumer:3002'] 9 | 10 | rule_files: 11 | - 'alert.rules' 12 | - 'recording.rules' -------------------------------------------------------------------------------- /restart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source .env 4 | docker compose down -v 5 | docker compose up -d 6 | -------------------------------------------------------------------------------- /rpc-proxy/src/endpoints/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod proxy; 2 | -------------------------------------------------------------------------------- /rpc-proxy/src/main.rs: -------------------------------------------------------------------------------- 1 | use app::App; 2 | use error::ApiError; 3 | 4 | mod app; 5 | mod endpoints; 6 | mod error; 7 | mod models; 8 | mod openapi; 9 | 10 | #[tokio::main] 11 | async fn main() -> Result<(), ApiError> { 12 | App::initialize().await?.serve().await 13 | } 14 | -------------------------------------------------------------------------------- /rpc-proxy/src/models/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod json_rpc_cache; 2 | -------------------------------------------------------------------------------- /rpc-proxy/src/openapi.rs: -------------------------------------------------------------------------------- 1 | use crate::endpoints::{self, proxy::JsonRpcRequest}; 2 | use models::cached_image::CachedImage; 3 | use shared_utils::{image::Image, types::ClassificationModel}; 4 | use utoipa::OpenApi; 5 | 6 | #[derive(OpenApi)] 7 | #[openapi( 8 | paths( 9 | endpoints::proxy::rpc_proxy, 10 | ), 11 | components( 12 | schemas( 13 | Image, 14 | CachedImage, 15 | ClassificationModel, 16 | JsonRpcRequest, 17 | ) 18 | ), 19 | tags( 20 | (name = "rpc_proxy", description = "RPC proxy endpoint") 21 | ) 22 | )] 23 | pub struct ApiDoc; 24 | -------------------------------------------------------------------------------- /shared-utils/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "shared-utils" 3 | version = "0.1.0" 4 | edition = "2024" 5 | 6 | [dependencies] 7 | bytes.workspace = true 8 | http = "1.2.0" 9 | log.workspace = true 10 | macon.workspace = true 11 | models = { path = "../models" } 12 | reqwest.workspace = true 13 | serde.workspace = true 14 | serde_json.workspace = true 15 | sqlx.workspace = true 16 | thiserror.workspace = true 17 | tokio.workspace = true 18 | tracing = "0.1" 19 | utoipa.workspace = true 20 | 21 | -------------------------------------------------------------------------------- /shared-utils/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod error; 2 | pub mod image; 3 | pub mod ipfs; 4 | pub mod postgres; 5 | pub mod types; 6 | -------------------------------------------------------------------------------- /shared-utils/src/postgres.rs: -------------------------------------------------------------------------------- 1 | use crate::error::LibError; 2 | use sqlx::{postgres::PgPoolOptions, PgPool}; 3 | 4 | pub async fn connect_to_db(database_url: &str) -> Result { 5 | PgPoolOptions::new() 6 | .min_connections(5) 7 | .max_connections(20) 8 | .connect(database_url) 9 | .await 10 | .map_err(|error| LibError::PostgresConnectError(error.to_string())) 11 | } 12 | -------------------------------------------------------------------------------- /shared-utils/src/traits.rs: -------------------------------------------------------------------------------- 1 | pub trait Multipart { 2 | fn clone(&self) -> Self; 3 | fn name(&self) -> String; 4 | fn data(&self) -> Bytes; 5 | fn content_type(&self) -> String; 6 | } 7 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source .env 4 | docker compose up -d 5 | -------------------------------------------------------------------------------- /stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker compose down 4 | -------------------------------------------------------------------------------- /substreams-sink/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .envrc* 3 | 4 | /data 5 | /target 6 | -------------------------------------------------------------------------------- /substreams-sink/basemainnet-18528268-21791864-trimmed.txt.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xIntuition/intuition-rs/a6265a38af1644734774b16fc2c1f87bf7336c86/substreams-sink/basemainnet-18528268-21791864-trimmed.txt.zip -------------------------------------------------------------------------------- /substreams-sink/buf.gen.yaml: -------------------------------------------------------------------------------- 1 | version: v1 2 | managed: 3 | enabled: true 4 | plugins: 5 | - plugin: buf.build/community/neoeinstein-prost:v0.4.0 6 | out: src/pb 7 | opt: file_descriptor_set=false 8 | 9 | - plugin: buf.build/community/neoeinstein-tonic:v0.4.1 10 | out: src/pb 11 | opt: 12 | - no_server=true 13 | 14 | - plugin: buf.build/community/neoeinstein-prost-crate:v0.4.1 15 | out: src/pb 16 | opt: 17 | - include_file=pb.rs 18 | - no_features -------------------------------------------------------------------------------- /substreams-sink/src/pb/mod.rs: -------------------------------------------------------------------------------- 1 | use std::fmt::Display; 2 | 3 | use crate::pb::sf::substreams::rpc::v2::BlockRange; 4 | 5 | include!("pb.rs"); 6 | 7 | impl Display for BlockRange { 8 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 9 | write!(f, "({}-{})", self.start_block, self.end_block) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /substreams-sink/src/pb/sf.substreams.index.v1.rs: -------------------------------------------------------------------------------- 1 | // @generated 2 | // This file is @generated by prost-build. 3 | #[allow(clippy::derive_partial_eq_without_eq)] 4 | #[derive(Clone, PartialEq, ::prost::Message)] 5 | pub struct Keys { 6 | #[prost(string, repeated, tag="1")] 7 | pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, 8 | } 9 | // @@protoc_insertion_point(module) 10 | -------------------------------------------------------------------------------- /tq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xIntuition/intuition-rs/a6265a38af1644734774b16fc2c1f87bf7336c86/tq --------------------------------------------------------------------------------