From ff355fa122de8f8fc579854784f7dfb49a5e4548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez-Mondrag=C3=B3n?= Date: Mon, 23 Sep 2024 20:10:17 -0600 Subject: [PATCH] Added the rclone utility plugin --- _data/default_variants.yml | 1 + _data/maintainers.yml | 4 ++ _data/meltano/utilities/rclone/rclone.yml | 76 ++++++++++++++++++++++ static/assets/logos/utilities/rclone.png | Bin 0 -> 19898 bytes 4 files changed, 81 insertions(+) create mode 100644 _data/meltano/utilities/rclone/rclone.yml create mode 100644 static/assets/logos/utilities/rclone.png diff --git a/_data/default_variants.yml b/_data/default_variants.yml index 9ab51834a..0fc99a293 100644 --- a/_data/default_variants.yml +++ b/_data/default_variants.yml @@ -700,6 +700,7 @@ utilities: notebook: matatika postgres: postgres powerbi: lgrosjean + rclone: rclone sqlfluff: sqlfluff superset: meltano tableau: gabilew diff --git a/_data/maintainers.yml b/_data/maintainers.yml index 2cc580997..85a7ed70a 100644 --- a/_data/maintainers.yml +++ b/_data/maintainers.yml @@ -983,6 +983,10 @@ rawwar: label: rawwar name: KalyanR url: https://github.com/rawwar +rclone: + label: rclone + name: rclone + url: https://github.com/rclone reubenf: label: Reuben Frankel name: reubenf diff --git a/_data/meltano/utilities/rclone/rclone.yml b/_data/meltano/utilities/rclone/rclone.yml new file mode 100644 index 000000000..e11ce26e3 --- /dev/null +++ b/_data/meltano/utilities/rclone/rclone.yml @@ -0,0 +1,76 @@ +# Subcommands +commands: + config: + args: config + sync: + args: sync + +description: rsync for cloud storage +label: rclone +name: rclone +namespace: rclone +pip_url: rclone-bin +settings: + +# Global settings +- description: Log level + kind: options + label: Log Level + name: log_level + options: + - label: DEBUG + value: DEBUG + - label: INFO + value: INFO + - label: NOTICE + value: NOTICE + - label: ERROR + value: ERROR +- description: Use json log format + kind: boolean + label: Use JSON Log + name: use_json_log +- description: IO idle timeout (default 5m0s) + kind: integer + label: IO Idle Timeout + name: timeout + +# Local settings +- description: Force the filesystem to report itself as case insensitive. + kind: boolean + label: Case Sensitive + name: local.case_sensitive + +# S3 +- description: AWS Access Key ID + kind: string + name: s3.access_key_id +- description: Endpoint for S3 API + kind: string + name: s3.endpoint +- description: Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars) + kind: boolean + name: env_auth +- description: S3 provider + kind: options + name: s3.provider + options: + - label: AWS + value: AWS + - label: Ceph + value: Ceph + - label: DigitalOcean Spaces + value: DigitalOcean + - label: Minio + value: Minio +- description: Region to connect to + kind: string + name: s3.region +- description: AWS Secret Access Key (password) + kind: password + name: s3.secret_access_key + sensitive: true +usage: | + meltano invoke rclone:config + meltano invoke rclone:sync source:path dest:path +variant: rclone diff --git a/static/assets/logos/utilities/rclone.png b/static/assets/logos/utilities/rclone.png new file mode 100644 index 0000000000000000000000000000000000000000..ee889b7fdfb19d1197a73f8c206a01cecbfed72d GIT binary patch literal 19898 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

C%GO7gxWlYGxEiV9io=0zm`uUmV0C#r< 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