cloudcheck 9.2.0__tar.gz → 10.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. cloudcheck-10.0.0/.github/workflows/cla.yml +97 -0
  2. cloudcheck-10.0.0/.github/workflows/daily-update.yml +62 -0
  3. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/.github/workflows/python-tests.yml +1 -2
  4. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/.github/workflows/rust-tests.yml +7 -1
  5. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/Cargo.lock +35 -37
  6. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/Cargo.toml +1 -1
  7. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/PKG-INFO +52 -47
  8. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/README.md +51 -46
  9. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloud_providers_v2.json +7044 -4201
  10. cloudcheck-10.0.0/cloud_providers_v3.json +61361 -0
  11. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/helpers.py +15 -2
  12. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/amazon.py +13 -2
  13. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/base.py +2 -1
  14. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/cloudflare.py +3 -3
  15. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/digitalocean.py +7 -2
  16. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/gocache.py +3 -1
  17. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/google.py +6 -3
  18. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/hetzner.py +7 -2
  19. cloudcheck-10.0.0/cloudcheck/providers/iboss.py +13 -0
  20. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/microsoft.py +2 -2
  21. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck_update/__init__.py +1 -1
  22. cloudcheck-10.0.0/cloudcheck_update/cli.py +21 -0
  23. cloudcheck-10.0.0/dist/cloudcheck-10.0.0-cp314-cp314-manylinux_2_38_x86_64.whl +0 -0
  24. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/pyproject.toml +1 -1
  25. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/scripts/update_readme_table.py +3 -3
  26. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/src/lib.rs +2 -2
  27. cloudcheck-10.0.0/test_cloudcheck.py +110 -0
  28. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/uv.lock +1 -1
  29. cloudcheck-9.2.0/cloudcheck_update/cli.py +0 -13
  30. cloudcheck-9.2.0/dist/cloudcheck-9.2.0-cp314-cp314-manylinux_2_38_x86_64.whl +0 -0
  31. cloudcheck-9.2.0/test_cloudcheck.py +0 -38
  32. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/.github/dependabot.yml +0 -0
  33. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/.github/workflows/docker-tests.yml +0 -0
  34. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/.github/workflows/pipeline-tests.yml +0 -0
  35. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/.gitignore +0 -0
  36. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/Dockerfile +0 -0
  37. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloud_providers.json +0 -0
  38. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/__init__.py +0 -0
  39. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/__init__.py +0 -0
  40. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/akamai.py +0 -0
  41. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/alibaba.py +0 -0
  42. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/arvancloud.py +0 -0
  43. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/backblaze.py +0 -0
  44. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/baidu.py +0 -0
  45. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/cachefly.py +0 -0
  46. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/cdnetworks.py +0 -0
  47. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/cisco.py +0 -0
  48. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/cloudfront.py +0 -0
  49. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/ddosguard.py +0 -0
  50. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/dell.py +0 -0
  51. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/dod.py +0 -0
  52. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/fastly.py +0 -0
  53. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/fbi.py +0 -0
  54. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/gabia.py +0 -0
  55. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/gcore.py +0 -0
  56. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/github.py +0 -0
  57. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/heroku.py +0 -0
  58. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/hostway.py +0 -0
  59. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/hpe.py +0 -0
  60. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/huawei.py +0 -0
  61. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/ibm.py +0 -0
  62. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/imperva.py +0 -0
  63. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/kamatera.py +0 -0
  64. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/kinx.py +0 -0
  65. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/ktcloud.py +0 -0
  66. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/leaseweb.py +0 -0
  67. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/lgtelecom.py +0 -0
  68. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/microsoft365.py +0 -0
  69. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/navercloud.py +0 -0
  70. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/nhncloud.py +0 -0
  71. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/oracle.py +0 -0
  72. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/ovh.py +0 -0
  73. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/qrator.py +0 -0
  74. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/quiccloud.py +0 -0
  75. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/rackspace.py +0 -0
  76. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/ru_fso.py +0 -0
  77. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/salesforce.py +0 -0
  78. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/scaleway.py +0 -0
  79. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/skbroadband.py +0 -0
  80. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/stormwall.py +0 -0
  81. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/sucuri.py +0 -0
  82. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/tencent.py +0 -0
  83. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/uk_mod.py +0 -0
  84. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/wasabi.py +0 -0
  85. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/x4b.py +0 -0
  86. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/yandex.py +0 -0
  87. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/zoho.py +0 -0
  88. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck/providers/zscaler.py +0 -0
  89. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/cloudcheck_update/test_cloudcheck_update.py +0 -0
  90. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/helm/Chart.yaml +0 -0
  91. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/helm/cloudcheck/values.yaml +0 -0
  92. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/helm/templates/cloudcheck.yaml +0 -0
  93. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/helm/values.yaml +0 -0
  94. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/pytest.ini +0 -0
  95. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/src/api.rs +0 -0
  96. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/src/main.rs +0 -0
  97. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/src/python.rs +0 -0
  98. {cloudcheck-9.2.0 → cloudcheck-10.0.0}/test_docker.py +0 -0
