{"id":25840039,"url":"https://github.com/sethkor/lexbelt","last_synced_at":"2026-02-19T21:51:44.596Z","repository":{"id":46641534,"uuid":"179910633","full_name":"sethkor/lexbelt","owner":"sethkor","description":"A tool belt for deploying AWS Lex bots using yaml or json files easily.","archived":false,"fork":false,"pushed_at":"2021-10-02T06:49:31.000Z","size":63,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-25T04:54:53.546Z","etag":null,"topics":["ai","automation","aws","cd","chatbot","chatbots","ci","connect","go","golang","json","lex","sumerian","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sethkor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-07T02:46:46.000Z","updated_at":"2021-10-02T06:47:59.000Z","dependencies_parsed_at":"2022-09-06T23:11:56.259Z","dependency_job_id":null,"html_url":"https://github.com/sethkor/lexbelt","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/sethkor/lexbelt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethkor%2Flexbelt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethkor%2Flexbelt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethkor%2Flexbelt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethkor%2Flexbelt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sethkor","download_url":"https://codeload.github.com/sethkor/lexbelt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethkor%2Flexbelt/sbom","scorecard":{"id":813271,"data":{"date":"2025-08-11","repo":{"name":"github.com/sethkor/lexbelt","commit":"cff84b2e28f5774bfe3ce361cd9c4acdd46ff015"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/16 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.0.9 not signed: https://api.github.com/repos/sethkor/lexbelt/releases/50672569","Warn: release artifact v0.0.8 not signed: https://api.github.com/repos/sethkor/lexbelt/releases/50672558","Warn: release artifact v.0.0.7 not signed: https://api.github.com/repos/sethkor/lexbelt/releases/31648674","Warn: release artifact v0.0.6 not signed: https://api.github.com/repos/sethkor/lexbelt/releases/31588534","Warn: release artifact v0.0.5 not signed: https://api.github.com/repos/sethkor/lexbelt/releases/31392990","Warn: release artifact v0.0.9 does not have provenance: https://api.github.com/repos/sethkor/lexbelt/releases/50672569","Warn: release artifact v0.0.8 does not have provenance: https://api.github.com/repos/sethkor/lexbelt/releases/50672558","Warn: release artifact v.0.0.7 does not have provenance: https://api.github.com/repos/sethkor/lexbelt/releases/31648674","Warn: release artifact v0.0.6 does not have provenance: https://api.github.com/repos/sethkor/lexbelt/releases/31588534","Warn: release artifact v0.0.5 does not have provenance: https://api.github.com/repos/sethkor/lexbelt/releases/31392990"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0635","Warn: Project is vulnerable to: GO-2022-0646"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-23T13:38:32.547Z","repository_id":46641534,"created_at":"2025-08-23T13:38:32.547Z","updated_at":"2025-08-23T13:38:32.547Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29634417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T18:02:07.722Z","status":"ssl_error","status_checked_at":"2026-02-19T18:01:46.144Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","automation","aws","cd","chatbot","chatbots","ci","connect","go","golang","json","lex","sumerian","yaml"],"created_at":"2025-03-01T04:40:12.065Z","updated_at":"2026-02-19T21:51:44.578Z","avatar_url":"https://github.com/sethkor.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lexbelt\nA tool to provision Amazon Lex using YAML or JSON\n\nAmazon Lex is amazing, except it has very low automation.  There's no CloudFormation (CFN) for it for it.\n\nAlso, when trying to create or update anything, the CLI wants you to pass in a checksum so it can figure out if it needs to update or create, this can be annoying.\n\n`lexbelt` fixes all this.\n\n```\nusage: lexbelt [\u003cflags\u003e] \u003ccommand\u003e [\u003cargs\u003e ...]\n\nAWS Lex CLI utilities\n\nFlags:\n  -h, --help             Show context-sensitive help (also try --help-long and --help-man).\n      --profile=PROFILE  AWS credentials/config file profile to use\n      --region=REGION    AWS region\n  -v, --version          Show application version.\n\nCommands:\n  help [\u003ccommand\u003e...]\n    Show help.\n\n  put-slot-type --name=NAME \u003cfile\u003e\n    Adds or updates a slot type\n\n  put-intent --name=NAME \u003cfile\u003e\n    Adds or updates an intent\n\n  put-bot --name=NAME [\u003cflags\u003e] \u003cfile\u003e\n    Adds or updates a bot\n\n  export [\u003cflags\u003e]\n    Export existing AWS Lex configs and write to workspace\n```\n## Getting lexbelt\nEasiest way to install if you're on a Mac or Linux (amd64 or arm64)  is to use [Homebrew](https://brew.sh/)\n\nType:\n\n```\nbrew tap sethkor/tap\nbrew install lexbelt\n```\n\nFor other platforms take a look at the releases in Github.  I build binaries for:\n\n|OS            | Architecture                           |\n|:------------ |:-------------------------------------- |\n|Mac (Darwin)  | amd64 (aka x86_64)                     |\n|Linux         | amd64, arm64, 386 (32 bit) |\n|Windows       | amd64, 386 (32 bit)                   |\n\nLet me know if you would like a particular os/arch binary regularly built.\n\nLexbelt expects your workspace to look like this:\n```\nyour-lex-workspace\n   ├──slots\n   ├──intents\n   └──bots\n\n```\nThe reason why is that it intelligently looks for dependecies when deploying bots or intents and will automatically\ndeploy any dependecies needed.\n\nLexbelt supports publishing, that is promoting the `$LATEST` version to the next incremental version number.  This is\ndone by passing the `--publish` flag with the command.\n\nIf you deploy a bot at it or intents has a dependecy on something who's version is `$LATEST` in hte spec you provide,\nlexbelt will publish the dependencies and provision new elements with the correct version id's you have just published.\n\nThe yaml/json syntax for slots, intents and bots are all based directly of the AWS API Put API calls, so any attribute \nsupported by the AWS API will be supported in the API now or in the future can be included in a yaml file\n\nThe tool won't handle mixing json and yaml within a bot (e.g. yaml bot, json intent or slot, etc), pick one and stick with it.\n\n## Lex Bot Odd Behaviour\nAWS Lex does do some weird stuff.\n\n### Bot versioning\nFor instance if your attempt to create a new version of a slot or an intent and\nnothing has actually changed, you'll get the last version number returned.  Smart.  However, if you try to create a new\nversion of abot and nothing has actualy changed, you'll get a new version number.  This inconsistency is a bit annoying. \n\n### 409 ConflictException\nOnce a new bot is published, there seems to be some asynchronous AWS magik still going on in the background.  Any \nsubsequent request to publish the bot again can trigger a HTTP response 409 ConflictException.  Wait a minute and try it\nagain, it will work. I'm guessing this is related to the build process.\n\n### AWS UI doesn't refresh or is slow\nThis happens quite often.  Some times it requires waiting for the page to load or in the case of an alias, clicking on\nother settings before clicking on Aliases again.\n\n### TODO\n* Any other feature requested.\n* Windows Testing","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsethkor%2Flexbelt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsethkor%2Flexbelt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsethkor%2Flexbelt/lists"}