{"id":31727525,"url":"https://github.com/toryas/serverless-glue","last_synced_at":"2025-10-09T06:25:32.612Z","repository":{"id":43400008,"uuid":"273088522","full_name":"toryas/serverless-glue","owner":"toryas","description":"This is a plugin for Serverless framework that provide the possibility to deploy AWS Glue Jobs and Triggers","archived":false,"fork":false,"pushed_at":"2025-02-13T03:16:46.000Z","size":100,"stargazers_count":26,"open_issues_count":10,"forks_count":31,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-12T21:03:13.471Z","etag":null,"topics":["aws","glue","serverless"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toryas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-06-17T22:13:28.000Z","updated_at":"2025-04-29T18:19:53.000Z","dependencies_parsed_at":"2024-09-10T15:15:50.056Z","dependency_job_id":"2b641938-2965-4313-8cf9-fb051c0eec55","html_url":"https://github.com/toryas/serverless-glue","commit_stats":{"total_commits":75,"total_committers":16,"mean_commits":4.6875,"dds":0.6933333333333334,"last_synced_commit":"bd7848f5aec0521592364360d9218cc81326be86"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/toryas/serverless-glue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toryas%2Fserverless-glue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toryas%2Fserverless-glue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toryas%2Fserverless-glue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toryas%2Fserverless-glue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toryas","download_url":"https://codeload.github.com/toryas/serverless-glue/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toryas%2Fserverless-glue/sbom","scorecard":{"id":895169,"data":{"date":"2025-08-11","repo":{"name":"github.com/toryas/serverless-glue","commit":"7f4023e9b33d23ff17ac817c9932d82b67e85245"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Code-Review","score":4,"reason":"Found 12/28 approved changesets -- score normalized to 4","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":"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":"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":"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":"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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"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":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"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":-1,"reason":"no releases found","details":null,"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 14 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"}}]},"last_synced_at":"2025-08-24T13:25:03.472Z","repository_id":43400008,"created_at":"2025-08-24T13:25:03.472Z","updated_at":"2025-08-24T13:25:03.472Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000823,"owners_count":26082950,"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-09T02:00:07.460Z","response_time":59,"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":["aws","glue","serverless"],"created_at":"2025-10-09T06:25:25.495Z","updated_at":"2025-10-09T06:25:32.607Z","avatar_url":"https://github.com/toryas.png","language":"TypeScript","funding_links":["https://paypal.me/toryas"],"categories":[],"sub_categories":[],"readme":"\n# Read this first\n\n***\n\nI have been away from the world of Glue so it is difficult for me to maintain this plugin since I do not have an AWS account to test and improve the plugin. So if someone wants to keep making updates to the repository, talk to me internally to add it as a maintainer so I can publish new versions.\n\nRegards from Chile!\n***\n\n# Serverless Glue\n\nServerless-glue is an open source MIT licensed project, which has been able to grow thanks to the community. This project is the result of an idea that did not let it rest in oblivion and many hours of work after hours.\n\nIf you want to help me you can do it in the following ways:\n\n- With a donation through Paypal [here](https://paypal.me/toryas).\n- Sharing your feedback [here](https://github.com/toryas/serverless-glue/issues).\n\nI hope you liked this project and it is useful for you.\n\nAny problems? Join to the [slack channel](https://join.slack.com/t/serverless-glue/shared_invite/zt-14f50ztyb-Jdp8wRtVMlW7OriGBkG4oA).\n\n---\nThe principal changes are available [here](#changelog)\n---\n\nThis is a plugin for Serverless framework that provide the possibility to deploy AWS Glue Jobs and Triggers\n\n## Install\n\n1. run `npm install --save-dev serverless-glue`\n2. add **serverless-glue** in serverless.yml plugin section\n    ```yml\n    plugins:\n        - serverless-glue\n    ```\n## How it works\n\nThe plugin creates CloufFormation resources of your configuration before making the serverless deploy then add it to the serverless template.\n\nSo any glue-job deployed with this plugin is part of your stack too.\n\n## How to configure your GlueJob(s)\n\nConfigure your glue jobs in the root of servelress.yml like this:\n\n```yml\nGlue:\n  bucketDeploy: someBucket # Required\n  createBucket: true # Optional, default = false\n  createBucketConfig: # Optional \n    ACL: private # Optional, private | public-read | public-read-write | authenticated-read\n    LocationConstraint: af-south-1\n    GrantFullControl: 'STRING_VALUE' # Optional\n    GrantRead: 'STRING_VALUE' # Optional\n    GrantReadACP: 'STRING_VALUE' # Optional\n    GrantWrite: 'STRING_VALUE' # Optional\n    GrantWriteACP: 'STRING_VALUE' # Optional\n    ObjectLockEnabledForBucket: true # Optional\n    ObjectOwnership: BucketOwnerPreferred # Optional\n  s3Prefix: some/s3/key/location/ # optional, default = 'glueJobs/'\n  tempDirBucket: someBucket # optional, default = '{serverless.serviceName}-{provider.stage}-gluejobstemp'\n  tempDirS3Prefix: some/s3/key/location/ # optional, default = ''. The job name will be appended to the prefix name\n  jobs:\n    - name: super-glue-job # Required\n      id: # Optional, string\n      scriptPath: src/script.py # Required script will be named with the name after '/' and uploaded to s3Prefix location\n      Description: # Optional, string\n      tempDir: true # Optional true | false\n      type: spark # spark / spark_streaming / pythonshell # Required\n      glueVersion: python3-2.0 # Required \"python3.9-1.0\" | \"python3.9-2.0\" | \"python3.9-3.0\" | \"python3-1.0\" | \"python3-2.0\" | \"python3-3.0\" | \"python2-1.0\" | \"python2-0.9\" | \"scala2-1.0\" | \"scala2-0.9\" | \"scala2-2.0\" | \"scala3-3.0\"\n      role: arn:aws:iam::000000000:role/someRole # Required\n      MaxCapacity: 1 #Optional\n      MaxConcurrentRuns: 3 # Optional\n      WorkerType: Standard # Optional, G.1X | G.2X\n      NumberOfWorkers: 1 # Optional\n      SecurityConfiguration: # Optional, name of security configuration\n      Connections: # Optional\n        - some-conection-string\n        - other-conection-string\n      Timeout: # Optional, number\n      MaxRetries: # Optional, number\n      DefaultArguments: # Optional\n        class: string # Optional\n        scriptLocation: string # Optional\n        extraPyFiles: string # Optional\n        extraJars: string # Optional\n        userJarsFirst: string # Optional\n        usePostgresDriver: string # Optional\n        extraFiles: string # Optional\n        disableProxy: string # Optional\n        jobBookmarkOption: string # Optional\n        enableAutoScaling: string # Optional\n        enableS3ParquetOptimizedCommitter: string # Optional\n        enableRenameAlgorithmV2: string # Optional\n        enableGlueDatacatalog: string # Optional\n        enableMetrics: string # Optional\n        enableContinuousCloudwatchLog: string # Optional\n        enableContinuousLogFilter: string # Optional\n        continuousLogLogGroup: string # Optional\n        continuousLogLogStreamPrefix: string # Optional\n        continuousLogConversionPattern: string # Optional\n        enableSparkUi: string # Optional\n        sparkEventLogsPath: string # Optional\n        additionalPythonModules: string # Optional\n        customArguments: # Optional; these are user-specified custom default arguments that are passed into cloudformation with a leading -- (required for glue)\n          custom_arg_1: custom_value\n          custom_arg_2: other_custom_value\n      SupportFiles: # Optional\n        - local_path: path/to/file/or/folder/ # Required if SupportFiles is given, you can pass a folder path or a file path\n          s3_bucket: bucket-name-where-to-upload-files # Required if SupportFiles is given\n          s3_prefix: some/s3/key/location/ # Required if SupportFiles is given\n          execute_upload: True # Boolean, True to execute upload, False to not upload. Required if SupportFiles is given\n      Tags:\n        job_tag_example_1: example1\n        job_tag_example_2: example2\n  triggers:\n    - name: some-trigger-name # Required\n      Description: # Optional, string\n      StartOnCreation: True # Optional, True or False\n      schedule: 30 12 * * ? * # Optional, CRON expression. The trigger will be created with On-Demand type if the schedule is not provided.\n      Tags:\n        trigger_tag_example_1: example1     \n      actions: # Required. One or more jobs to trigger\n        - name: super-glue-job # Required\n          args: # Optional\n            custom_arg_1: custom_value\n            custom_arg_2: other_custom_value\n          timeout: 30 # Optional, if set, it overwrites specific jobs timeout when job starts via trigger\n          SecurityConfiguration: # Optional, name of security configuration\n\n```\n\nYou can define a lot of jobs...\n\n```yml\n  Glue:\n    bucketDeploy: someBucket\n    jobs:\n      - name: jobA\n        scriptPath: scriptA\n        ...\n      - name: jobB\n        scriptPath: scriptB\n        ...\n\n```\n\nAnd a lot of triggers...\n\n```yml\n  Glue:\n    triggers:\n        - name:\n            ...\n        - name:\n            ...\n\n```\n\n### Glue configuration parameters\n\n|Parameter|Type|Description|Required|\n|-|-|-|-|\n|bucketDeploy|String|S3 Bucket name|true|\n|createBucket|Boolean|If true, a bucket named as `bucketDeploy` will be created before. Helpful if you have not created the bucket first|false|\ncreateBucketConfig|createBucketConfig| Bucket configuration for creation on S3 |false|\n|s3Prefix|String|S3 prefix name|false|\n|tempDirBucket|String|S3 Bucket name for Glue temporary directory. If dont pass argument the bucket'name will generates with pattern {serverless.serviceName}-{provider.stage}-gluejobstemp|false|\n|tempDirS3Prefix|String|S3 prefix name for Glue temporary directory|false|\n|jobs|Array|Array of glue jobs to deploy|true|\n\n### CreateBucket confoguration parameters\n\n|Parameter|Type|Description|Required|\n|-|-|-|-|\n|ACL|String|The canned ACL to apply to the bucket. Possible values include:\u003cul\u003e\u003cli\u003eprivate\u003c/li\u003e\u003cli\u003epublic-read\u003c/li\u003e\u003cli\u003epublic-read-write\u003c/li\u003e\u003cli\u003eauthenticated-read\u003c/li\u003e\u003c/ul\u003e|False|\n|LocationConstraint|String| Specifies the Region where the bucket will be created. If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1). Possible values are: \u003cul\u003e\u003cli\u003eaf-south-1\u003c/li\u003e\u003cli\u003eap-east-1\u003c/li\u003e\u003cli\u003eap-northeast-1\u003c/li\u003e\u003cli\u003eap-northeast-2\u003c/li\u003e\u003cli\u003eap-northeast-3\u003c/li\u003e\u003cli\u003eap-south-1\u003c/li\u003e\u003cli\u003eap-southeast-1\u003c/li\u003e\u003cli\u003eap-southeast-2\u003c/li\u003e\u003cli\u003eca-central-1\u003c/li\u003e\u003cli\u003ecn-north-1\u003c/li\u003e\u003cli\u003ecn-northwest-1\u003c/li\u003e\u003cli\u003eEU\u003c/li\u003e\u003cli\u003eeu-central-1\u003c/li\u003e\u003cli\u003eeu-north-1\u003c/li\u003e\u003cli\u003eeu-south-1\u003c/li\u003e\u003cli\u003eeu-west-1\u003c/li\u003e\u003cli\u003eeu-west-2\u003c/li\u003e\u003cli\u003eeu-west-3\u003c/li\u003e\u003cli\u003eme-south-1\u003c/li\u003e\u003cli\u003esa-east-1\u003c/li\u003e\u003cli\u003eus-east-2\u003c/li\u003e\u003cli\u003eus-gov-east-1\u003c/li\u003e\u003cli\u003eus-gov-west-1\u003c/li\u003e\u003cli\u003eus-west-1\u003c/li\u003e\u003cli\u003eus-west-2\u003c/li\u003e\u003c/ul\u003e|false|\n|GrantFullControl|String|Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.|false|\n|GrantRead|(String|Allows grantee to list the objects in the bucket.|false|\n|GrantReadACP|String|Allows grantee to read the bucket ACL.|false|\n|GrantWrite|String|Allows grantee to create new objects in the bucket. For the bucket and object owners of existing objects, also allows deletions and overwrites of those objects.|false|\n|GrantWriteACP|String|Allows grantee to write the ACL for the applicable bucket.|false|\n|ObjectLockEnabledForBucket|Boolean|Specifies whether you want S3 Object Lock to be enabled for the new bucket.|false|\n|ObjectOwnership|String|The container element for object ownership for a bucket's ownership controls.Possible values include:\u003cul\u003e\u003cli\u003eBucketOwnerPreferred\u003c/li\u003e\u003cli\u003eObjectWriter\u003c/li\u003e\u003cli\u003eBucketOwnerEnforced\u003c/li\u003e\u003c/ul\u003e|false|\n\n### Jobs configurations parameters\n\n|Parameter|Type|Description|Required|\n|-|-|-|-|\n|name|String|name of job|true|\n|id|String|logical ID in CloudFormation for the job|false|\n|Description|String|Description of the job|False|\n|scriptPath|String|script path in the project|true|\n|tempDir|Boolean|flag indicate if job required a temp folder, if true plugin create a bucket for tmp|false|\n|type|String|Indicate if the type of your job. Values can use are : `spark`, `spark_streaming` or `pythonshell`|true|\n|glueVersion|String|Indicate language and glue version to use ( `[language][version]-[glue version]`) the value can you use are: \u003cul\u003e\u003cli\u003epython3-1.0\u003c/li\u003e\u003cli\u003epython3-2.0\u003c/li\u003e\u003cli\u003epython2-1.0\u003c/li\u003e\u003cli\u003epython2-0.9\u003c/li\u003e\u003cli\u003escala2-1.0\u003c/li\u003e\u003cli\u003escala2-0.9\u003c/li\u003e\u003cli\u003escala2-2.0\u003c/li\u003e\u003c/ul\u003e|true|\n|role|String| arn role to execute job|true|\n|MaxCapacity|Double| The number of AWS Glue data processing units (DPUs) that can be allocated when this job runs|false|\n|MaxConcurrentRuns|Double|max concurrent runs of the job|false|\n|MaxRetries|Int|Maximum number of retires in case of failure|False|\n|Timeout|Int|Job timeout in number of minutes|False|\n|WorkerType|String|The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.|false|\n|NumberOfWorkers|Integer|number of workers|false|\n|SecurityConfiguration|String|The name of the security configuration that the job should use|false|\n|Connections|List|a list of connections used by the job|false|\n|DefaultArguments|object|Special Parameters Used by AWS Glue for mor information see this read the [AWS documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)|false|\n|SupportFiles|List|List of supporting files for the glue job that need upload to S3|false|\n|Tags|JSON|The tags to use with this job. You may use tags to limit access to the job. For more information about tags in AWS Glue, see AWS Tags in AWS Glue in the developer guide.|false|\n\n### Triggers configuration parameters\n\n|Parameter|Type|Description|Required|\n|-|-|-|-|\n|name|String|name of the trigger|true|\n|schedule|String|CRON expression|false|\n|actions|Array|An array of jobs to trigger|true|\n|Description|String|Description of the Trigger|False|\n|StartOnCreation|Boolean|Whether the trigger starts when created. Not supperted for ON_DEMAND triggers|False|\n\nOnly On-Demand and Scheduled triggers are supported.\n\n### Trigger job configuration parameters\n\n|Parameter|Type|Description|Required|\n|-|-|-|-|\n|name|String|The name of the Glue job to trigger|true|\n|timeout|Integer|Job execution timeout. It overwrites|false|\n|args|Map|job arguments|false|\n|Tags|JSON|The tags to use with this triggers. For more information about tags in AWS Glue, see AWS Tags in AWS Glue in the developer guide.|false|\n\n\n## And now?...\n\nOnly run `serverless deploy`\n---\n\n# Changelog\n\u003ca name=\"changelog\"\u003e\u003c/a\u003e\n\n## [2.14.0] - 2025-02-13\n\n### Add\n- included job queuing feature [#59](https://github.com/toryas/serverless-glue/pull/59)\n\n## [2.13.0] - 2024-12-09\n\n### Add\n- allow glue v4.0 [#58](https://github.com/toryas/serverless-glue/pull/58)\n\n## [2.12.1] - 2023-05-31\n\n### Fix\n- Fixed tempDir being added when set to false\n\n## [2.12.0] - 2023-02-09\n\n### Add\n- Add support for spark streams\n- Add support for `--additional-python-modules`\n\n### Fix\n\n- fix when  parametter `s3Prefix` is omitted generate a undefine prefix \n\n## [2.11.1] - 2022-09-13\n\n### Add\n- Add support for custom logical IDs for jobs \n\n### Fix\n- Fix Pascal Case generation for sections of names that are only numeric\n\n## [2.10.0] - 2022-09-12\n\n### Add\n - Add support for python 3.9 shell jobs\n\n## [2.9.0] - 2022-06-03\n\n### Add\n\n- Add support to Glue 3.0 (Spark 3.1.1/Python 3.7)\n- Now aws-s3 client is generated with region defined on \"provider\" part of serverless.yml\n\n### Fix\n\n- the hard coded path generator is replaced by the \"path\" package, to solve problems when running the package on Windows\n- the last \"/\" characters on `tempDirS3Prefix` are automatically removed to avoid wrong paths in S3 \n\n## [2.8.0] - 2022-03-31\n\n### Add\n\n- Add check if bucket exist before create it\n## [2.7.0] - 2022-02-25\n\n### Add\n- Add configuration MaxCapacity for job\n## [2.6.0] - 2022-02-25\n\n### Add\n- Add support for SecurityConfiguration property\n\n## [2.5.0] - 2022-02-14\n\n### Add\n- Add the `createBucketConfig` feature to set the bucket creation configuration.\n\n### Changed\n- Removed message when support files not found, now logging message when support files exist.\n### Fix\n- Improve the `createBucket` example of documentation.\n\n## [2.4.1] - 2022-02-01\n### Fix\n- Fix schema typo that blocks serverless 3.\n## [2.4.0] - 2022-01-17\n### Fix\n- Fix NumberOwfWorkers typo.\n\n### Add\n- Added `Timeout`, `MaxRetries` and `Description` parameters to Glue Job arguments. Added `Description` and `StartOnCreation` parameters to Glue Job Trigger arguments.\n- Added `SupportFiles` to Glue Job arguments handling the upload to S3 of relevant-to-the-Glue-Job(s) files\n\n\n## [2.3.0] - 2021-12-23\n\n### Add\n- Implement Custom Arguments for Jobs\n## [2.2.0] - 2021-12-22\n\n### Add\n- Implement Tags for jobs and triggers\n## [2.1.1] - 2021-12-21\n\n### Fixed\n- Remove empty connections object from CF template when don`t specify any conection\n## [2.1.0] - 2021-12-15\n\n### Add\n- Implement DefaultArguments for jobs\n## [2.0.2] - 2021-12-13\n\n### Fixed\n- Replace incorrect async loop in serverless\n\n## [2.0.1] - 2021-12-09\n\n### Changed\n- Move typescript dependencie to dev\n## [2.0.0] - 2021-11-29\n### Changed\n- Refactoring code from JS to TS, and restructured folders.\n- Plugin`s configuration get out from *custom* level in serverless.yml now are in root of file. \n- Remove redundant level *job* in jobs config.\n- **script** attribute are rename to ***scriptPath**\n- Remove redundant level *Connections* in **Connections** config.\n- Remove redundant level trigger from triggers config.\n- Rename **job** attribute to **action** in trigger config.\n### Fixed\n- Improve documentation for **Connections** config.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoryas%2Fserverless-glue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoryas%2Fserverless-glue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoryas%2Fserverless-glue/lists"}