tiagob / create-full-stack

Set up a TypeScript full stack with one command.
https://create-full-stack.com
MIT License
97 stars 9 forks source link

Pulumi Hasura Cloud Provider #165

Closed gjolund closed 3 years ago

gjolund commented 3 years ago

Is your feature request related to a problem? Please describe. I would like to be able to manage and provision hasura cloud via Pulumi.

Describe the solution you'd like It seems like the recommended practice by pulumi is to define a Hasura provider that can be used in deploy scripts

Describe alternatives you've considered I am currently managing Hasura cloud deployments via GH actions and custom TS scripts that wrap the hasura cli.

Additional context Definitely willing to collaborate on this, right now I am digging into how pulumi providers work.

tiagob commented 3 years ago

How would you like to split this up? Do you have some commands terminal commands you’re using today? Does Hasura have an API we could use?

On Tue, Nov 17, 2020 at 12:00 AM Austin Rivas notifications@github.com wrote:

Is your feature request related to a problem? Please describe. I would like to be able to manage and provision hasura cloud via Pulumi.

Describe the solution you'd like It seems like the recommended practice by pulumi is to define a Hasura provider that can be used in deploy scripts

Describe alternatives you've considered I am currently managing Hasura cloud deployments via GH actions and custom TS scripts that wrap the hasura cli.

Additional context Definitely willing to collaborate on this, right now I am digging into how pulumi providers work.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/tiagob/create-full-stack/issues/165, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAH32YVBWZB3QLFDD34ZDTDSQJCTZANCNFSM4TYK3ZGA .

gjolund commented 3 years ago

The hasura cloud api is documented here https://hasura.io/docs/1.0/graphql/cloud/api-reference.html

Its pretty simple, just crud for "tenets" which are just hasura instances, and get / set for env vars.

The part that I am hung up on is how to implement the pulumi provider to be able to diff the current configuration and apply updates.

Currently I am using shelljs to execute these commands via typescript, but it doesn't integrate into pulumi's diffing system.

Do you have any experience developing pulumi providers?

This is something that should really be developed outside the scope of create-full-stack, and hopefully we can provide a foundation for the rest of the hasura community to start contributing the more complex features like the schema / metadata api's.