forked from cerc-io/snowballtools-base
Nabarun Gogoi
0aa35d05f4
* 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>
191 lines
3.9 KiB
GraphQL
191 lines
3.9 KiB
GraphQL
enum Role {
|
|
Owner
|
|
Maintainer
|
|
Reader
|
|
}
|
|
|
|
enum Permission {
|
|
View
|
|
Edit
|
|
}
|
|
|
|
enum Environment {
|
|
Production
|
|
Preview
|
|
Development
|
|
}
|
|
|
|
enum DeploymentStatus {
|
|
Building
|
|
Ready
|
|
Error
|
|
}
|
|
|
|
enum DomainStatus {
|
|
Live
|
|
Pending
|
|
}
|
|
|
|
type User {
|
|
id: String!
|
|
name: String
|
|
email: String!
|
|
organizations: [Organization!]
|
|
projects: [Project!]
|
|
isVerified: Boolean!
|
|
createdAt: String!
|
|
updatedAt: String!
|
|
gitHubToken: String
|
|
}
|
|
|
|
type Organization {
|
|
id: String!
|
|
name: String!
|
|
projects: [Project!]
|
|
createdAt: String!
|
|
updatedAt: String!
|
|
members: [OrganizationMember!]
|
|
}
|
|
|
|
type OrganizationMember {
|
|
id: String!
|
|
member: User!
|
|
role: Role!
|
|
createdAt: String!
|
|
updatedAt: String!
|
|
}
|
|
|
|
type Project {
|
|
id: String!
|
|
owner: User!
|
|
deployments: [Deployment!]
|
|
name: String!
|
|
repository: String!
|
|
prodBranch: String!
|
|
description: String
|
|
template: String
|
|
framework: String!
|
|
webhooks: [String!]
|
|
members: [ProjectMember!]
|
|
environmentVariables: [EnvironmentVariable!]
|
|
createdAt: String!
|
|
updatedAt: String!
|
|
organization: Organization!
|
|
icon: String
|
|
}
|
|
|
|
type ProjectMember {
|
|
id: String!
|
|
member: User!
|
|
permissions: [Permission!]!
|
|
isPending: Boolean!
|
|
createdAt: String!
|
|
updatedAt: String!
|
|
}
|
|
|
|
type Deployment {
|
|
id: String!
|
|
domain: Domain
|
|
branch: String!
|
|
commitHash: String!
|
|
title: String!
|
|
environment: Environment!
|
|
isCurrent: Boolean!
|
|
status: DeploymentStatus!
|
|
createdAt: String!
|
|
updatedAt: String!
|
|
createdBy: User!
|
|
}
|
|
|
|
type Domain {
|
|
id: String!
|
|
branch: String!
|
|
name: String!
|
|
redirectTo: Domain
|
|
status: DomainStatus!
|
|
createdAt: String!
|
|
updatedAt: String!
|
|
}
|
|
|
|
type EnvironmentVariable {
|
|
id: String!
|
|
environment: Environment!
|
|
key: String!
|
|
value: String!
|
|
createdAt: String!
|
|
updatedAt: String!
|
|
}
|
|
|
|
type Query {
|
|
user: User!
|
|
organizations: [Organization!]
|
|
projects: [Project!]
|
|
projectsInOrganization(organizationId: String!): [Project!]
|
|
project(projectId: String!): Project
|
|
deployments(projectId: String!): [Deployment!]
|
|
environmentVariables(projectId: String!): [EnvironmentVariable!]
|
|
projectMembers(projectId: String!): [ProjectMember!]
|
|
searchProjects(searchText: String!): [Project!]
|
|
domains(projectId: String!): [Domain!]
|
|
}
|
|
|
|
type AuthResult {
|
|
token: String!
|
|
}
|
|
|
|
type Mutation {
|
|
removeProjectMember(projectMemberId: String!): Boolean!
|
|
updateProjectMember(projectMemberId: String!, data: UpdateProjectMemberInput): Boolean!
|
|
addProjectMember(projectId: String!, data: AddProjectMemberInput): Boolean!
|
|
addEnvironmentVariables(projectId: String!, environmentVariables: [AddEnvironmentVariableInput!]): Boolean!
|
|
removeEnvironmentVariable(environmentVariableId: String!): Boolean!
|
|
updateEnvironmentVariable(environmentVariableId: String!, environmentVariable: UpdateEnvironmentVariableInput!): Boolean!
|
|
updateDeploymentToProd(deploymentId: String!): Boolean!
|
|
updateProject(projectId: String!, projectDetails: UpdateProjectInput): Boolean!
|
|
redeployToProd(deploymentId: String!): Boolean!
|
|
deleteProject(projectId: String!): Boolean!
|
|
deleteDomain(domainId: String!): Boolean!
|
|
rollbackDeployment(projectId: String!, deploymentId: String!): Boolean!
|
|
addDomain(projectId: String!, domainDetails: AddDomainInput!): Boolean!
|
|
updateDomain(domainId: String!, domainDetails: UpdateDomainInput!): Boolean!
|
|
authenticateGitHub(code: String!): AuthResult!
|
|
unauthenticateGitHub: Boolean!
|
|
}
|
|
|
|
input AddEnvironmentVariableInput {
|
|
environments: [Environment!]!
|
|
key: String!
|
|
value: String!
|
|
}
|
|
|
|
input UpdateProjectInput {
|
|
name: String
|
|
description: String
|
|
prodBranch: String
|
|
webhooks: [String!]
|
|
}
|
|
|
|
input AddDomainInput {
|
|
name: String!
|
|
}
|
|
|
|
input UpdateDomainInput {
|
|
name: String
|
|
branch: String
|
|
redirectToId: String
|
|
}
|
|
|
|
input UpdateEnvironmentVariableInput {
|
|
key: String
|
|
value: String
|
|
}
|
|
|
|
input AddProjectMemberInput {
|
|
email: String!
|
|
permissions: [Permission!]
|
|
}
|
|
|
|
input UpdateProjectMemberInput {
|
|
permissions: [Permission]
|
|
}
|