{"id":16971544,"url":"https://github.com/thomastjdev/nim_awssts","last_synced_at":"2026-02-25T10:06:26.707Z","repository":{"id":87657447,"uuid":"380408878","full_name":"ThomasTJdev/nim_awsSTS","owner":"ThomasTJdev","description":"AWS Security Token Service API in Nim","archived":false,"fork":false,"pushed_at":"2025-02-14T06:23:14.000Z","size":30,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-07T13:43:16.995Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Nim","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/ThomasTJdev.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-26T03:58:48.000Z","updated_at":"2025-02-14T06:23:15.000Z","dependencies_parsed_at":"2025-01-26T14:43:37.132Z","dependency_job_id":"32f33509-7629-4ab7-92bf-094c218511de","html_url":"https://github.com/ThomasTJdev/nim_awsSTS","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/ThomasTJdev/nim_awsSTS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnim_awsSTS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnim_awsSTS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnim_awsSTS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnim_awsSTS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThomasTJdev","download_url":"https://codeload.github.com/ThomasTJdev/nim_awsSTS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnim_awsSTS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278308628,"owners_count":25965654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-14T00:52:24.248Z","updated_at":"2025-10-04T11:49:16.205Z","avatar_url":"https://github.com/ThomasTJdev.png","language":"Nim","readme":"# awsSTS\n\n**AWS Security Token Service API in Nim**\n\nThis nim package is for generating AWS Security Token Service and temporary\nASIAxxx credentials.\n\nAWS Security Token Service (AWS STS) is a web service that enables you to\nrequest temporary, limited-privilege credentials for AWS Identity and Access\nManagement (IAM) users or for users that you authenticate (federated users).\n\nThis package is purely for generating ASIAxxxx credentials, which can be used\nin other services.\n\n\n# Example\n\n## General one time call\n\n```nim\nimport awsSTS\n\nawsSTSInitHttpPool(size = 5)\n\nlet\n  myAccessKey   = \"AKIDEXAMPLE\"\n  mySecretKey   = \"23456OIUYTREXAMPLE\"\n  role          = \"arn:aws:iam::87654322345:role/Role-I-Can-And-May\"\n  serverRegion  = \"eu-west-1\"\n\nlet creds = awsSTScreateASIA(myAccessKey, mySecretKey, serverRegion, role)\n\necho creds.AWS_ACCESS_KEY_ID\necho creds.AWS_SECRET_ACCESS_KEY\necho creds.AWS_SESSION_TOKEN\n```\n\n## Keep in global variable and auto-renew\n\nAuto-renew and keep credentials in global variable. Accessible from all threads.\n\n```nim\nimport awsSTS/sts\n\nawsSTSInitHttpPool(size = 5)\n\nlet\n  myAccessKey   = \"AKIDEXAMPLE\"\n  mySecretKey   = \"23456OIUYTREXAMPLE\"\n  role          = \"arn:aws:iam::87654322345:role/Role-I-Can-And-May\"\n  serverRegion  = \"eu-west-1\"\n\nlet creds = stsGet(myAccessKey, mySecretKey, serverRegion, role)\n\necho creds.AWS_ACCESS_KEY_ID\necho creds.AWS_SECRET_ACCESS_KEY\necho creds.AWS_SESSION_TOKEN\n```\n\n\n\n# Reusable HttpClient pool\n\nIn version 2.1.0, an HTTP pool was implemented to handle HTTP requests.\nThe pool includes monitoring of consecutive errors, age of clients, and number of requests.\nBased on these, the clients will be recycled.\n\nThe pool requires initialization with `awsSTSInitHttpPool(size = 5)`.\n\nThe pool is **enabled** by default when using `--threads:on` (so always in\nNim v2.x). The pool is **disabled** when using `-d:disableAwsStsHttpPool` and\nthe method reverts back to using an individual HttpClient for each call.\n\nWhen running single-threaded, the pool is disabled by default. To enable the pool,\nuse `-d:awsStsHttpPool`.\n\nOn initialization, the pool will echo status. Disable this with\n`-d:awsStsHttpPoolNoEcho`.\n\n\n\n# Changelog\n\n## 2.1.0\n\n* Added http pool for reusing http clients.\n* Made `awsSTScreateASIA` public, so the wrapper `awsSTScreate` is not needed.\n\n## v1.0.4\n\nReplacing dependency `sigv4` with `awsSigV4`. The allows us to ignore the\ndependency `balls`.\n\n`awsCredsMonitor()` has been removed.\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomastjdev%2Fnim_awssts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomastjdev%2Fnim_awssts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomastjdev%2Fnim_awssts/lists"}