Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 17 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,27 @@ A comprehensive web-based developer toolkit built with Flask. Simple, fast, and

## Features

- **9 Developer Tools** - JSON/YAML formatters, converters, diff viewer, regex tester, and more
- **11 Developer Tools** - JSON/YAML formatters, converters, diff viewer, regex tester, aws-sf-viewer and more
- **History Tracking** - Save and retrieve tool usage across sessions
- **Configurable** - Enable/disable tools via configuration
- **Modern UI** - Clean, responsive interface
- **Privacy-First** - All processing happens locally

## Available Tools

| Tool | Description | Status |
|------|-------------|--------|
| **Scratchpad** | Simple note-taking tool with history tracking | Stable |
| **JSON Tool** | Format, validate, and minify JSON data | Stable |
| **YAML Tool** | Format, validate, and work with YAML data | Stable |
| **JSON-YAML-XML Converter** | Bidirectional format conversion | Stable |
| **Text Diff Tool** | Compare text side-by-side with highlighting | Stable |
| **Regex Tester** | Interactive regex testing with live highlighting | Stable |
| **Cron Parser** | Parse cron expressions with human-readable output | Stable |
| **Scientific Calculator** | Advanced calculator with graphing support | Stable |
| **JWT Decoder** | Decode and analyze JWT tokens | Stable |
| **Sources Manager** | Manage data sources (local, S3, SFTP, HTTP) | Stable |
| **AWS Step Functions Viewer** | Visualize state machines | Beta (disabled by default) |
| Tool | Description | Status |
|------|-------------|-----------------|
| **Scratchpad** | Simple note-taking tool with history tracking | Disabled (Beta) |
| **JSON Tool** | Format, validate, and minify JSON data | Stable |
| **YAML Tool** | Format, validate, and work with YAML data | Stable |
| **JSON-YAML-XML Converter** | Bidirectional format conversion | Stable |
| **Text Diff Tool** | Compare text side-by-side with highlighting | Stable |
| **Regex Tester** | Interactive regex testing with live highlighting | Stable |
| **Cron Parser** | Parse cron expressions with human-readable output | Stable |
| **Scientific Calculator** | Advanced calculator with graphing support | Stable |
| **JWT Decoder** | Decode and analyze JWT tokens | Stable |
| **Sources Manager** | Manage data sources (local, S3, SFTP, HTTP) | Stable |
| **AWS Step Functions Viewer** | Visualize state machines | Beta |

## Screenshots

Expand All @@ -55,6 +55,9 @@ A comprehensive web-based developer toolkit built with Flask. Simple, fast, and
### Scientific Calculator
![Scientific Calculator](screenshots/scientific-calculator.png)

### AWS SF Viewer (Beta)
![AWS SF Viewer](screenshots/aws-sf-viewer.png)

## Quick Start

```bash
Expand Down
288 changes: 288 additions & 0 deletions frontend/static/examples/aws-sf/ultra-complex-workflow.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,288 @@
{
"Comment": "Ultra-complex orchestration with nested parallelism, map, saga, and callbacks",
"StartAt": "ValidateRequest",
"States": {

"ValidateRequest": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:validate",
"TimeoutSeconds": 10,
"Retry": [{
"ErrorEquals": ["States.ALL"],
"IntervalSeconds": 2,
"MaxAttempts": 3,
"BackoffRate": 2
}],
"Catch": [{
"ErrorEquals": ["States.ALL"],
"Next": "FailWorkflow"
}],
"Next": "PreflightChecks"
},

"PreflightChecks": {
"Type": "Parallel",
"Next": "MainProcessing",
"Branches": [

{
"StartAt": "CheckQuota",
"States": {
"CheckQuota": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:check-quota",
"End": true
}
}
},

{
"StartAt": "CheckDependencies",
"States": {
"CheckDependencies": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:check-deps",
"End": true
}
}
},

{
"StartAt": "CheckFeatureFlags",
"States": {
"CheckFeatureFlags": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:feature-flags",
"End": true
}
}
}
]
},

"MainProcessing": {
"Type": "Parallel",
"Next": "EvaluateGlobalRisk",
"Branches": [

{
"StartAt": "IngestPipeline",
"States": {
"IngestPipeline": {
"Type": "Parallel",
"Next": "PersistRawData",
"Branches": [

{
"StartAt": "PullFromS3",
"States": {
"PullFromS3": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:pull-s3",
"End": true
}
}
},

{
"StartAt": "PullFromAPI",
"States": {
"PullFromAPI": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:pull-api",
"Retry": [{
"ErrorEquals": ["States.Timeout"],
"IntervalSeconds": 5,
"MaxAttempts": 3
}],
"End": true
}
}
}

]
},

"PersistRawData": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:persist-raw",
"End": true
}
}
},

{
"StartAt": "RiskAssessment",
"States": {
"RiskAssessment": {
"Type": "Parallel",
"Next": "ComputeRiskScore",
"Branches": [

{
"StartAt": "FraudScan",
"States": {
"FraudScan": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:fraud-scan",
"End": true
}
}
},

{
"StartAt": "ComplianceScan",
"States": {
"ComplianceScan": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:compliance",
"End": true
}
}
},

{
"StartAt": "AnomalyDetection",
"States": {
"AnomalyDetection": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:anomaly",
"End": true
}
}
}

]
},

"ComputeRiskScore": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:risk-score",
"End": true
}
}
},

{
"StartAt": "MetadataPipeline",
"States": {
"MetadataPipeline": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:metadata",
"End": true
}
}
}
]
},

"EvaluateGlobalRisk": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.risk.score",
"NumericGreaterThan": 80,
"Next": "ManualApproval"
}
],
"Default": "ProcessItems"
},

"ProcessItems": {
"Type": "Map",
"ItemsPath": "$.items",
"MaxConcurrency": 10,
"Iterator": {
"StartAt": "ItemRouting",
"States": {

"ItemRouting": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.type",
"StringEquals": "FAST",
"Next": "FastItemFlow"
}
],
"Default": "SlowItemFlow"
},

"FastItemFlow": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:fast-item",
"End": true
},

"SlowItemFlow": {
"Type": "Parallel",
"Next": "FinalizeItem",
"Branches": [

{
"StartAt": "TransformItem",
"States": {
"TransformItem": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:transform",
"End": true
}
}
},

{
"StartAt": "EnrichItem",
"States": {
"EnrichItem": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:enrich",
"End": true
}
}
}

]
},

"FinalizeItem": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:finalize-item",
"End": true
}
}
},
"Next": "FinalizeWorkflow"
},

"ManualApproval": {
"Type": "Task",
"Resource": "arn:aws:states:::sns:publish.waitForTaskToken",
"TimeoutSeconds": 86400,
"HeartbeatSeconds": 3600,
"Parameters": {
"Message": {
"TaskToken.$": "$.Task.Token",
"Input.$": "$"
},
"TopicArn": "arn:aws:sns:us-east-1:123:manual-approval"
},
"Next": "ProcessItems"
},

"FinalizeWorkflow": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123:function:finalize",
"Next": "SucceedWorkflow"
},

"SucceedWorkflow": {
"Type": "Succeed"
},

"FailWorkflow": {
"Type": "Fail",
"Error": "WorkflowFailed",
"Cause": "Unhandled failure"
}
}
}
Loading