{"service":"stacked-idp-api","configDir":"/app/platform-config","endpoints":{"health":"/health","authLogin":"/auth/gitlab/login","authCallback":"/auth/gitlab/callback","authSession":"/api/auth/session","authLogout":"POST /api/auth/logout","components":"/api/components","componentByName":"/api/components/:name","componentUpdateByName":"PUT|PATCH /api/components/:name","favoriteComponents":"GET /api/components/favorites","favoriteComponentByName":"POST /api/components/:name/favorite","unfavoriteComponentByName":"DELETE /api/components/:name/favorite","componentStatusByName":"/api/components/:name/status","componentOpenMergeRequestsByName":"/api/components/:name/open-merge-requests","componentConfigByName":"/api/components/:name/config?view=current|persistent","componentConfigUpdateByName":"POST /api/components/:name/config { environment, values, view? }","componentConfigBulkUpdateByName":"POST /api/components/:name/config/bulk { updates: [{ environment, values }], view? }","componentReleasesByName":"/api/components/:name/releases?environment=staging|production","componentReleaseCreateByName":"POST /api/components/:name/releases { environment: staging|production, sourceRef?: string, releaseType?: major|minor }","importRepositories":"/api/import/repositories","importOwners":"/api/import/owners","importComponent":"POST /api/import/components","cacheRefresh":"POST /api/cache/refresh","options":"/api/options","resourceRequests":"/api/resource-requests","appOrderRequests":"GET|POST /api/app-order-requests","appOrderOpenMergeRequests":"GET /api/app-order-requests/open-merge-requests","appOrderPendingCount":"GET /api/app-order-requests/pending/count","appOrderApprove":"POST /api/app-order-requests/:id/approve","appOrderReject":"POST /api/app-order-requests/:id/reject"},"components":[{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"blockchain-client","displayName":"Blockchain_client"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/stacked/blockchain_client"},"owners":[{"group":"pixels-online/stacked","user":"chen77"}],"environments":["staging","production","dev"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"blockchain-server-2","displayName":"Blockchain Server"},"spec":{"kind":"service","repo":{"path":"pixels-online/stacked/blockchain_server"},"owners":[{"user":"chen77"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"namespaces":{"dev":"dev-backend","staging":"staging-backend","production":"production-backend"},"deploymentContractPath":"deploy/envs"}},"dependencies":{"mongo":true,"redis":false,"pubsub":true,"gcpSecrets":true}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"buildon-client","displayName":"BuildOn Client"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/stacked/buildon_client"},"owners":[{"user":"pixels_alexw"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"namespaces":{"dev":"dev-frontend","staging":"staging-frontend","production":"production-frontend"},"deploymentContractPath":"deploy/envs"}},"dependencies":{"gcpSecrets":false}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"buildon-docs","displayName":"BuildOn Docs"},"spec":{"kind":"docs","repo":{"path":"pixels-online/stacked/buildon_docs"},"owners":[{"user":"pixels_alexw"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"namespaces":{"dev":"dev-frontend","staging":"staging-frontend","production":"production-frontend"},"deploymentContractPath":"deploy/envs"}},"dependencies":{"gcpSecrets":false}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"buildon-leaderboard","displayName":"Buildon leaderboard"},"spec":{"kind":"service","repo":{"path":"pixels-online/stacked/buildon_leaderboard"},"owners":[{"user":"themilkywei"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"buildon-server","displayName":"BuildOn Server"},"spec":{"kind":"service","repo":{"path":"pixels-online/stacked/buildon_server"},"owners":[{"user":"themilkywei"}],"environments":["dev","staging","sandbox","production"],"runtime":{"k8s":{"namespaces":{"dev":"dev-backend","sandbox":"sandbox-backend","staging":"staging-backend","production":"production-backend"},"deploymentContractPath":"deploy/envs"}},"dependencies":{"mongo":true,"redis":true,"pubsub":true,"gcpSecrets":true}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"buildon-tools","displayName":"BuildOn Tools"},"spec":{"kind":"tooling","repo":{"path":"pixels-online/stacked/buildon_tools"},"owners":[{"user":"themilkywei"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"namespaces":{"dev":"dev-backend","staging":"staging-backend","production":"production-backend"},"deploymentContractPath":"deploy/envs"}},"dependencies":{"gcpSecrets":true}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"data-piper","displayName":"Data_piper"},"spec":{"kind":"service","repo":{"path":"pixels-online/core-game/data_piper"},"owners":[{"user":"chen77"}],"environments":["staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"event-tracker2","displayName":"Event Tracker 2"},"spec":{"kind":"service","repo":{"path":"pixels-online/stacked/event_tracker2"},"owners":[{"user":"chen77"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"namespaces":{"dev":"dev-backend","staging":"staging-backend","production":"production-backend"},"deploymentContractPath":"deploy/envs"}},"dependencies":{"mongo":true,"redis":false,"pubsub":true,"gcpSecrets":true}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"idp","displayName":"IDP"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/devops/idp"},"owners":[{"user":"pixels_benni"}],"environments":["production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"landing","displayName":"Landing"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/stacked/landing"},"owners":[{"group":"pixels-online/stacked","user":"lb36"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"otter-client","displayName":"Otter_client"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/otter/otter_client"},"owners":[{"user":"pixels_alexw"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"otter-commons","displayName":"Otter_commons"},"spec":{"kind":"library","repo":{"path":"pixels-online/otter/otter_commons"},"owners":[{"user":"themilkywei"}],"environments":[]}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"otter-landing","displayName":"Otter_landing"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/otter/otter_landing"},"owners":[{"user":"themilkywei"}],"environments":["dev","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"otter-server","displayName":"Otter_server"},"spec":{"kind":"service","repo":{"path":"pixels-online/otter/otter_server"},"owners":[{"user":"themilkywei"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"pixels-account","displayName":"Pixels_account"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/core-game/pixels_account"},"owners":[{"user":"themilkywei"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"pixels-cache","displayName":"Pixels_cache"},"spec":{"kind":"service","repo":{"path":"pixels-online/core-game/pixels_cache"},"owners":[{"user":"midhat2"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"pixels-game-client","displayName":"Pixels_game_client"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/core-game/pixels_game_client"},"owners":[{"user":"midhat2"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"pixels-oauth","displayName":"Pixels_oauth"},"spec":{"kind":"service","repo":{"path":"pixels-online/core-game/pixels_oauth"},"owners":[{"user":"themilkywei"}],"environments":["dev","staging","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"pixels-proxy","displayName":"Pixels_proxy"},"spec":{"kind":"service","repo":{"path":"pixels-online/core-game/pixels_proxy"},"owners":[{"user":"midhat2"}],"environments":["staging","dev","production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"pixels-ugc","displayName":"Pixels_ugc"},"spec":{"kind":"service","repo":{"path":"pixels-online/core-game/pixels_ugc"},"owners":[{"user":"themilkywei"}],"environments":["production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"stacked-agent","displayName":"Stacked Agent"},"spec":{"kind":"service","repo":{"path":"pixels-online/stacked/stacked-agent"},"owners":[{"group":"pixels-online/stacked","user":"lb@pixels.online"}],"environments":["dev","staging","production"]}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"stacked-commons","displayName":"Stacked Commons"},"spec":{"kind":"library","repo":{"path":"pixels-online/stacked/stacked-commons"},"owners":[{"user":"themilkywei"}],"environments":[],"library":{"model":"monorepo","defaultRegistry":"internal","publish":{"strategy":"semantic-release","visibilityPolicy":{"default":"internal","allowPublic":true}}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"stacked-expo","displayName":"Stacked Expo App"},"spec":{"kind":"mobile","repo":{"path":"pixels-online/stacked/stacked_expo"},"owners":[{"user":"pixels_alexw"}],"environments":["dev","staging","sandbox","production"],"runtime":{"k8s":{"namespaces":{"dev":"dev-backend","sandbox":"sandbox-backend","staging":"staging-backend","production":"production-backend"},"deploymentContractPath":"deploy/envs"},"mobile":{"platforms":["ios","android","web"]}},"dependencies":{"gcpSecrets":false},"library":{"model":"single","defaultRegistry":"internal"}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"stratum-backend","displayName":"Stratum Backend"},"spec":{"kind":"service","repo":{"path":"pixels-online/infrastructure/stratum-backend"},"owners":[{"user":"pixels_benni"}],"environments":["production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}},{"apiVersion":"stacked.idp/v1alpha1","kind":"Component","metadata":{"name":"stratum-frontend","displayName":"Stratum Frontend"},"spec":{"kind":"frontend","repo":{"path":"pixels-online/infrastructure/stratum-frontend"},"owners":[{"user":"pixels_benni"}],"environments":["production"],"runtime":{"k8s":{"deploymentContractPath":"deploy/envs"}}}}],"errors":[]}