2024-01-17 04:32:06 +00:00
|
|
|
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!]
|
|
|
|
createdAt: String!
|
|
|
|
updatedAt: 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!
|
2024-01-24 14:47:43 +00:00
|
|
|
organization: Organization!
|
2024-01-29 11:01:03 +00:00
|
|
|
icon: String
|
2024-01-17 04:32:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type ProjectMember {
|
|
|
|
id: String!
|
|
|
|
member: User!
|
|
|
|
permissions: [Permission!]!
|
|
|
|
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!
|
2024-01-30 10:18:50 +00:00
|
|
|
createdBy: User!
|
2024-01-17 04:32:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type Domain {
|
|
|
|
id: String!
|
|
|
|
branch: String!
|
|
|
|
name: String!
|
|
|
|
isRedirected: Boolean!
|
|
|
|
status: DomainStatus!
|
|
|
|
createdAt: String!
|
|
|
|
updatedAt: String!
|
|
|
|
}
|
|
|
|
|
|
|
|
type EnvironmentVariable {
|
|
|
|
id: String!
|
2024-01-30 13:47:55 +00:00
|
|
|
environment: Environment!
|
2024-01-17 04:32:06 +00:00
|
|
|
key: String!
|
|
|
|
value: String!
|
|
|
|
createdAt: String!
|
|
|
|
updatedAt: String!
|
|
|
|
}
|
|
|
|
|
|
|
|
type Query {
|
|
|
|
user: User!
|
|
|
|
organizations: [Organization!]
|
|
|
|
projects: [Project!]
|
2024-01-29 11:01:03 +00:00
|
|
|
projectsInOrganization(organizationId: String!): [Project!]
|
2024-01-25 06:28:38 +00:00
|
|
|
project(projectId: String!): Project
|
2024-01-17 04:32:06 +00:00
|
|
|
deployments(projectId: String!): [Deployment!]
|
2024-01-25 05:14:51 +00:00
|
|
|
environmentVariables(projectId: String!): [EnvironmentVariable!]
|
2024-01-22 09:42:08 +00:00
|
|
|
projectMembers(projectId: String!): [ProjectMember!]
|
2024-01-24 14:47:43 +00:00
|
|
|
searchProjects(searchText: String!): [Project!]
|
2024-01-29 12:48:43 +00:00
|
|
|
domains(projectId: String!): [Domain!]
|
2024-01-22 09:42:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type Mutation {
|
|
|
|
removeMember(memberId: String!): Boolean!
|
2024-01-23 09:31:33 +00:00
|
|
|
addEnvironmentVariables(projectId: String!, environmentVariables: [AddEnvironmentVariableInput!]): Boolean!
|
2024-01-25 05:47:44 +00:00
|
|
|
updateDeploymentToProd(deploymentId: String!): Boolean!
|
2024-01-30 08:31:09 +00:00
|
|
|
updateProject(projectId: String!, projectDetails: UpdateProjectInput): Boolean!
|
2024-01-25 12:04:13 +00:00
|
|
|
redeployToProd(deploymentId: String!): Boolean!
|
2024-01-29 11:01:03 +00:00
|
|
|
deleteProject(projectId: String!): Boolean!
|
2024-01-29 12:09:51 +00:00
|
|
|
rollbackDeployment(projectId: String!, deploymentId: String!): Boolean!
|
2024-01-29 12:48:43 +00:00
|
|
|
addDomain(projectId: String!, domainDetails: AddDomainInput!): Boolean!
|
2024-01-30 08:31:09 +00:00
|
|
|
updateDomain(domainId: String!, domainDetails: UpdateDomainInput!): Boolean!
|
2024-01-23 09:31:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
input AddEnvironmentVariableInput {
|
|
|
|
environments: [Environment!]!
|
|
|
|
key: String!
|
|
|
|
value: String!
|
2024-01-17 04:32:06 +00:00
|
|
|
}
|
2024-01-25 06:28:38 +00:00
|
|
|
|
|
|
|
input UpdateProjectInput {
|
|
|
|
name: String
|
|
|
|
description: String
|
|
|
|
}
|
2024-01-29 12:48:43 +00:00
|
|
|
|
|
|
|
input AddDomainInput {
|
|
|
|
name: String!
|
|
|
|
}
|
2024-01-30 08:31:09 +00:00
|
|
|
|
|
|
|
input UpdateDomainInput {
|
|
|
|
name: String
|
|
|
|
isRedirected: Boolean
|
|
|
|
branch: String
|
|
|
|
}
|