Commit Graph

98 Commits

Author SHA1 Message Date
ef89d69577
Implement creating project by importing repository (#49)
* Implement create project with import repository

* Add button for creating project in deploy step
2024-02-01 18:10:15 +05:30
0aa35d05f4
Implement functionality to add project members (#48)
* 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>
2024-02-01 15:34:17 +05:30
7e2a313012
Implement functionality to add and delete Deploy webhooks (#47)
* Add mutation to add webhooks

* Implement frontend to add webhooks and refactor code to use updateProject resolver

* Implement functionality to delete webhooks

* Refactor webhook card component

* Update readme for frontend env GitHub OAuth client ID

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 14:04:07 +05:30
aa49bb0de2 Implement functionality to update production branch in project settings (#60)
* Add mutation to update prod branch for project

* Implement frontend to update production branch

* Handle review changes

* Update README for Github creating OAuth app

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
1d58beb2ec Implement functionality to delete domain (#59)
* Implement functionality to delete domain

* Remove redirectToId from frontend

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
3a7f16467e Save gitHub token in DB and unauthenticate on expiry (#58) 2024-02-01 11:37:57 +05:30
0dd6c7702a Implement functionality for editing domain (#57)
* 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>
2024-02-01 11:37:57 +05:30
ace27c7eae Implement functionality to update project member permissions in settings (#56)
* Add mutation to update permissions of project member

* Use update project member permission client method in UI

* Handle review changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
b5e7554c26 Integrate GQL mutations for updating and deleting environment variables in frontend (#55)
* Use edit and delete environment variable gql client method

* Handle review changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
c8c6f66ed2 Add mutations for edit and delete environment variables (#54)
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
e1e9a7063e Implement Github authentication to show repositories list (#45)
* Use react-oauth-popup for github authentication popup

* Fetch auth token and use in app to fetch list of repositories

* Get client id and secret from config

* Use GitHub search API for fetching repos

* Use debounce for searching repos and projects
2024-02-01 11:37:57 +05:30
2f8d21baf5 Update environment variable entity schema to update them individually (#53)
* Change environment field to enum instead of array

* Update gql client for get environment variables query

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
8ead083ab3 Display searched project from different organization (#52)
* Refactor to remove use of organization project

* Remove organization project from member tab panel

* Handle review changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
8bbe2583cb Add createdBy column in deployments table (#51)
* Add and use createdBy field in deployment entity

* Use updated get deployments client method in UI

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
d97794f1bf Integrate rollback deployment GQL mutation in frontend (#49)
* Use rollback deployment client in UI

* Check if deployements domain is undefined

* Fix typo

* Rename variable to current deployment

* Handle deployment domain relation on rollback

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
fdf06f9bd0 Add GQL mutation for updating domain (#50)
* Pass data for all domains in edit domain dialog box

* Add mutation to update domain by id

* implement front end and gql client method to edit domain

* Rename arguments of resolver function to update domain and project

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
a34e2286a6 Implement functionality for adding new domain in project settings (#48)
* 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>
2024-02-01 11:37:57 +05:30
8c38d4788e Add GQL mutation for rollback deployment (#46)
* Show project owner in member tab panel

* Implement mutation for rollback deployment

* Fix project members count

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
1ae1564878 Add GQL mutation to delete project (#43)
* 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>
2024-02-01 11:37:57 +05:30
cfb4b4637c Add script to delete existing database (#44)
* Fix deployment creation time and hard coded title

* Add delete database script

* Use database file path from config file

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
0feeb9408d Add GQL mutation for redeploying deployment to production (#42)
* Add graphql mutation to redeploy deployment to production

* Implement frontend to redeploy deployment to production

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
5310d7c7d0 Add GQL mutation for updating project data in general settings tab (#41)
* Use update project gql client method in UI

* Handle save project button based on form change

* Fix import order

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
61120ac44a Add GQL mutation for updating Project entity data (#40)
* Add update and query method for project

* Rename variables to update result

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
2fb048e8ab Add GQL mutation to update deployment to production (#39)
* Add mutation to update deployment to production

* Implement gql client mutation and frontend to update deployment to production

* Add toast message when deployment is changed to production

* Throw error from init db script if db aleardy exists

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
44310d4eb8 Add and refresh environment variables in project settings tab (#37)
* Create and use add environment variables gql client method

* Implement get environment variables method

* Display fetched environment variables

* Refactor create environment variables submit handler

* Use environment variables type from gql-client

* Add fixtures for project member

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
c2b997a17b Add GQL query for projects search in app (#38)
* Find projects based on search text

* Use get search projects client method in UI

* Fetch searched projects inside useCombobox hook

* Get searched project from project entity

* Remove non required search projects filtering

* Fetch projects if user is owner or project member

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
cbc394f9f8 Handle remove member operation in frontend (#32)
* Add remove member gql client method

* Handle remove member UI operation

* Refactor fetching of project members

* Rename type MemberPermission to ProjectMember

* Add types to gql client response

* Remove circular dependency in gql client types

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
02f7ebb9bd Add checks for mutations and a mutation to add environment variables to project (#33)
* Add mutation to add environment variables by project id

* Add checks while removing project members

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
58e20c15db Add a mutation to remove project member by member id (#30)
* Add mutation to remove project member by member id

* Add query to fetch project members by project id

* Handle review changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
2d7e56c0e1 Add fixtures for remaining entities in database initialization script (#36)
* 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>
2024-02-01 11:37:57 +05:30
890603061f Add script to load fixture data in database (#34)
* 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>
2024-02-01 11:37:57 +05:30
prathamesh0
3829485672 Handle if organizations is empty (#31)
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
d4b0659307 Update instructions and general package cleanup (#29)
* Update root readme and setup depcheck

* Use fetched domain data in edit domain dialog box

* Use fetched project data in general tab

* Rename files in gql-client package

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
7d54280d5c Add type for outlet context used for projects data (#28)
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
f9e4d8ebd5 Use fetched domains data in domains panel (#27)
* Use fetched domains data and use it in domains page

* Add record field to fetched domain data

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
63b7f4e7de Display fetched data in environment variables tab panel (#26)
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
d2d26885ce Use fetched project members data in members tab panel (#25)
* Use fetched project members data in members tab panel

* Handle review changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
d2187cbec2 Display fetched deployments data in deployments tab (#24)
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
af021d3357 Refactor to fetch organization and deployment details in the parent component (#23)
* Refactor to fetch organization details in the parent component

* Fetch and use deployment details for a project

* Remove deployment field from ProjectDetails type

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
62c969d1ff Fetch additional projects data and implement resolver for deployments query (#22)
* Add resolver function for fetching all deployments for a project

* Fetch project members while fetching organization data

* Map db project member and deployment entity to graphql type

* Fetch environment variables data while fetching organizations

* Add domain field in deployment

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
9f1306f9cd Integrate gql-client in frontend (#21)
* Integrate gql-client in frontend app

* Populate home page information using gql-client

* Remove non required fields from organizations query

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
1f192444c4 Implement GQL resolver to get organizations data (#20)
* Add resolver method for getting organizations

* Fetch project data along with organizations from db

* Refactor code to map db project entity to graphql type

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
dc88b2c301 Set up a GQL client package (#19)
* Set up GQL client package

* Add client method to get user

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
neerajvijay1997
e4c099f8c3 Refactor database setup and add user context to GQL requests (#17)
* Add context to each request

* Implement get user db query

* Move constants to a separate file

* Refactor database init method
2024-02-01 11:37:57 +05:30
prathamesh0
4d00cfb8f0 Add graphql schema (#18)
* Add graphql schema

* Remove circular references in gql schema

* Remove unnecessary todos

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
neerajvijay1997
f287929e94 Implement GraphQL server setup (#16)
* Set up gql server

* Get config data from environment file
2024-02-01 11:37:57 +05:30
Ashwin Phatak
ea3addfd61
Backend package with db models (#43)
* Setup backend package with express server (#11)

* Setup backend package with express server

* Rename ts.config.json to tsconfig.json

* Update lint setup in backend package

* Add a dummy typeorm entity

* Remove dummy entity

---------

Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>

* Setup database connection (#13)

* Setup database connection

* Refactor database initialization into separate function

* Rename index.ts to server.ts

* Use debug package for logging

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>

* Create entities for ER models (#14)

* Add entity for domain

* Add entity for environment variable

* Add entity for project

* Add entity for deployment

* git ignore db directory

* Add entity for organization

* Add entity for user organization and project member

* Add foreign key user and organization to project

---------

Co-authored-by: neerajvijay1997 <111040298+neerajvijay1997@users.noreply.github.com>
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-01-16 13:40:14 +05:30
c61df21a00
Add new member dialog in project settings tab (#42)
* Implement add member dialog

* Fix typo

* Display the added pending member

* Seperate form submit handler for add member dialog

* Enable production branch input on repo connected

* Refactor project to include members permissions

* Refactor add member handler

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-01-09 12:25:37 +05:30
0894d8da3c
Add dropdown for updating member permissions (#41)
* Implement functionality to permissions dropdown

* Find project owner from projects json

* Show selected option in dropdown

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-01-08 17:57:34 +05:30
2bd378ada5
Add updates in previously implemented pages (#40)
* Add cancel button in deployments status filter

* Add namecheap hyperlink in domain config page

* Add disconnect repo confirm dialog
2024-01-08 16:58:58 +05:30