@@ -0,0 +1,97 @@
1
+ name: "CLA Assistant"
2
+ on:
3
+ issue_comment:
4
+ types: [created]
5
+ pull_request_target:
6
+ types: [opened, closed, synchronize]
7
+
8
+ permissions:
9
+ pull-requests: write
10
+ statuses: write
11
+
12
+ jobs:
13
+ CLAAssistant:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Generate token from GitHub App
17
+ id: app-token
18
+ uses: actions/create-github-app-token@v1
19
+ with:
20
+ app-id: ${{ secrets.APP_ID }}
21
+ private-key: ${{ secrets.APP_PRIVATE_KEY }}
22
+ owner: blacklanternsecurity
23
+
24
+ - name: Check all committers against org and allowlist
25
+ id: cla-check
26
+ env:
27
+ GH_TOKEN: ${{ steps.app-token.outputs.token }}
28
+ run: |
29
+ if [ "${{ github.event_name }}" = "pull_request_target" ]; then
30
+ PR_NUM="${{ github.event.pull_request.number }}"
31
+ else
32
+ PR_NUM="${{ github.event.issue.number }}"
33
+ fi
34
+
35
+ COMMITTERS=$(gh api "repos/${{ github.repository }}/pulls/$PR_NUM/commits" --paginate --jq '.[].author.login' | sort -u)
36
+ ALL_EXEMPT=true
37
+
38
+ for LOGIN in $COMMITTERS; do
39
+ # treat commits with no associated GitHub login as non-exempt
40
+ if [ -z "$LOGIN" ] || [ "$LOGIN" = "null" ]; then
41
+ echo "Unknown committer (no GitHub login) — not exempt"
42
+ ALL_EXEMPT=false
43
+ break
44
+ fi
45
+
46
+ EXEMPT=false
47
+
48
+ # check if account type is Bot (GitHub App accounts)
49
+ AUTHOR_TYPE=$(gh api "users/${LOGIN}" --jq '.type' 2>/dev/null || echo "Unknown")
50
+ if [ "$AUTHOR_TYPE" = "Bot" ]; then
51
+ echo "$LOGIN is a Bot account — exempt"
52
+ EXEMPT=true
53
+ fi
54
+
55
+ # check org membership
56
+ if [ "$EXEMPT" = "false" ]; then
57
+ if gh api "orgs/blacklanternsecurity/members/$LOGIN" > /dev/null 2>&1; then
58
+ echo "$LOGIN is an org member — exempt"
59
+ EXEMPT=true
60
+ fi
61
+ fi
62
+
63
+ if [ "$EXEMPT" = "false" ]; then
64
+ echo "$LOGIN is not exempt — CLA required"
65
+ ALL_EXEMPT=false
66
+ break
67
+ fi
68
+ done
69
+
70
+ echo "all_exempt=$ALL_EXEMPT" >> "$GITHUB_OUTPUT"
71
+
72
+ - name: Skip CLA when all committers are exempt
73
+ if: steps.cla-check.outputs.all_exempt == 'true' && github.event_name == 'pull_request_target'
74
+ env:
75
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
76
+ run: |
77
+ gh api --method POST "repos/${{ github.repository }}/statuses/${{ github.event.pull_request.head.sha }}" \
78
+ -f state=success \
79
+ -f context="CLAAssistant" \
80
+ -f description="CLA check skipped — all committers are org members or bots"
81
+
82
+ - name: "CLA Assistant"
83
+ if: |
84
+ (steps.cla-check.outputs.all_exempt != 'true') &&
85
+ ((github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target')
86
+ uses: contributor-assistant/github-action@v2.6.1
87
+ env:
88
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
89
+ PERSONAL_ACCESS_TOKEN: ${{ steps.app-token.outputs.token }}
90
+ with:
91
+ path-to-signatures: "signatures/version1/cla.json"
92
+ path-to-document: "https://github.com/blacklanternsecurity/CLA/blob/main/ICLA.md"
93
+ branch: "main"
94
+ allowlist: "dependabot[bot],github-actions[bot],renovate[bot]"
95
+ remote-organization-name: "blacklanternsecurity"
96
+ remote-repository-name: "CLA"
97
+ lock-pullrequest-aftermerge: "false"
@@ -0,0 +1,62 @@
1
+ name: Daily Signature Update
2
+
3
+ on:
4
+ schedule:
5
+ # Run daily at 6:00 UTC
6
+ - cron: '0 6 * * *'
7
+ workflow_dispatch: # Allow manual trigger
8
+
9
+ # Prevent concurrent runs from racing to commit/merge
10
+ # cancel-in-progress: false means new runs wait instead of canceling in-progress ones
11
+ concurrency:
12
+ group: daily-update
13
+ cancel-in-progress: false
14
+
15
+ jobs:
16
+ update:
17
+ runs-on: ubuntu-latest
18
+ permissions:
19
+ contents: write
20
+
21
+ steps:
22
+ - name: Checkout stable branch
23
+ uses: actions/checkout@v6
24
+ with:
25
+ ref: stable
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v6
29
+ with:
30
+ python-version: "3.12"
31
+
32
+ - name: Set up uv
33
+ uses: astral-sh/setup-uv@v7
34
+
35
+ - name: Install dependencies
36
+ run: uv sync
37
+
38
+ - name: Update signatures
39
+ env:
40
+ BBOT_IO_API_KEY: ${{ secrets.BBOT_IO_API_KEY }}
41
+ run: uv run python -m cloudcheck_update.cli
42
+
43
+ - name: Update README table
44
+ run: uv run python scripts/update_readme_table.py
45
+
46
+ - name: Check for changes
47
+ id: changes
48
+ run: |
49
+ if git diff --quiet; then
50
+ echo "has_changes=false" >> $GITHUB_OUTPUT
51
+ else
52
+ echo "has_changes=true" >> $GITHUB_OUTPUT
53
+ fi
54
+
55
+ - name: Commit and push to stable
56
+ if: steps.changes.outputs.has_changes == 'true'
57
+ run: |
58
+ git config user.name "github-actions[bot]"
59
+ git config user.email "github-actions[bot]@users.noreply.github.com"
60
+ git add cloud_providers_v3.json README.md
61
+ git commit -m "chore: daily signature update $(date -u +%Y-%m-%d)"
62
+ git push origin HEAD:stable
@@ -60,8 +60,7 @@ jobs:
60
60
  - name: Build PyPi package
61
61
  run: uv run maturin build --release --out dist
62
62
  - name: Publish PyPi package
63
- # TODO: Remove || true
64
- run: uv run maturin publish --username __token__ --password ${{ secrets.PYPI_TOKEN }} || true
63
+ run: uv run maturin publish --skip-existing --username __token__ --password ${{ secrets.PYPI_TOKEN }}
65
64
  linux:
66
65
  runs-on: ${{ matrix.platform.runner }}
67
66
  needs: publish
@@ -51,4 +51,10 @@ jobs:
51
51
  uses: actions-rust-lang/setup-rust-toolchain@v1
52
52
 
53
53
  - name: Publish to crates.io
54
- run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
54
+ run: |
55
+ VERSION=$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[0].version')
56
+ if cargo search cloudcheck --limit 1 | head -1 | grep -q "$VERSION"; then
57
+ echo "Version $VERSION already exists on crates.io, skipping publish"
58
+ else
59
+ cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
60
+ fi
@@ -169,15 +169,15 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
169
169
 
170
170
  [[package]]
171
171
  name = "bytes"
172
- version = "1.11.0"
172
+ version = "1.11.1"
173
173
  source = "registry+https://github.com/rust-lang/crates.io-index"
174
- checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
174
+ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
175
175
 
176
176
  [[package]]
177
177
  name = "cc"
178
- version = "1.2.54"
178
+ version = "1.2.55"
179
179
  source = "registry+https://github.com/rust-lang/crates.io-index"
180
- checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583"
180
+ checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
181
181
  dependencies = [
182
182
  "find-msvc-tools",
183
183
  "shlex",
@@ -191,9 +191,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
191
191
 
192
192
  [[package]]
193
193
  name = "clap"
194
- version = "4.5.54"
194
+ version = "4.5.57"
195
195
  source = "registry+https://github.com/rust-lang/crates.io-index"
196
- checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394"
196
+ checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a"
197
197
  dependencies = [
198
198
  "clap_builder",
199
199
  "clap_derive",
@@ -201,9 +201,9 @@ dependencies = [
201
201
 
202
202
  [[package]]
203
203
  name = "clap_builder"
204
- version = "4.5.54"
204
+ version = "4.5.57"
205
205
  source = "registry+https://github.com/rust-lang/crates.io-index"
206
- checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00"
206
+ checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238"
207
207
  dependencies = [
208
208
  "anstream",
209
209
  "anstyle",
@@ -213,9 +213,9 @@ dependencies = [
213
213
 
214
214
  [[package]]
215
215
  name = "clap_derive"
216
- version = "4.5.49"
216
+ version = "4.5.55"
217
217
  source = "registry+https://github.com/rust-lang/crates.io-index"
218
- checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
218
+ checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5"
219
219
  dependencies = [
220
220
  "heck",
221
221
  "proc-macro2",
@@ -231,7 +231,7 @@ checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32"
231
231
 
232
232
  [[package]]
233
233
  name = "cloudcheck"
234
- version = "9.2.0"
234
+ version = "10.0.0"
235
235
  dependencies = [
236
236
  "axum",
237
237
  "clap",
@@ -378,17 +378,16 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
378
378
 
379
379
  [[package]]
380
380
  name = "find-msvc-tools"
381
- version = "0.1.8"
381
+ version = "0.1.9"
382
382
  source = "registry+https://github.com/rust-lang/crates.io-index"
383
- checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
383
+ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
384
384
 
385
385
  [[package]]
386
386
  name = "flate2"
387
- version = "1.1.8"
387
+ version = "1.1.9"
388
388
  source = "registry+https://github.com/rust-lang/crates.io-index"
389
- checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
389
+ checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
390
390
  dependencies = [
391
- "crc32fast",
392
391
  "miniz_oxide",
393
392
  "zlib-rs",
394
393
  ]
@@ -678,14 +677,13 @@ dependencies = [
678
677
 
679
678
  [[package]]
680
679
  name = "hyper-util"
681
- version = "0.1.19"
680
+ version = "0.1.20"
682
681
  source = "registry+https://github.com/rust-lang/crates.io-index"
683
- checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f"
682
+ checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
684
683
  dependencies = [
685
684
  "base64",
686
685
  "bytes",
687
686
  "futures-channel",
688
- "futures-core",
689
687
  "futures-util",
690
688
  "http",
691
689
  "http-body",
@@ -1039,9 +1037,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
1039
1037
 
1040
1038
  [[package]]
1041
1039
  name = "openssl-src"
1042
- version = "300.5.4+3.5.4"
1040
+ version = "300.5.5+3.5.5"
1043
1041
  source = "registry+https://github.com/rust-lang/crates.io-index"
1044
- checksum = "a507b3792995dae9b0df8a1c1e3771e8418b7c2d9f0baeba32e6fe8b06c7cb72"
1042
+ checksum = "3f1787d533e03597a7934fd0a765f0d28e94ecc5fb7789f8053b1e699a56f709"
1045
1043
  dependencies = [
1046
1044
  "cc",
1047
1045
  ]
@@ -1108,15 +1106,15 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
1108
1106
 
1109
1107
  [[package]]
1110
1108
  name = "portable-atomic"
1111
- version = "1.13.0"
1109
+ version = "1.13.1"
1112
1110
  source = "registry+https://github.com/rust-lang/crates.io-index"
1113
- checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
1111
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
1114
1112
 
1115
1113
  [[package]]
1116
1114
  name = "portable-atomic-util"
1117
- version = "0.2.4"
1115
+ version = "0.2.5"
1118
1116
  source = "registry+https://github.com/rust-lang/crates.io-index"
1119
- checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
1117
+ checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5"
1120
1118
  dependencies = [
1121
1119
  "portable-atomic",
1122
1120
  ]
@@ -1250,9 +1248,9 @@ dependencies = [
1250
1248
 
1251
1249
  [[package]]
1252
1250
  name = "regex"
1253
- version = "1.12.2"
1251
+ version = "1.12.3"
1254
1252
  source = "registry+https://github.com/rust-lang/crates.io-index"
1255
- checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
1253
+ checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
1256
1254
  dependencies = [
1257
1255
  "aho-corasick",
1258
1256
  "memchr",
@@ -1262,9 +1260,9 @@ dependencies = [
1262
1260
 
1263
1261
  [[package]]
1264
1262
  name = "regex-automata"
1265
- version = "0.4.13"
1263
+ version = "0.4.14"
1266
1264
  source = "registry+https://github.com/rust-lang/crates.io-index"
1267
- checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
1265
+ checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
1268
1266
  dependencies = [
1269
1267
  "aho-corasick",
1270
1268
  "memchr",
@@ -1273,9 +1271,9 @@ dependencies = [
1273
1271
 
1274
1272
  [[package]]
1275
1273
  name = "regex-syntax"
1276
- version = "0.8.8"
1274
+ version = "0.8.9"
1277
1275
  source = "registry+https://github.com/rust-lang/crates.io-index"
1278
- checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
1276
+ checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c"
1279
1277
 
1280
1278
  [[package]]
1281
1279
  name = "reqwest"
@@ -1574,9 +1572,9 @@ checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
1574
1572
 
1575
1573
  [[package]]
1576
1574
  name = "slab"
1577
- version = "0.4.11"
1575
+ version = "0.4.12"
1578
1576
  source = "registry+https://github.com/rust-lang/crates.io-index"
1579
- checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
1577
+ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
1580
1578
 
1581
1579
  [[package]]
1582
1580
  name = "smallvec"
@@ -2298,15 +2296,15 @@ dependencies = [
2298
2296
 
2299
2297
  [[package]]
2300
2298
  name = "zlib-rs"
2301
- version = "0.5.5"
2299
+ version = "0.6.0"
2302
2300
  source = "registry+https://github.com/rust-lang/crates.io-index"
2303
- checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"
2301
+ checksum = "a7948af682ccbc3342b6e9420e8c51c1fe5d7bf7756002b4a3c6cabfe96a7e3c"
2304
2302
 
2305
2303
  [[package]]
2306
2304
  name = "zmij"
2307
- version = "1.0.17"
2305
+ version = "1.0.19"
2308
2306
  source = "registry+https://github.com/rust-lang/crates.io-index"
2309
- checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439"
2307
+ checksum = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445"
2310
2308
 
2311
2309
  [[package]]
2312
2310
  name = "zopfli"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "cloudcheck"
3
- version = "9.2.0"
3
+ version = "10.0.0"
4
4
  edition = "2024"
5
5
  description = "CloudCheck is a simple Rust tool to check whether an IP address or hostname belongs to a cloud provider."
6
6
  license = "GPL-3.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudcheck
3
- Version: 9.2.0
3
+ Version: 10.0.0
4
4
  Summary: Detailed database of cloud providers. Instantly look up a domain or IP address
5
5
  Home-Page: https://github.com/blacklanternsecurity/cloudcheck
6
6
  Requires-Python: >=3.9
@@ -18,12 +18,16 @@ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
18
18
  [![Python Tests](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/python-tests.yml/badge.svg?branch=stable)](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/python-tests.yml)
19
19
  [![Pipeline Tests](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/pipeline-tests.yml/badge.svg?branch=stable)](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/pipeline-tests.yml)
20
20
  [![Docker Tests](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/docker-tests.yml/badge.svg?branch=stable)](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/docker-tests.yml)
21
+ [![Daily Update](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/daily-update.yml/badge.svg?branch=stable)](https://github.com/blacklanternsecurity/cloudcheck/actions/workflows/daily-update.yml)
21
22
 
22
- ### UPDATE 01-2026: Now supports REST API!
23
+ > [!TIP]
24
+ > **UPDATE 01-2026:** Now supports REST API!
23
25
 
24
- ### UPDATE 12-2025: Now supports government agencies (DoD, FBI, UK MoD, RU FSO)!
26
+ > [!NOTE]
27
+ > **UPDATE 12-2025:** Now supports government agencies (DoD, FBI, UK MoD, RU FSO)!
25
28
 
26
- ### UPDATE 12-2025: Now rewritten in Rust!
29
+ > [!IMPORTANT]
30
+ > **UPDATE 12-2025:** Now rewritten in Rust!
27
31
 
28
32
  CloudCheck is a simple Rust tool to check whether an IP address or hostname belongs to a cloud provider. It includes:
29
33
 
@@ -33,7 +37,7 @@ CloudCheck is a simple Rust tool to check whether an IP address or hostname belo
33
37
 
34
38
  ## Cloud Provider Signatures
35
39
 
36
- The latest cloud provider signatures are available in [`cloud_providers_v2.json`](https://github.com/blacklanternsecurity/cloudcheck/blob/master/cloud_providers_v2.json), which is updated daily via CI/CD. Domains associated with each cloud provider are fetched dynamically from the [v2fly community repository](https://github.com/v2fly/domain-list-community), and CIDRs are fetched from [ASNDB](https://asndb.api.bbot.io/).
40
+ The latest cloud provider signatures are available in [`cloud_providers_v3.json`](https://github.com/blacklanternsecurity/cloudcheck/blob/master/cloud_providers_v3.json), which is updated daily via [CI/CD](.github/workflows/daily-update.yml). Domains associated with each cloud provider are fetched dynamically from the [v2fly community repository](https://github.com/v2fly/domain-list-community), and CIDRs are fetched from [ASNDB](https://asndb.api.bbot.io/).
37
41
 
38
42
  Used by [BBOT](https://github.com/blacklanternsecurity/bbot) and [BBOT Server](https://github.com/blacklanternsecurity/bbot-server).
39
43
 
@@ -224,66 +228,67 @@ When adding a new cloud provider:
224
228
  In addition to the above attributes, if you have a custom source of CIDRs or domains, you can override the `fetch_cidrs()` or `fetch_domains()` methods (which by default return an empty list) to go fetch your custom TXT/JSON file, etc.
225
229
 
226
230
  <!--PROVIDERTABLE-->
227
- ## Cloud Providers (56)
231
+ ## Cloud Providers (57)
228
232
 
229
233
  | Name | Description | Tags | Domains | Subnets |
230
234
  |------|-------------|------|---------|----------|
231
- | Akamai | A content delivery network and cloud services provider that delivers web and internet security services. | cloud | 81 | 6373 |
232
- | Alibaba Cloud | A Chinese cloud computing company and subsidiary of Alibaba Group, providing cloud services and infrastructure. | cloud | 394 | 90 |
233
- | Amazon Web Services | A comprehensive cloud computing platform provided by Amazon, offering infrastructure services, storage, and computing power. | cloud | 231 | 14204 |
234
- | Arvancloud | An Iranian cloud computing and content delivery network provider offering cloud infrastructure and CDN services. | cdn | 1 | 9 |
235
- | Backblaze | A cloud storage and backup service provider offering data backup and cloud storage solutions. | cloud | 2 | 27 |
236
- | Baidu Cloud Acceleration (百度云加速) | A Chinese content delivery network and cloud acceleration service provided by Baidu. | cdn | 134 | 0 |
237
- | CacheFly | A content delivery network provider offering global CDN services. | cdn | 0 | 82 |
235
+ | Akamai | A content delivery network and cloud services provider that delivers web and internet security services. | cloud | 81 | 6366 |
236
+ | Alibaba Cloud | A Chinese cloud computing company and subsidiary of Alibaba Group, providing cloud services and infrastructure. | cloud | 397 | 95 |
237
+ | Amazon Web Services | A comprehensive cloud computing platform provided by Amazon, offering infrastructure services, storage, and computing power. | cloud | 245 | 14813 |
238
+ | Arvancloud | An Iranian cloud computing and content delivery network provider offering cloud infrastructure and CDN services. | cdn | 1 | 20 |
239
+ | Backblaze | A cloud storage and backup service provider offering data backup and cloud storage solutions. | cloud | 2 | 26 |
240
+ | Baidu Cloud Acceleration (百度云加速) | A Chinese content delivery network and cloud acceleration service provided by Baidu. | cdn | 135 | 0 |
241
+ | CacheFly | A content delivery network provider offering global CDN services. | cdn | 0 | 81 |
238
242
  | CDNetworks (씨디네트웍스) | A Korean content delivery network provider offering CDN and cloud services. | cdn | 0 | 3 |
239
- | Cisco | A multinational technology corporation that designs, manufactures, and sells networking hardware, software, and telecommunications equipment. | cloud | 121 | 635 |
240
- | Cloudflare | A web infrastructure and security company providing content delivery network services, DDoS mitigation, and web security solutions. | waf | 71 | 2788 |
241
- | Amazon CloudFront | A content delivery network service provided by Amazon Web Services that delivers data, videos, applications, and APIs to customers globally. | cdn | 0 | 173 |
242
- | DDoS Guard | A DDoS protection and content delivery network service provider. | cdn | 0 | 18 |
243
- | Dell | A multinational technology company that develops, sells, repairs, and supports computers and related products and services. | cloud | 236 | 101 |
244
- | DigitalOcean | A cloud infrastructure provider offering virtual private servers, managed databases, and other cloud services for developers and businesses. | cloud | 4 | 271 |
245
- | Department of Defense | A U.S. government agency responsible for coordinating and supervising all agencies and functions of the government directly related to national security and the United States Armed Forces. | gov | 3 | 9169 |
243
+ | Cisco | A multinational technology corporation that designs, manufactures, and sells networking hardware, software, and telecommunications equipment. | cloud | 121 | 657 |
244
+ | Cloudflare | A web infrastructure and security company providing content delivery network services, DDoS mitigation, and web security solutions. | waf | 74 | 2851 |
245
+ | Amazon CloudFront | A content delivery network service provided by Amazon Web Services that delivers data, videos, applications, and APIs to customers globally. | cdn | 0 | 176 |
246
+ | DDoS Guard | A DDoS protection and content delivery network service provider. | cdn | 0 | 16 |
247
+ | Dell | A multinational technology company that develops, sells, repairs, and supports computers and related products and services. | cloud | 236 | 98 |
248
+ | DigitalOcean | A cloud infrastructure provider offering virtual private servers, managed databases, and other cloud services for developers and businesses. | cloud | 5 | 289 |
249
+ | Department of Defense | A U.S. government agency responsible for coordinating and supervising all agencies and functions of the government directly related to national security and the United States Armed Forces. | gov | 3 | 9101 |
246
250
  | Federal Bureau of Investigation | A U.S. government agency that serves as the domestic intelligence and security service, responsible for investigating federal crimes and protecting national security. | gov | 3 | 21 |
247
- | Fastly | A content delivery network and edge cloud platform that provides edge computing, security, and performance services. | cdn | 8 | 1068 |
251
+ | Fastly | A content delivery network and edge cloud platform that provides edge computing, security, and performance services. | cdn | 8 | 1107 |
248
252
  | Gabia (가비아) | A Korean cloud hosting and infrastructure provider. | cloud | 0 | 48 |
249
- | G-Core Labs | A content delivery network and cloud infrastructure provider offering CDN, cloud computing, and edge services. | cdn | 0 | 1409 |
250
- | GitHub | A web-based platform for version control and collaboration using Git, providing hosting for software development and code repositories. | cdn | 33 | 4299 |
253
+ | G-Core Labs | A content delivery network and cloud infrastructure provider offering CDN, cloud computing, and edge services. | cdn | 0 | 1395 |
254
+ | GitHub | A web-based platform for version control and collaboration using Git, providing hosting for software development and code repositories. | cdn | 33 | 4657 |
251
255
  | GoCache | A Brazilian content delivery network provider offering CDN services. | cdn | 0 | 25 |
252
- | Google Cloud | A suite of cloud computing services provided by Google, including infrastructure, platform, and software services for businesses and developers. | cloud | 1109 | 1874 |
253
- | Hewlett Packard Enterprise | A multinational enterprise information technology company that provides servers, storage, networking, and cloud services. | cloud | 16 | 38 |
256
+ | Google Cloud | A suite of cloud computing services provided by Google, including infrastructure, platform, and software services for businesses and developers. | cloud | 1111 | 1924 |
257
+ | Hewlett Packard Enterprise | A multinational enterprise information technology company that provides servers, storage, networking, and cloud services. | cloud | 16 | 41 |
254
258
  | Heroku | A cloud platform as a service that enables developers to build, run, and operate applications entirely in the cloud. | cloud | 12 | 0 |
255
259
  | Hetzner | A German cloud hosting provider offering dedicated servers, cloud instances, and storage solutions. | cloud | 15 | 120 |
256
260
  | Hostway (호스트웨이) | A Korean cloud hosting and infrastructure provider. | cloud | 0 | 59 |
257
- | Huawei | A Chinese multinational technology corporation that designs, develops, and sells telecommunications equipment, consumer electronics, and cloud services. | cloud | 338 | 267 |
258
- | IBM | A multinational technology corporation that provides hardware, software, cloud computing, and consulting services. | cloud | 20 | 391 |
259
- | Imperva | A cybersecurity company that provides web application firewall, DDoS protection, and data security solutions. | waf | 1 | 380 |
260
- | Kamatera | A cloud infrastructure provider offering virtual private servers, cloud servers, and managed cloud services. | cloud | 1 | 166 |
261
- | KINX (한국인터넷인프라) | A Korean content delivery network and cloud infrastructure provider. | cdn | 0 | 143 |
261
+ | Huawei | A Chinese multinational technology corporation that designs, develops, and sells telecommunications equipment, consumer electronics, and cloud services. | cloud | 340 | 265 |
262
+ | IBM | A multinational technology corporation that provides hardware, software, cloud computing, and consulting services. | cloud | 20 | 364 |
263
+ | iboss | A cloud security company providing secure web gateway, CASB, and zero trust network access services. | security | 0 | 65 |
264
+ | Imperva | A cybersecurity company that provides web application firewall, DDoS protection, and data security solutions. | waf | 1 | 352 |
265
+ | Kamatera | A cloud infrastructure provider offering virtual private servers, cloud servers, and managed cloud services. | cloud | 1 | 165 |
266
+ | KINX (한국인터넷인프라) | A Korean content delivery network and cloud infrastructure provider. | cdn | 0 | 147 |
262
267
  | KT Cloud (KT클라우드) | A Korean cloud computing service provided by KT Corporation. | cloud | 0 | 18 |
263
- | Leaseweb | A global hosting and cloud infrastructure provider offering dedicated servers, cloud hosting, and CDN services. | cloud | 0 | 1493 |
264
- | LG U+ (LG유플러스) | A Korean telecommunications company offering CDN services. | cdn | 0 | 168 |
265
- | Microsoft | A multinational technology corporation that develops, manufactures, licenses, supports and sells computer software, consumer electronics and personal computers. Known for products like Windows, Office, Azure cloud services, and Xbox. | cloud | 689 | 1179 |
266
- | Microsoft 365 | A cloud-based productivity suite provided by Microsoft, including Office applications and cloud services. | cloud | 189 | 82 |
268
+ | Leaseweb | A global hosting and cloud infrastructure provider offering dedicated servers, cloud hosting, and CDN services. | cloud | 0 | 1467 |
269
+ | LG U+ (LG유플러스) | A Korean telecommunications company offering CDN services. | cdn | 0 | 173 |
270
+ | Microsoft | A multinational technology corporation that develops, manufactures, licenses, supports and sells computer software, consumer electronics and personal computers. Known for products like Windows, Office, Azure cloud services, and Xbox. | cloud | 690 | 2538 |
271
+ | Microsoft 365 | A cloud-based productivity suite provided by Microsoft, including Office applications and cloud services. | cloud | 186 | 82 |
267
272
  | Naver Cloud Platform (네이버 클라우드 플랫폼) | A Korean cloud computing platform provided by Naver Corporation. | cloud | 0 | 73 |
268
273
  | NHN Cloud (NHN클라우드) | A Korean cloud computing platform provided by NHN Corporation. | cloud | 0 | 122 |
269
- | OVHcloud | A French cloud computing company that provides web hosting, dedicated servers, and cloud infrastructure services. | cloud | 3 | 533 |
270
- | Oracle | A multinational technology corporation that provides database software, cloud engineering systems, and enterprise software products. | cloud | 18 | 2399 |
271
- | Qrator | A DDoS protection and content delivery network service provider. | cdn | 0 | 19 |
272
- | Quic.cloud | A content delivery network and edge computing platform providing CDN services. | cdn | 0 | 155 |
274
+ | OVHcloud | A French cloud computing company that provides web hosting, dedicated servers, and cloud infrastructure services. | cloud | 3 | 570 |
275
+ | Oracle | A multinational technology corporation that provides database software, cloud engineering systems, and enterprise software products. | cloud | 19 | 2604 |
276
+ | Qrator | A DDoS protection and content delivery network service provider. | cdn | 0 | 23 |
277
+ | Quic.cloud | A content delivery network and edge computing platform providing CDN services. | cdn | 0 | 153 |
273
278
  | Russian Federal Security Service | A Russian federal executive body responsible for counterintelligence, internal and border security, counterterrorism, and surveillance. | gov | 0 | 17 |
274
- | Rackspace | A managed cloud computing company that provides hosting, cloud services, and managed infrastructure solutions. | cloud | 1 | 200 |
275
- | Salesforce | A cloud-based software company that provides customer relationship management services and enterprise cloud computing solutions. | cloud | 39 | 48 |
276
- | Scaleway | A French cloud computing company that provides virtual private servers, bare metal servers, and cloud infrastructure services. | cloud | 1 | 42 |
279
+ | Rackspace | A managed cloud computing company that provides hosting, cloud services, and managed infrastructure solutions. | cloud | 1 | 213 |
280
+ | Salesforce | A cloud-based software company that provides customer relationship management services and enterprise cloud computing solutions. | cloud | 41 | 47 |
281
+ | Scaleway | A French cloud computing company that provides virtual private servers, bare metal servers, and cloud infrastructure services. | cloud | 1 | 44 |
277
282
  | SK Broadband (SK브로드밴드) | A Korean telecommunications company offering CDN services. | cdn | 0 | 22 |
278
283
  | StormWall | A DDoS protection and web application firewall service provider. | cdn | 0 | 18 |
279
- | Sucuri | A website security and web application firewall service provider. | waf | 0 | 16 |
280
- | Tencent Cloud (腾讯云) | A Chinese cloud computing service provider and subsidiary of Tencent, offering cloud infrastructure and platform services. | cloud | 597 | 371 |
284
+ | Sucuri | A website security and web application firewall service provider. | waf | 0 | 20 |
285
+ | Tencent Cloud (腾讯云) | A Chinese cloud computing service provider and subsidiary of Tencent, offering cloud infrastructure and platform services. | cloud | 599 | 356 |
281
286
  | United Kingdom Ministry of Defence | A U.K. government department responsible for implementing the defence policy of the United Kingdom and managing the British Armed Forces. | gov | 1 | 0 |
282
- | Wasabi | A cloud storage provider offering hot cloud storage services with high performance and low cost. | cloud | 1 | 20 |
287
+ | Wasabi | A cloud storage provider offering hot cloud storage services with high performance and low cost. | cloud | 1 | 19 |
283
288
  | X4B | A DDoS protection and content delivery network service provider. | cdn | 0 | 2 |
284
- | Yandex Cloud | Russian cloud computing and internet services provider, offering infrastructure, storage, and various digital services. | cloud | 56 | 77 |
285
- | Zoho | An Indian software company that provides cloud-based business software and productivity tools including CRM, email, and office suites. | cloud | 13 | 85 |
286
- | Zscaler | A cloud security company providing secure internet access, cloud security, and zero trust network access services. | cloud | 0 | 251 |
289
+ | Yandex Cloud | Russian cloud computing and internet services provider, offering infrastructure, storage, and various digital services. | cloud | 129 | 79 |
290
+ | Zoho | An Indian software company that provides cloud-based business software and productivity tools including CRM, email, and office suites. | cloud | 13 | 92 |
291
+ | Zscaler | A cloud security company providing secure internet access, cloud security, and zero trust network access services. | cloud | 0 | 277 |
287
292
  <!--ENDPROVIDERTABLE-->
288
293
 
289
294
  ## Development