Skip to content

Commit

Permalink
feat: add step functions execution form to library
Browse files Browse the repository at this point in the history
  • Loading branch information
FilipPyrek committed May 16, 2024
1 parent 2e81d7b commit 47851fb
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 0 deletions.
3 changes: 3 additions & 0 deletions presets/library/step-functions-execution-form/preset.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { extend, extract } from '../../../src/index.js'

export default [extend('presets/base/typescript-cdk'), extract()]
25 changes: 25 additions & 0 deletions presets/library/step-functions-execution-form/templates/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<p align="center">
<a href="https://buttonize.io">
<img width="350" alt="Buttonize.io" src="https://user-images.githubusercontent.com/6282843/212024942-9fd50774-ea26-48ba-b2cf-ca2584498c9a.png">
</a>
</p>

---

## StepFunctions Execution Form

[![StepFunctions Execution Form](https://github.com/buttonize/create-buttonize/assets/6282843/c3a40e5f-ed7b-4561-8e0f-375fcde9ef52)](https://buttonize.io/library/step-functions-execution-form)

Learn more about StepFunctions Execution Form Construct [here](https://buttonize.io/library/step-functions-execution-form).

## CDK

The `cdk.json` file tells the CDK Toolkit how to execute your app.

### Useful commands

* `npm run build` compile typescript to js
* `npm run watch` watch for changes and compile
* `npx cdk deploy` deploy this stack to your default AWS account/region
* `npx cdk diff` compare deployed stack with current state
* `npx cdk synth` emits the synthesized CloudFormation template
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import * as cdk from 'aws-cdk-lib'
import { Pass, StateMachine } from 'aws-cdk-lib/aws-stepfunctions'
import { Buttonize, Input } from 'buttonize/cdk'
import { StepFunctionsExecutionForm } from 'buttonize/library'
import { Construct } from 'constructs'

export class ExampleStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props)

Buttonize.init(this, {
apiKey: '@@apiKey'
})

const stateMachine = new StateMachine(this, 'StateMachine', {
definition: new Pass(this, 'PassTest')
})

new StepFunctionsExecutionForm(this, 'ExecutionForm', {
name: 'Product cache invalidation panel',
description:
'Trigger invalidation of a product in all the caches in the in the company systems',
stateMachine,
submitButtonLabel: 'Invalidate',
fields: [
Input.text({
id: 'id',
label: 'Product ID'
}),
Input.select({
id: 'reason',
options: [
{ label: 'New manual update', value: 'manual_update' },
{ label: 'System bug', value: 'bug' }
]
})
],
executionInput: {
operation: 'invalidate',
product: {
pid: '{{id}}'
},
metadata: {
reasonStatement: '{{reason.value}}'
}
}
})
}
}

0 comments on commit 47851fb

Please sign in to comment.