Skip to content

Commit f68dde8

Browse files
gluonfieldclaude
andcommitted
feat: add projectId support to service mutations
- Add projectId field to schema for serviceDelete, serviceUnsetSecret, UpdateServiceInput, SetSecretsInput, DeleteSecretsInput - Add projectId to FindService query response - Update DeleteService and UnsetSecret callers for new signature - Regenerate genqlient types Currently passes nil for projectId (uses slug fallback). The backend prefers projectId when provided but falls back to workspace+slug lookup. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent f6a8c8c commit f68dde8

5 files changed

Lines changed: 65 additions & 28 deletions

File tree

‎cmd/delete.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ ink delete myapi -y`,
3838

3939
client := newClient()
4040

41-
result, err := gql.DeleteService(ctx(), client, name, projPtr(), wsPtr())
41+
result, err := gql.DeleteService(ctx(), client, name, projPtr(), nil, wsPtr())
4242
if err != nil {
4343
fatal(err.Error())
4444
}

‎cmd/secrets.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ var secretsUnsetCmd = &cobra.Command{
209209
key := args[1]
210210
client := newClient()
211211

212-
result, err := gql.UnsetSecret(ctx(), client, name, key, projPtr(), wsPtr())
212+
result, err := gql.UnsetSecret(ctx(), client, name, key, projPtr(), nil, wsPtr())
213213
if err != nil {
214214
fatal(err.Error())
215215
}

‎internal/gql/generated.go‎

Lines changed: 52 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎internal/gql/operations.graphql‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ query FindService($ws: String) {
4242
customDomain
4343
customDomainStatus
4444
envVars { key value }
45+
projectId
4546
project { slug }
4647
createdAt
4748
updatedAt
@@ -66,8 +67,8 @@ mutation UpdateService($input: UpdateServiceInput!) {
6667
}
6768
}
6869

69-
mutation DeleteService($name: String!, $project: String, $ws: String) {
70-
serviceDelete(name: $name, project: $project, workspaceSlug: $ws) {
70+
mutation DeleteService($name: String!, $project: String, $projectId: ID, $ws: String) {
71+
serviceDelete(name: $name, project: $project, projectId: $projectId, workspaceSlug: $ws) {
7172
serviceId
7273
name
7374
message
@@ -92,8 +93,8 @@ mutation DeleteSecrets($input: DeleteSecretsInput!) {
9293
}
9394
}
9495

95-
mutation UnsetSecret($name: String!, $key: String!, $project: String, $ws: String) {
96-
serviceUnsetSecret(name: $name, key: $key, project: $project, workspaceSlug: $ws) {
96+
mutation UnsetSecret($name: String!, $key: String!, $project: String, $projectId: ID, $ws: String) {
97+
serviceUnsetSecret(name: $name, key: $key, project: $project, projectId: $projectId, workspaceSlug: $ws) {
9798
serviceId
9899
name
99100
status

‎schema.graphql‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -613,20 +613,21 @@ extend type Mutation {
613613
"""Create a service and trigger its first deployment. The service name becomes {name}.ml.ink. Returns immediately while build runs async — poll serviceGet to track status."""
614614
serviceCreate(input: CreateServiceInput!): CreateServiceResult!
615615
"""Permanently delete a service and tear down its container, DNS, and custom domain."""
616-
serviceDelete(name: String!, project: String, workspaceSlug: String): DeleteServiceResult!
616+
serviceDelete(name: String!, project: String, projectId: ID, workspaceSlug: String): DeleteServiceResult!
617617
"""Update service configuration and trigger a redeployment. Only specified fields change. Can also redeploy without changes to pull latest code."""
618618
serviceUpdate(input: UpdateServiceInput!): UpdateServiceResult!
619619
"""Set env vars on a service. Merges with existing — new values override, unmentioned vars are preserved unless replace=true."""
620620
serviceSetSecrets(input: SetSecretsInput!): SetSecretsResult!
621621
"""Remove specific env var keys from a service. Triggers a redeploy."""
622622
serviceDeleteSecrets(input: DeleteSecretsInput!): SetSecretsResult!
623623
"""Remove a single env var from a service. Triggers a redeploy."""
624-
serviceUnsetSecret(name: String!, key: String!, project: String, workspaceSlug: String): SetSecretsResult!
624+
serviceUnsetSecret(name: String!, key: String!, project: String, projectId: ID, workspaceSlug: String): SetSecretsResult!
625625
}
626626

627627
input SetSecretsInput {
628628
name: String!
629629
project: String
630+
projectId: ID
630631
workspaceSlug: String
631632
envVars: [EnvVarInput!]!
632633
replace: Boolean = false
@@ -635,6 +636,7 @@ input SetSecretsInput {
635636
input DeleteSecretsInput {
636637
name: String!
637638
project: String
639+
projectId: ID
638640
workspaceSlug: String
639641
keys: [String!]!
640642
}
@@ -700,6 +702,8 @@ input UpdateServiceInput {
700702
"""Name of the service to update (required). Identifies the service within the project."""
701703
name: String!
702704
project: String
705+
"""Immutable project ID. Preferred over project slug."""
706+
projectId: ID
703707
workspaceSlug: String
704708
source: String
705709
repo: String

0 commit comments

Comments
 (0)