Part of [Service provider auctions for web deployments](https://www.notion.so/Service-provider-auctions-for-web-deployments-104a6b22d47280dbad51d28aa3a91d75)
- Upgrade WallectConnect to version `2.16.1`
- Part of #24
- Change GitHub access to `public_repo` and `user`
- Part of #22
Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
Reviewed-on: #27
Co-authored-by: Nabarun <nabarun@deepstacksoft.com>
Co-committed-by: Nabarun <nabarun@deepstacksoft.com>
Part of [Service provider auctions for web deployments](https://www.notion.so/Service-provider-auctions-for-web-deployments-104a6b22d47280dbad51d28aa3a91d75)
- Disable `Deploy` button in configure step if account and deployer not selected
- Update organization slug
- Only display project if current user is project owner
Co-authored-by: IshaVenikar <ishavenikar7@gmail.com>
Co-authored-by: Adw8 <adwaitgharpure@gmail.com>
Reviewed-on: #21
* Create web3 modal provider with SIWE
* Add auth router to handle SIWE authentication
* Use axios instance to make request
* Add button for SIWE authentication
* Add changes to access session in web-app GQL requests
* Add auth check in GQL context and load/create user
* Use authenticated user from context
* Redirect to sign in page if unauthenticated and logout button
* Change sign-in route to login
* Get project domain from config file
* Set user ethAddress column as unique
* Use formatted user name
* Get session secret and origin url from config file
* Add unique constraint for eth address
* Get secure and samesite from origin url
* Get wallet connect id and backend url from env file
* Format user email in member tab panel
* Add backend config isProduction to set trust proxy
* Use only one server url config
* Add tool tip for displaying email
* Add trustProxy and domain in server.session config
* Add SERVER_GQL_PATH constant in frontend
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Fix alignment of deployment status chip
* Use template name from env
* Use env for git template link
* Add loading spinner for create project
* Display user name
* Format the displayed user name
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Create application deployment request on new deployment
* Save application deployment request datas in deployment entity
* Add project as dependency
* Use project repo name as record app name
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add method to update multiple deployments in single query
* Fix deployments URL visit and date filter
* Clean fixtures data
* Update fixtures data
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add skeleton and TODOs for polling deployment records
* Add method implementations for fetching deployment records
* Handle if deployment url is not set
* Add logs after getting ApplicationDeploymentRecord
* Add application deployment record to deployment entity
* Change type of application deployment record data
* Fetch delay to check deployment records from config
* Update isCurrent after deployment record received
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Display commit message in projects and deployments
* Handle if current deployment not present
* Rename types file
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Get latest commit hash from repo when adding project
* Update UI/UX
* Fill registry record with data from package.json
* Add package json type
* Correct record data based on laconic console
* Update README
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add routes to settings tab panel
* Refactor code to move settings tab components to pages
* Rename registry fields in project and deployment entity
* Use kebab case for routes
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Publish record in laconic registry on creating project and deployment
* Refactor publish record method
* Set name for the published record
* Publish application deployment request
* Add README for publishing record
* Add await in add project resolver method
* Update meta data for deployment request record
* Remove title field from deployment entity
* Refactor service and registry class for publishing record
* Add record data to project and deployment entity
* Set record id and data as nullable in project entity
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Create new deployment when changing to production
* Remove unnecessary todos
* Move deployment id and url creation in database method
* Display correct details in deployment dialog box
* Rename relativeTime function to relativeTimeISO
* Refactor resolver methods to service class
* Refactor to move github app to service class
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Create repository from selected template
* Create project based on created repository
* Replace dropdown component with component from material tailwind
* Remove repository name from query parameters
* Implement dropdown for organizations switcher
* Add dynamic route for organization id
* Update routes for organization slug
* Use organization slug for adding project
* Refactor to fetch organizations at sidebar component
* Update organization switcher based on searched project
* Refactor types in frontend
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Implement functionality to visit deployment
* Check and display domain details in overview tab for production branch
* Update fixtures to remove project name from deployment url
* Refactor and add uuid to typeorm entities
* Fix deployment url
* Display live domain details in project overview
* Use database query to fetch live production domain
* Display current deployment info in overview tab
* Add assign domain dialog box in deployments
* Add empty link for project settings in assign domain dialog box
* Use react router dom link
* Add sub domain to project entity
* Add deployment url with custom generated string
* Set nano id to deployment id
* Add sub domain while creating new project
* Use same id as in url
* Update readme steps for production build
* Update README
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add mutation for adding project member
* Add GQL client method for add project member
* Handle review comments
* Integrate add project member GQL client method
* Handle cascades for project members and user organizations
* Add null type to user.name and domain.redirectTo
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Make use of domain id for redirecting domains
* Add checks in backend to prevent chain redirecting and editing redirected domain
* Add self relation to domain entity and use it to create and edit domains
* Add self referencing relation to initialize db script
* Add redirectToId column in domain entity
* Remove isRedirected flag from domain entity
* Refactor edit domain dialog box
* Use dummy data for repository
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Change environment field to enum instead of array
* Update gql client for get environment variables query
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add and use createdBy field in deployment entity
* Use updated get deployments client method in UI
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add mutation to create new domain
* Update mutation to create two domains for www and non-www variant
* Add gql-client method and frontend to create domain
* Display fetched domains in domains tab panel using project id
* Fix graphql type for fetching domains
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Show project owner in member tab panel
* Implement mutation for rollback deployment
* Fix project members count
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Implement delete project functionality
* Use delete project client method in UI
* Refetch projects information on deleting project
* Use project's current deployment domain name for url
* Handle review changes
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add graphql mutation to redeploy deployment to production
* Implement frontend to redeploy deployment to production
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Create fixture data for remaining entities and load it in db
* Rename currProject to currentProject in frontend package
* Handle review changes
* Update readme for loading fixtures
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add fixture data and populate database with it
* Use node to run commands in package scripts
* Move test directory out of src directory
* Save projects with user and organization relation
* Refactor and add generalized function to load data
* Populate userOrganization entity with test data
* Change project id type from number to string
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>