feat: serverless worker create form wired to CreateWorkerDeployment API#3236
Draft
rossnelson wants to merge 11 commits intoworker-insightsfrom
Draft
feat: serverless worker create form wired to CreateWorkerDeployment API#3236rossnelson wants to merge 11 commits intoworker-insightsfrom
rossnelson wants to merge 11 commits intoworker-insightsfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
| localFilters = [ | ||
| createFilter({ | ||
| attribute, | ||
| type: 'Keyword', |
Contributor
There was a problem hiding this comment.
⚠️ Type 'string | null' is not assignable to type 'string | undefined'.
| createFilter({ | ||
| attribute, | ||
| parenthesis: localFilters.length ? ')' : '', | ||
| type: 'Keyword', |
Contributor
There was a problem hiding this comment.
⚠️ Type 'string | null' is not assignable to type 'string | undefined'.
| }; | ||
|
|
||
| const superform = superForm(initialData, { | ||
| SPA: true, |
Contributor
There was a problem hiding this comment.
⚠️ Type 'ClientValidationAdapter<{ name: string; lambdaArn: string; iamRoleArn: string; minInstances?: number | undefined; maxInstances?: number | undefined; }, { name: string; lambdaArn: string; iamRoleArn: string; minInstances?: number | undefined; maxInstances?: number | undefined; }>' is not assignable to type 'ClientValidationAdapter<Partial<{ name: string; lambdaArn: string; iamRoleArn: string; region: string; minInstances: undefined; maxInstances: undefined; }>, Record<string, unknown>> | ValidatorsOption<...> | undefined'.
| ? String($form.minInstances) | ||
| : ''} | ||
| oninput={(e) => { | ||
| const val = (e.currentTarget as HTMLInputElement).value; |
Contributor
There was a problem hiding this comment.
⚠️ Type 'number | undefined' is not assignable to type 'undefined'.
| ? String($form.maxInstances) | ||
| : ''} | ||
| oninput={(e) => { | ||
| const val = (e.currentTarget as HTMLInputElement).value; |
Contributor
There was a problem hiding this comment.
⚠️ Type 'number | undefined' is not assignable to type 'undefined'.
|
|
||
| if (!filter || filter.value !== value) { | ||
| const newFilter: SearchAttributeFilter = createFilter({ | ||
| attribute, |
Contributor
There was a problem hiding this comment.
⚠️ Type 'string | null | undefined' is not assignable to type 'string | undefined'.
| /> | ||
| </div> | ||
| </div> | ||
| <CodecServerErrorBanner /> |
Contributor
There was a problem hiding this comment.
⚠️ Type 'WorkflowExecution | null' is not assignable to type 'WorkflowExecution'.
| {translate('workers.back-to-workers')} | ||
| </Link> | ||
| <span class="text-secondary">|</span> | ||
| <Link |
Contributor
There was a problem hiding this comment.
⚠️ Type 'string | undefined' is not assignable to type 'string'.
| </td> | ||
| <td> | ||
| <Link | ||
| class="inline-flex items-center gap-1" |
Contributor
There was a problem hiding this comment.
⚠️ Type 'string | undefined' is not assignable to type 'string'.
Contributor
|
9c01c45 to
751339c
Compare
751339c to
44488b5
Compare
Squashed 46 commits for clean rebase onto main.
…ypes
- Rewrite ComputeConfig types to scalingGroups map shape (real proto)
- Add deleteWorkerDeployment, deleteWorkerDeploymentVersion, createWorkerDeploymentVersion,
validateWorkerDeploymentVersionComputeConfig, buildLambdaComputeConfig, decodeLambdaProviderDetails
- Fix route-for-api.ts: version route split to {deploymentName}/{buildId}; add versions POST,
update-compute-config, validate-compute-config routes
- Add routeForWorkerDeploymentVersionCreate/Edit helpers
- Migrate delete-worker-modal to Svelte 5 onConfirm/onCancel callback props
- Wire compute-provider-picker to bindable prop with internal writable store sync
- New Create Version route + form (versions/create)
- New Edit Version route + form (versions/[buildId]/edit) with delete flow
- Deployment detail: replace header CTAs, remove compute cards, add Compute column,
expandable rows, kebab menu; migrate $app/stores → $app/state
- Create deployment form: add Build ID field, two-call submit (createDeployment + createVersion),
replace min/max instances with real scaling fields
- Update Zod schemas: createDeploymentSchema, createVersionSchema, editVersionSchema
- Update server go.mod to go.temporal.io/api v1.62.3-0.20260325221344 (adds CreateWorkerDeploymentVersion HTTP gateway)
…on table row - Add namespace prop and derive workflowHref and editHref from it (removes $page.params dependency) - Add expandable row showing Lambda ARN and IAM role ARN decoded from compute config - Show compute provider type in compute column - Replace go-to-workflows link with actions menu (Edit Version + Go to Workflows)
… worker form - Create deployment → create version → validate compute config - Rollback deployment if version creation fails (uses conflictToken) - Rollback version then deployment if validation fails - Route validate error message to lambdaArn/iamRoleArn field or form-level - Treat Unimplemented (501) from validate endpoint as success - Fix missing await on onSubmit in form component's onUpdate handler
- Show destructive delete button in deployment header when versionSummaries is empty - Add DeleteDeploymentModal with type-DELETE confirmation - Rollback navigates to deployments list on success - Show inline error on delete failure
44488b5 to
d7f777f
Compare
…s-lambda
- provider.type: 'lambda' -> 'aws-lambda' (server now validates against allowed types)
- scaler.type: 'lambda' -> 'no-sync' (valid scaling algorithm for invoke-based providers)
- provider details keys: {lambdaArn, iamRoleArn} -> {arn, role} (keys the aws-lambda provider reads)
- move form-level error above submit buttons so it's visible after submit
- Deployment list page with status badges and compute type indicators
- Deployment detail page with version table (build ID, status, compute, deployed date, actions)
- Version row expand: lazy-loads version details on demand using {#await} pattern, shows lambda ARN, IAM role, and scaler params for compute versions
- Actions menu: edit version, go to workflows, set as current, delete version
- Create/edit version forms with lambda compute config and scaler options
- Delete deployment/version with conflict token support
- i18n keys for all new strings
- Bump server go.mod for worker heartbeat support
- Drop {#each columns} loop from version-table-row, render cells directly
- Extract VersionComputeDetails sub-component for expanded row
- Add Config Status column (renders — until API returns data)
- Update context menu: Edit, Validate Connection, View Workflows, Delete
- Wire up Validate Connection to validateWorkerDeploymentVersionComputeConfig
- Add validate result modal with loading skeleton
- Fix compute badge rendering — in deployment list row
- Remove "Since [date]" from build status column (not in Figma design)
- Add i18n keys: edit, validate-connection, validate-connection-error/valid/invalid
- Extract VersionActionsMenu, ValidateConnectionModal, DeleteVersionModal, and DeploymentHeader from version-table-row and deployment page - Add CapabilityGuard to Edit and Delete menu items in version actions - Add CapabilityGuard to Create New Version and Delete Deployment buttons - Enable editServerlessDeployment and deleteServerlessDeployment in DEV
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/workers/deployments/serverless/CreateWorkerDeploymentAPI: name →deploymentName, lambdaArn/iamRoleArn →computeConfig.provider.detailJson, min/maxInstances →computeConfig.scalerarn:aws:lambda:<region>:...)onUpdatehandler) instead of a separate "Validate Connection" button — errors surface inline under the respective fieldsComputeProvider,ComputeScaler,CreateWorkerDeploymentRequesttypesTest plan
CreateWorkerDeploymentwith correct payload (region extracted from ARN)