├── .github
├── linters
│ ├── .ruff.toml
│ ├── .python-black
│ ├── .checkov.yml
│ ├── .flake8
│ └── .jscpd.json
└── workflows
│ └── helm-chart-releaser.yml
├── deployhub-pro.code-workspace
├── package.json
├── charts
└── deployhub
│ ├── values.yaml
│ ├── Chart.yaml
│ ├── LICENSE.md
│ └── README.md
├── procedures
├── RunAnsiblePlayBook.re
├── HelmUpgrade.re
├── GetWinShareCredentials.re
├── RunWinShare.re
├── WriteEnv2File.re
└── WriteEnv2Toml.re
├── .mega-linter.yml
├── renovate.json
├── README.md
├── .gitignore
├── main.js
├── yarn.lock
├── LICENSE.md
└── SLA.md
/.github/linters/.ruff.toml:
--------------------------------------------------------------------------------
1 |
2 | line-length = 200
3 |
--------------------------------------------------------------------------------
/.github/linters/.python-black:
--------------------------------------------------------------------------------
1 |
2 | [tool.black]
3 | line-length = 200
4 |
--------------------------------------------------------------------------------
/.github/linters/.checkov.yml:
--------------------------------------------------------------------------------
1 | skip-check: CKV_OPENAPI_3,CKV_OPENAPI_4,CKV_OPENAPI_5
2 |
--------------------------------------------------------------------------------
/deployhub-pro.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "."
5 | }
6 | ]
7 | }
--------------------------------------------------------------------------------
/.github/linters/.flake8:
--------------------------------------------------------------------------------
1 | [flake8]
2 | ignore = E203, E266, E501, W503, F403, F401
3 | max-line-length = 200
4 | max-complexity = 30
5 | select = B,C,E,F,W,T4,B9
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chartgen",
3 | "version": "10.0.0",
4 | "engines": {
5 | "node": ">=14",
6 | "npm": ">=8"
7 | },
8 | "dependencies": {
9 | "axios": "^1.6.0",
10 | "js-yaml": "^4.1.0"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/.github/linters/.jscpd.json:
--------------------------------------------------------------------------------
1 | {
2 | "threshold": 0,
3 | "reporters": ["html", "markdown"],
4 | "ignore": [
5 | "**/node_modules/**",
6 | "**/.git/**",
7 | "**/.rbenv/**",
8 | "**/.venv/**",
9 | "**/*cache*/**",
10 | "**/.github/**",
11 | "**/.idea/**",
12 | "**/report/**",
13 | "**/*.svg"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/charts/deployhub/values.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | # Ingress and SSL Definition
3 | dh-ms-nginx:
4 | ingress:
5 | type: ssloff # sslcert, alb, volumemnt, ssloff
6 | alb_certificate_arn:
7 | alb_subnets:
8 | sslcert:
9 | chainedcert:
10 | privatekey:
11 |
12 | # Database Connection Definition
13 | dh-postgres:
14 | dbhost: localhost
15 | dbname: postgres
16 | dbpass: postgres
17 | dbport: "5432"
18 | dbuser: postgres
19 |
--------------------------------------------------------------------------------
/procedures/RunAnsiblePlayBook.re:
--------------------------------------------------------------------------------
1 |
2 |
3 | 3
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.mega-linter.yml:
--------------------------------------------------------------------------------
1 | # Configuration file for MegaLinter
2 | # See all available variables at https://megalinter.io/configuration/ and in linters documentation
3 |
4 | APPLY_FIXES: all # all, none, or list of linter keys
5 |
6 | SHOW_ELAPSED_TIME: true
7 | FILEIO_REPORTER: false
8 | PYTHON_BLACK_CONFIG_FILE: .python-black
9 | YAML_PRETTIER_FILTER_REGEX_EXCLUDE: templates/
10 | YAML_YAMLLINT_FILTER_REGEX_EXCLUDE: templates/
11 | DISABLE_LINTERS:
12 | - REPOSITORY_DUSTILOCK
13 | - REPOSITORY_GIT_DIFF
14 | - REPOSITORY_TRIVY
15 | - REPOSITORY_DEVSKIM
16 | - REPOSITORY_CHECKOV
17 | DISABLE:
18 | - COPYPASTE
19 | - SPELL
20 |
--------------------------------------------------------------------------------
/procedures/HelmUpgrade.re:
--------------------------------------------------------------------------------
1 |
2 |
3 | 3
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "extends": ["config:base", "group:all"],
4 | "ignorePaths": ["charts/**", "requirements.txt"],
5 | "schedule": ["every 1 hours every weekday"],
6 | "prHourlyLimit": 4,
7 | "pip_requirements": {
8 | "fileMatch": ["(^|/)requirements\\.in$"]
9 | },
10 | "pip-compile": {
11 | "fileMatch": ["(^|/)requirements\\.in$"]
12 | },
13 | "groupName": "all dependencies",
14 | "groupSlug": "all",
15 | "lockFileMaintenance": {
16 | "enabled": false
17 | },
18 | "packageRules": [
19 | {
20 | "groupName": "all dependencies",
21 | "groupSlug": "all",
22 | "matchPackagePatterns": [".*"],
23 | "automerge": true,
24 | "autoApprove": true
25 | }
26 | ],
27 | "separateMajorMinor": false,
28 | "pinDigests": true
29 | }
30 |
--------------------------------------------------------------------------------
/procedures/GetWinShareCredentials.re:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2
4 |
5 | aWYgKCRjcmVkbmFtZSAhPSAiIikgewoJLy8gVXNlIFN1cHBsaWVkIENyZWRlbnRpYWwgTmFtZQoJZWNobyAiSU5GTzogVXNpbmcgU3VwcGxpZWQgQ3JlZGVudGlhbCAkY3JlZG5hbWUiOwoJc2V0IGNyZWQgPSBnZXRjcmVkZW50aWFsKCRjcmVkbmFtZSk7Cn0gZWxzZSB7CgkvLyBVc2UgU2VydmVyIENyZWRlbnRpYWwKCXNldCBjcmVkID0gJHtzZXJ2ZXIuY3JlZGVudGlhbH07CglpZiAoJHtjcmVkLmlkfSkgewoJCWVjaG8gIklORk86IFVzaW5nIENyZWRlbnRpYWwgZm9yIFNlcnZlciAke3NlcnZlci5uYW1lfSI7Cgl9Cn0KaWYgKCR7Y3JlZC5pZH0pIHsKICAgICAgICBzZXQgLWcgd2luc2hhcmVfdXNlciA9ICR7Y3JlZC51c2VybmFtZX07CiAgICAgICAgc2V0IC1nIHdpbnNoYXJlX3Bhc3MgPSAke2NyZWQucGFzc3dvcmR9Owp9IGVsc2UgewoJZWNobyAiSU5GTzogTm8gY3JlZGVudGlhbHMgYXZhaWxhYmxlIjsKfQ==
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/procedures/RunWinShare.re:
--------------------------------------------------------------------------------
1 |
2 |
3 | 3
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/charts/deployhub/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v2
2 | name: deployhub
3 | description: DeployHub Pro
4 | home: https://www.deployhub.com
5 | icon: https://deployhubproject.github.io/DeployHub-Pro/deployhub.svg
6 | keywords:
7 | - Service Catalog
8 | - Microservices
9 | - SBOM
10 | type: application
11 | version: 10.0.410
12 | appVersion: 10.0.0
13 | dependencies:
14 | - name: ms-general
15 | version: 11.0.801
16 | repository: https://deployhubproject.github.io/charts/
17 | - name: ms-nginx
18 | version: 11.0.801
19 | repository: https://deployhubproject.github.io/charts/
20 | - name: ms-ui
21 | version: 11.0.801
22 | repository: https://deployhubproject.github.io/charts/
23 | - name: ms-compitem-crud
24 | version: 10.0.1521
25 | repository: https://ortelius.github.io/ms-compitem-crud/
26 | - name: ms-dep-pkg-cud
27 | version: 10.0.1568
28 | repository: https://ortelius.github.io/ms-dep-pkg-cud/
29 | - name: ms-dep-pkg-r
30 | version: 10.0.1545
31 | repository: https://ortelius.github.io/ms-dep-pkg-r/
32 | - name: ms-postgres
33 | version: 10.0.455
34 | repository: https://ortelius.github.io/ms-postgres/
35 | condition: global.postgresql.enabled
36 | - name: ms-sbom-export
37 | version: 10.0.868
38 | repository: https://ortelius.github.io/ms-sbom-export/
39 | - name: ms-scorecard
40 | version: 10.0.1265
41 | repository: https://ortelius.github.io/ms-scorecard/
42 | - name: ms-textfile-crud
43 | version: 10.0.1609
44 | repository: https://ortelius.github.io/ms-textfile-crud/
45 | - name: ms-validate-user
46 | version: 10.0.1606
47 | repository: https://ortelius.github.io/ms-validate-user/
48 | - name: scec-arangodb
49 | version: 11.0.4
50 | repository: https://ortelius.github.io/scec-arangodb/
51 | - name: scec-deppkg
52 | version: 11.0.1136
53 | repository: https://ortelius.github.io/scec-deppkg/
54 | - name: scec-vulnerability
55 | version: 11.0.1354
56 | repository: https://ortelius.github.io/scec-vulnerability/
57 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Microservice Configuration Management - Track, Version, Find, Share and Deploy Microservices
2 |
3 | * Publish and Share your Kubernetes Microservices and other Artifacts using a [Domain Driven Design](https://www.deployhub.com/domain-driven-design-microservices/).
4 | * [Version your Microservices](https://www.deployhub.com/versioning-container-content-the-single-source-of-truth/) and create a single source of truth. Associate microservice versions to applications.
5 | * Add DeployHub to your existing CI/CD Process to automate continuous deployments or begin driving a [Kubernetes Pipeline](https://www.deployhub.com/kubernetes-pipeline-challenges/).
6 |
7 | ## Detailed Install Instructions
8 |
9 | * [Saas Reverse Proxy Install](https://www.deployhub.com/reverse-proxy-setup/)
10 | * [On-Prem Install](https://www.deployhub.com/deployhub-pro-on-prem-installation/)
11 |
12 | ## Support
13 |
14 | * [Issues Tracking](https://github.com/DeployHubProject/DeployHub-Pro/issues)
15 | * [Online User Guide](https://docs.deployhub.com)
16 |
17 | ## DeployHub and DeployHub Pro Features
18 |
19 | * Easy Installation - No End Point Agents
20 | * Easy to configure - graphical application packaging
21 | * Integrates with Infrastructure Configuration Management
22 | * Push or Pull deployments with version 'jumping'
23 | * Database Management Support
24 | * Pre-Built Reusable Deployment Actions and Workflows
25 | * Jenkins and Continuous Delivery Plugins
26 | * Multi-Platform (Linux, UNIX, Windows, z/OS, iSeries, Cisco Routers)
27 | * Rollback and Roll Forward Recovery
28 | * Environment Modeling and Management
29 | * Continuous Feedback Loop from Build to End Point
30 |
31 | ## DeployHub Pro Only Features
32 |
33 | * Release Train Management (manage multiple applications)
34 | * Calendar with integrated pre-approvals and blocking
35 | * Role Based Security
36 | * Change Request Tracking
37 | * Continuous Feedback Loop from issue tracking to endpoint
38 | * Change Request Burn Down Charts
39 | * Component Sharing and Workflow Templates
40 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
131 | #DS_Store
132 | .DS_Store
133 | **/.DS_Store
134 |
135 | # MegaLinter
136 | megalinter-reports/
137 | node_modules/
138 |
139 |
--------------------------------------------------------------------------------
/.github/workflows/helm-chart-releaser.yml:
--------------------------------------------------------------------------------
1 | name: Release Charts
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | workflow_dispatch:
8 |
9 | jobs:
10 | setenv:
11 | runs-on: ubuntu-latest
12 |
13 | outputs:
14 | short_sha: ${{ steps.env.outputs.short_sha }}
15 | chart_version: ${{ steps.env.outputs.chart_version }}
16 | image_version: ${{ steps.env.outputs.image_version }}
17 | image_tag: ${{ steps.env.outputs.image_tag }}
18 | image_repo_tag: ${{ steps.env.outputs.image_repo_tag }}
19 | image_repository: ${{ steps.env.outputs.image_repository }}
20 | registry: ${{ steps.env.outputs.registry }}
21 | branch: ${{ steps.env.outputs.branch }}
22 | compname: ${{ steps.env.outputs.compname }}
23 | dhurl: ${{ steps.env.outputs.dhurl }}
24 | gh_handle: ${{ steps.env.outputs.gh_handle }}
25 |
26 | steps:
27 | - name: Harden Runner
28 | uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
29 | with:
30 | egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
31 |
32 | - name: Checkout
33 | id: checkout
34 | uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
35 | with:
36 | fetch-depth: 1
37 |
38 | - name: Export env
39 | id: env
40 | env:
41 | DHURL: https://console.deployhub.com
42 | REGISTRY: quay.io
43 | BRANCH: ${{ github.head_ref || github.ref_name }}
44 | run: |
45 | BRANCH=$(echo "${{ env.BRANCH }}" | cut -d'/' -f1)
46 | BASE_VERSION=$(curl -s "https://deployhubproject.github.io/${{ github.event.repository.name }}/index.yaml" | grep version: | awk '{print $2}' | cut -f1-2 -d. | sort -u -r --version-sort | head -1)
47 | SHORT_SHA=$(echo ${{ github.sha }} | cut -c 1-6)
48 | {
49 | echo "dhurl=${{ env.DHURL }}"
50 | echo "branch=${BRANCH}"
51 | echo "chart_version=${BASE_VERSION}.${{ github.run_number }}"
52 | echo "compname=deployhub"
53 | echo "image_repo_tag=${{ env.REGISTRY }}/${{ github.repository }}:${BRANCH}-v${BASE_VERSION}.${{ github.run_number }}-g${SHORT_SHA}"
54 | echo "image_repository=${{ env.REGISTRY }}/${{ github.repository }}"
55 | echo "image_tag=${BRANCH}-v${BASE_VERSION}.${{ github.run_number }}-g${SHORT_SHA}"
56 | echo "image_version=${BASE_VERSION}.${{ github.run_number }}-g${SHORT_SHA}"
57 | echo "registry=${{ env.REGISTRY }}"
58 | echo "short_sha=${SHORT_SHA}"
59 | echo "gh_handle=$GITHUB_ACTOR"
60 | } >> "$GITHUB_OUTPUT"
61 |
62 | release:
63 | runs-on: ubuntu-latest
64 | needs: setenv
65 |
66 | steps:
67 | - name: Helm Chart Releaser
68 | uses: DeployHubProject/ms-cr-action@4666ac1f5d4a8fc4d06bb3cf117c3ba7c1973ed2 # v1.2.163
69 | with:
70 | gpg_keyring_base64: ${{ secrets.GPG_KEYRING_BASE64 }}
71 | gpg_passphrase: ${{ secrets.GPG_PASSPHRASE }}
72 | gpg_key: ${{ secrets.GPG_KEY }}
73 | gh_token: ${{ secrets.DH_HELM_INDEXER_TOKEN }}
74 | gh_handle: ${{ needs.setenv.outputs.gh_handle }}
75 | chart: charts/${{ needs.setenv.outputs.compname }}
76 |
--------------------------------------------------------------------------------
/procedures/WriteEnv2File.re:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2
4 |
5 | ICBzZXQgLWcgUnNwRmlsZSA9ICR7ZHJvcHpvbmUucGF0aH0gKyAiL2Vudi5kYXQiOwogICAgc2V0IGQgPSBub3coKTsKICAgIHNldCBzbmFtZSA9ICJzIiArICR7ZC50b19pbnQoKX07CgogICAgZXZhbCgidXNpbmcgc3RyZWFtIFwkJHNuYW1lOyIpOwogICAgZXZhbCgic2V0IGVudnN0cmVhbSA9IFwkJHNuYW1lOyIpOwogICAgIAogICAgdXNpbmcgc3RyZWFtICRlbnZzdHJlYW0gewogICAgZWNobyAiZHJvcHpvbmU6ICIgKyAke2Ryb3B6b25lLnBhdGh9OwogICAgZWNobyAiZW52aXJvbm1lbnQ6ICIgKyAke2Vudmlyb25tZW50Lm5hbWV9OwogICAgZWNobyAiYXBwbGljYXRpb246ICIgKyAke2FwcGxpY2F0aW9uLm5hbWV9OwogICAgZWNobyAiY29tcG9uZW50OiAiICsgJHtjb21wb25lbnQubmFtZX07CiAgICBlY2hvICJzZXJ2ZXJfbmFtZTogIiArICR7c2VydmVyLm5hbWV9OwogICAgZWNobyAic2VydmVyX2hvc3RuYW1lOiAiICsgJHtzZXJ2ZXIuaG9zdG5hbWV9OwogICAgZWNobyAidGFyZ2V0T1M6ICIgKyAke3NlcnZlci50eXBlfTsKICAgIAogICAgc2V0IGNyZWQgPSAke3NlcnZlci5jcmVkZW50aWFsfTsKICAgIGlmICgke2NyZWQuaWR9KQogICAgewogICAgIGVjaG8gInNzaHVzZXI6ICIgKyAke2NyZWQudXNlcm5hbWV9OwogICAgIGlmICgke2NyZWQua2luZG5hbWV9ID0gIlByaXZhdGUgS2V5IikKICAgICB7CiAgICAgIGVjaG8gInNzaGtleWZpbGU6ICIgKyAke2NyZWQuZmlsZW5hbWV9OwogICAgIH0KICAgICBlbHNlCiAgICAgewogICAgICBlY2hvICJzc2hwYXNzOiAiICsgJHtjcmVkLnBhc3N3b3JkfTsKICAgICB9CiAgICB9CiAgICAKICAgICAgICAKICAgIGlmICgke2Vudmlyb25tZW50LmlkfSkKICAgIHsgICAgCiAgICAgZm9yZWFjaChlbnZhdDogJHtlbnZpcm9ubWVudC5hdHRyaWJ1dGVzfSkgCiAgICAgeyAgCiAgICAgICBlY2hvICRlbnZhdCArICI6ICIgKyAke2Vudmlyb25tZW50LmF0dHJpYnV0ZXNbJGVudmF0XX07CiAgICAgfQogICAgfQogICAgCiAgICBpZiAoJHthcHBsaWNhdGlvbi5pZH0pCiAgICB7ICAgCiAgICAgZm9yZWFjaChhcHBhdDogJHthcHBsaWNhdGlvbi5hdHRyaWJ1dGVzfSkgCiAgICAgeyAgCiAgICAgICBlY2hvICRhcHBhdCArICI6ICIgKyAke2FwcGxpY2F0aW9uLmF0dHJpYnV0ZXNbJGFwcGF0XX07CiAgICAgfQogICAgfSAKICAgICAgICAKICAgIGlmICgke3NlcnZlci5pZH0pCiAgICB7IAogICAgIGZvcmVhY2goc3J2YXQ6ICR7c2VydmVyLmF0dHJpYnV0ZXN9KSAKICAgICB7ICAKICAgICAgZWNobyAkc3J2YXQgKyAiOiAiICsgJHtzZXJ2ZXIuYXR0cmlidXRlc1skc3J2YXRdfTsKICAgICB9CiAgICB9IAogICAgICAKICAgIGlmICgke2NvbXBvbmVudC5pZH0pCiAgICB7ICAgICAgICAgICAgICAgICAgICAgICAKICAgICBmb3JlYWNoKGNvbXBhdDogJHtjb21wb25lbnQuYXR0cmlidXRlc30pIAogICAgIHsgIAogICAgICBlY2hvICRjb21wYXQgKyAiOiAiICsgJHtjb21wb25lbnQuYXR0cmlidXRlc1skY29tcGF0XX07ICAgICAgIAogICAgIH0KICAgIH0KICAgICAgICAgICAgICAKICAgIHNldCBjcmVkcyA9ICR7ZW52aXJvbm1lbnQuYXR0cmlidXRlc1snY3JlZHMnXX07CiAgICAKICAgIGZvcmVhY2goY3JlZDogJGNyZWRzKSAKICAgIHsKICAgICBzZXQgY3JlZG5hbWUgPSAke2NyZWRzWyRjcmVkXX07CiAgICAgc2V0IGMgPSBnZXRjcmVkZW50aWFsKCRjcmVkbmFtZSk7CiAgICAgIAogICAgIGVjaG8gJGNyZWQgKyAidXNlcjogIiArICR7Yy51c2VybmFtZX07CiAgICAgZWNobyAkY3JlZCArICJwYXNzOiAiICsgJHtjLnBhc3N3b3JkfTsgCiAgICB9CiAgICAKICAgIHNldCBjcmVkcyA9ICR7ZW52aXJvbm1lbnQuYXR0cmlidXRlc1snY3JlZHMnXX07CiAgICAKICAgIGZvcmVhY2goY3JlZDogJGNyZWRzKSAKICAgIHsKICAgICBzZXQgY3JlZG5hbWUgPSAke2NyZWRzWyRjcmVkXX07CiAgICAgc2V0IGMgPSBnZXRjcmVkZW50aWFsKCRjcmVkbmFtZSk7CiAgICAgIAogICAgIGVjaG8gJGNyZWQgKyAidXNlcjogIiArICR7Yy51c2VybmFtZX07CiAgICAgZWNobyAkY3JlZCArICJwYXNzOiAiICsgJHtjLnBhc3N3b3JkfTsgCiAgICB9CiAgICAKICAgIHNldCBjcmVkcyA9ICR7YXBwbGljYXRpb24uYXR0cmlidXRlc1snY3JlZHMnXX07CiAgICAKICAgIGZvcmVhY2goY3JlZDogJGNyZWRzKSAKICAgIHsKICAgICBzZXQgY3JlZG5hbWUgPSAke2NyZWRzWyRjcmVkXX07CiAgICAgc2V0IGMgPSBnZXRjcmVkZW50aWFsKCRjcmVkbmFtZSk7CiAgICAgIAogICAgIGVjaG8gJGNyZWQgKyAidXNlcjogIiArICR7Yy51c2VybmFtZX07CiAgICAgZWNobyAkY3JlZCArICJwYXNzOiAiICsgJHtjLnBhc3N3b3JkfTsgCiAgICB9CiAgICAKICAgIHNldCBjcmVkcyA9ICR7c2VydmVyLmF0dHJpYnV0ZXNbJ2NyZWRzJ119OwogICAgCiAgICBmb3JlYWNoKGNyZWQ6ICRjcmVkcykgCiAgICB7CiAgICAgc2V0IGNyZWRuYW1lID0gJHtjcmVkc1skY3JlZF19OwogICAgIHNldCBjID0gZ2V0Y3JlZGVudGlhbCgkY3JlZG5hbWUpOwogICAgICAKICAgICBlY2hvICRjcmVkICsgInVzZXI6ICIgKyAke2MudXNlcm5hbWV9OwogICAgIGVjaG8gJGNyZWQgKyAicGFzczogIiArICR7Yy5wYXNzd29yZH07IAogICAgfQogICAgCiAgICBzZXQgY3JlZHMgPSAke2NvbXBvbmVudC5hdHRyaWJ1dGVzWydjcmVkcyddfTsKICAgIAogICAgZm9yZWFjaChjcmVkOiAkY3JlZHMpIAogICAgewogICAgIHNldCBjcmVkbmFtZSA9ICR7Y3JlZHNbJGNyZWRdfTsKICAgICBzZXQgYyA9IGdldGNyZWRlbnRpYWwoJGNyZWRuYW1lKTsKICAgICAgCiAgICAgZWNobyAkY3JlZCArICJ1c2VyOiAiICsgJHtjLnVzZXJuYW1lfTsKICAgICBlY2hvICRjcmVkICsgInBhc3M6ICIgKyAke2MucGFzc3dvcmR9OyAKICAgIH0KICAgICAgICAgICAgICAgICAgICAKICAgIGNyZWF0ZShmaWxlOiAiZW52LmRhdCIsIHN0cmVhbTogJGVudnN0cmVhbSk7CiB9
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/main.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios')
2 | const yaml = require('js-yaml')
3 | const fs = require('fs')
4 | require('process')
5 |
6 | const chartRepos = [
7 | 'DeployHubProject/charts',
8 | 'ortelius/ms-compitem-crud',
9 | 'ortelius/ms-dep-pkg-cud',
10 | 'ortelius/ms-dep-pkg-r',
11 | 'ortelius/ms-postgres',
12 | 'ortelius/ms-sbom-export',
13 | 'ortelius/ms-scorecard',
14 | 'ortelius/ms-textfile-crud',
15 | 'ortelius/ms-validate-user',
16 | 'ortelius/scec-arangodb',
17 | 'ortelius/scec-deppkg',
18 | 'ortelius/scec-vulnerability'
19 | ]
20 |
21 | // Helper functions
22 | async function getChartEntries () {
23 | let sha = ''
24 |
25 | await axios.get('https://api.github.com/repos/DeployHubProject/DeployHub-Pro/commits/main').then(response => {
26 | sha = response.data.sha
27 | })
28 |
29 | const url = 'https://raw.githubusercontent.com/DeployHubProject/DeployHub-Pro/' + sha + '/charts/deployhub/Chart.yaml'
30 | let parts = []
31 | let latest = ''
32 | let ver = ''
33 |
34 | await axios.get(url).then(response => {
35 | const parsedYaml = yaml.load(response.data)
36 | chartVersion = parsedYaml.version
37 | parts = chartVersion.split('.')
38 | ver = parseInt(parts[2]) + 1
39 | parts[2] = ver.toString()
40 | chartVersion = parts.join('.')
41 | })
42 |
43 | const latestChart = []
44 |
45 | for (let i = 0; i < chartRepos.length; i++) {
46 | await axios.get('https://api.github.com/repos/' + chartRepos[i] + '/commits/gh-pages').then(response => {
47 | sha = response.data.sha
48 | })
49 |
50 | const repoUrl = 'https://raw.githubusercontent.com/' + chartRepos[i] + '/' + sha + '/index.yaml'
51 |
52 | await axios.get(repoUrl).then(response => {
53 | const parsedYaml = yaml.load(response.data)
54 | const entries = parsedYaml.entries
55 |
56 | Object.keys(entries).forEach(key => {
57 | latest = null
58 |
59 | Object.entries(entries[key]).forEach(entry => {
60 | if (latest == null) { latest = entry } else if (latest.created < entry.created) { latest = entry }
61 | })
62 | latest = latest[1]
63 |
64 | if (latest.name !== 'dh-jwt' && latest.name !== 'dh-postgres' && latest.name !== 'dh-ms-ui' && latest.name !== 'dh-ms-nginx' && latest.name !== 'dh-ms-general') {
65 | const dep = {}
66 | dep.name = latest.name
67 | dep.version = latest.version
68 |
69 | if (key === 'ms-ui' || key === 'ms-nginx' || key === 'ms-general') {
70 | key = 'charts'
71 | dep.repository = 'https://deployhubproject.github.io/' + key + '/'
72 | } else { dep.repository = 'https://ortelius.github.io/' + key + '/' }
73 |
74 | if (key === 'ms-postgres') { dep.condition = 'global.postgresql.enabled' }
75 |
76 | latestChart.push(dep)
77 | }
78 |
79 | // chartEntries[key] = entries[key]
80 | // console.log(entries[key]);
81 | })
82 | })
83 | }
84 | chartEntries = latestChart
85 | return latestChart
86 | }
87 |
88 | function createYamlOutput () {
89 | const output = yaml.dump({
90 | apiVersion: 'v2',
91 | name: 'deployhub',
92 | description: 'DeployHub Pro',
93 | home: 'https://www.deployhub.com',
94 | icon: 'https://deployhubproject.github.io/DeployHub-Pro/deployhub.svg',
95 | keywords: ['Service Catalog', 'Microservices', 'SBOM'],
96 | type: 'application',
97 | version: chartVersion,
98 | appVersion: '10.0.0',
99 | dependencies: chartEntries
100 | }, { noArrayIndent: true })
101 |
102 | fs.readFile('./charts/deployhub/README.md', 'utf8', function (err, data) {
103 | if (err) {
104 | return console.log(err)
105 | }
106 | const result = data.replace(/DEPLOYHUB_VERSION=\d+\.\d+\.\d+/g, 'DEPLOYHUB_VERSION=' + chartVersion)
107 |
108 | fs.writeFile('./charts/deployhub/README.md', result, 'utf8', function (err) {
109 | if (err) return console.log(err)
110 | })
111 | })
112 |
113 | return output
114 | }
115 | // -----------------
116 |
117 | let chartEntries = []
118 | let chartVersion = ''
119 |
120 | getChartEntries().then(() => {
121 | const yamlOutput = createYamlOutput()
122 | console.log(yamlOutput)
123 | fs.writeFileSync('./charts/deployhub/Chart.yaml', yamlOutput, 'utf8', (err) => {
124 | console.log(err)
125 | })
126 | })
127 |
--------------------------------------------------------------------------------
/procedures/WriteEnv2Toml.re:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2
4 |
5 | ZWNobyAiQ3JlYXRpbmcgVmFsdWVzIFRPTUwgRmlsZSI7CgogIHNldCAtZyBSc3BGaWxlID0gJHtkcm9wem9uZS5wYXRofSArICIvdmFsdWVzLnRvbWwiOwogICAgIAogICAgc2V0IGQgPSBub3coKTsKICAgIHNldCBzbmFtZSA9ICJzIiArICR7ZC50b19pbnQoKX07CgogICAgZXZhbCgidXNpbmcgc3RyZWFtIFwkJHNuYW1lOyIpOwogICAgZXZhbCgic2V0IGVudnN0cmVhbSA9IFwkJHNuYW1lOyIpOwogICAgCiAgICB1c2luZyBzdHJlYW0gJGVudnN0cmVhbSB7CiAgICBlY2hvICJkcm9wem9uZSA9IFwiIiArICR7ZHJvcHpvbmUucGF0aH0gKyAiXCIiOwogICAgZWNobyAiZW52aXJvbm1lbnQgPSBcIiIgKyAke2Vudmlyb25tZW50Lm5hbWV9ICsgIlwiIjsKICAgIGVjaG8gImFwcGxpY2F0aW9uID0gXCIiICsgJHthcHBsaWNhdGlvbi5uYW1lfSArICJcIiI7CiAgICBlY2hvICJzZXJ2ZXJfbmFtZSA9IFwiIiArICR7c2VydmVyLm5hbWV9ICsgIlwiIjsKICAgIGVjaG8gInNlcnZlcl9ob3N0bmFtZSA9IFwiIiArICR7c2VydmVyLmhvc3RuYW1lfSArICJcIiI7CiAgICBlY2hvICJjb21wb25lbnQgPSBcIiIgKyAke2NvbXBvbmVudC5uYW1lfSArICJcIiI7CiAgICAKICAgIHNldCBjcmVkID0gJHtzZXJ2ZXIuY3JlZGVudGlhbH07CiAgICBpZiAoJHtjcmVkLmlkfSkKICAgIHsKICAgICBlY2hvICJzc2h1c2VyID0gXCIiICsgJHtjcmVkLnVzZXJuYW1lfSArICJcIiI7CiAgICAgaWYgKCR7Y3JlZC5raW5kbmFtZX0gPSAiUHJpdmF0ZSBLZXkiKQogICAgIHsKICAgICAgZWNobyAic3Noa2V5ZmlsZSA9IFwiIiArICR7Y3JlZC5maWxlbmFtZX0gKyAiXCIiOwogICAgIH0KICAgICBlbHNlCiAgICAgewogICAgICBlY2hvICJzc2hwYXNzID0gXCIiICsgJHtjcmVkLnBhc3N3b3JkfSArICJcIiI7CiAgICAgfQogICAgfQogICAgICAgIAoKICAgIGZvcmVhY2goZW52OiAke2Vudmlyb25tZW50LmF0dHJpYnV0ZXN9KSB7ICAKICAgICAgZWNobyAkZW52ICsgIj0gXCIiICsgJHtlbnZpcm9ubWVudC5hdHRyaWJ1dGVzWyRlbnZdfSAgKyAiXCIiOwogICAgfQogICAgICAgCiAgICBmb3JlYWNoKGVudjogJHthcHBsaWNhdGlvbi5hdHRyaWJ1dGVzfSkgeyAgCiAgICAgIGVjaG8gJGVudiArICI9IFwiIiArICR7YXBwbGljYXRpb24uYXR0cmlidXRlc1skZW52XX0gICsgIlwiIjsKICAgIH0KICAgICAgICAKICAgIGZvcmVhY2goZW52OiAke3NlcnZlci5hdHRyaWJ1dGVzfSkgeyAgCiAgICAgIGVjaG8gJGVudiArICI9IFwiIiArICR7c2VydmVyLmF0dHJpYnV0ZXNbJGVudl19ICArICJcIiI7CiAgICB9CiAgICAgICAgICAgICAgICAgICAgICAKICAgIGZvcmVhY2goZW52OiAke2NvbXBvbmVudC5hdHRyaWJ1dGVzfSkgeyAgCiAgICAgIGVjaG8gJGVudiArICI9IFwiIiArICR7Y29tcG9uZW50LmF0dHJpYnV0ZXNbJGVudl19ICArICJcIiI7ICAgICAgIAogICAgfQoKICAgc2V0IGNyZWRzID0gJHtlbnZpcm9ubWVudC5hdHRyaWJ1dGVzWydjcmVkcyddfTsKICAgIAogICAgZm9yZWFjaChjcmVkOiAkY3JlZHMpIAogICAgewogICAgIHNldCBjcmVkbmFtZSA9ICR7Y3JlZHNbJGNyZWRdfTsKICAgICBzZXQgYyA9IGdldGNyZWRlbnRpYWwoJGNyZWRuYW1lKTsKICAgICAgCiAgICAgZWNobyAkY3JlZCArICJ1c2VyID0gXCIiICsgJHtjLnVzZXJuYW1lfSArICJcIiI7CiAgICAgZWNobyAkY3JlZCArICJwYXNzID0gXCIiICsgJHtjLnBhc3N3b3JkfSArICJcIiI7IAogICAgfQogICAgCiAgICBzZXQgY3JlZHMgPSAke2FwcGxpY2F0aW9uLmF0dHJpYnV0ZXNbJ2NyZWRzJ119OwogICAgCiAgICBmb3JlYWNoKGNyZWQ6ICRjcmVkcykgCiAgICB7CiAgICAgc2V0IGNyZWRuYW1lID0gJHtjcmVkc1skY3JlZF19OwogICAgIHNldCBjID0gZ2V0Y3JlZGVudGlhbCgkY3JlZG5hbWUpOwogICAgICAKICAgICBlY2hvICRjcmVkICsgInVzZXIgPSBcIiIgKyAke2MudXNlcm5hbWV9ICsgIlwiIjsKICAgICBlY2hvICRjcmVkICsgInBhc3MgPSBcIiIgKyAke2MucGFzc3dvcmR9ICsgIlwiIjsKICAgIH0KICAgIAogICAgc2V0IGNyZWRzID0gJHtzZXJ2ZXIuYXR0cmlidXRlc1snY3JlZHMnXX07CiAgICAKICAgIGZvcmVhY2goY3JlZDogJGNyZWRzKSAKICAgIHsKICAgICBzZXQgY3JlZG5hbWUgPSAke2NyZWRzWyRjcmVkXX07CiAgICAgc2V0IGMgPSBnZXRjcmVkZW50aWFsKCRjcmVkbmFtZSk7CiAgICAgIAogICAgIGVjaG8gJGNyZWQgKyAidXNlciA9IFwiIiArICR7Yy51c2VybmFtZX0gKyAiXCIiOwogICAgIGVjaG8gJGNyZWQgKyAicGFzcyA9IFwiIiArICR7Yy5wYXNzd29yZH0gKyAiXCIiOyAKICAgIH0KICAgIAogICAgc2V0IGNyZWRzID0gJHtjb21wb25lbnQuYXR0cmlidXRlc1snY3JlZHMnXX07CiAgICAKICAgIGZvcmVhY2goY3JlZDogJGNyZWRzKSAKICAgIHsKICAgICBzZXQgY3JlZG5hbWUgPSAke2NyZWRzWyRjcmVkXX07CiAgICAgc2V0IGMgPSBnZXRjcmVkZW50aWFsKCRjcmVkbmFtZSk7CiAgICAgIAogICAgIGVjaG8gJGNyZWQgKyAidXNlciA9IFwiIiArICR7Yy51c2VybmFtZX0gICsgIlwiIjsKICAgICBlY2hvICRjcmVkICsgInBhc3MgPSBcIiIgKyAke2MucGFzc3dvcmR9ICArICJcIiI7CiAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgY3JlYXRlKGZpbGU6ICJ2YWx1ZXMudG9tbCIsIHN0cmVhbTogJGVudnN0cmVhbSk7CiAgIH0=
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 2
16 |
17 | ZWNobyAiQ3JlYXRpbmcgVmFsdWVzIFRPTUwgRmlsZSI7CgogIHNldCAtZyBSc3BGaWxlID0gJHtkcm9wem9uZS5wYXRofSArICIvdmFsdWVzLnRvbWwiOwogICAgIAogICAgc2V0IGQgPSBub3coKTsKICAgIHNldCBzbmFtZSA9ICJzIiArICR7ZC50b19pbnQoKX07CgogICAgZXZhbCgidXNpbmcgc3RyZWFtIFwkJHNuYW1lOyIpOwogICAgZXZhbCgic2V0IGVudnN0cmVhbSA9IFwkJHNuYW1lOyIpOwogICAgCiAgICB1c2luZyBzdHJlYW0gJGVudnN0cmVhbSB7CiAgICBlY2hvICJkcm9wem9uZSA9IFwiIiArICR7ZHJvcHpvbmUucGF0aH0gKyAiXCIiOwogICAgZWNobyAiZW52aXJvbm1lbnQgPSBcIiIgKyAke2Vudmlyb25tZW50Lm5hbWV9ICsgIlwiIjsKICAgIGVjaG8gImFwcGxpY2F0aW9uID0gXCIiICsgJHthcHBsaWNhdGlvbi5uYW1lfSArICJcIiI7CiAgICBlY2hvICJzZXJ2ZXJfbmFtZSA9IFwiIiArICR7c2VydmVyLm5hbWV9ICsgIlwiIjsKICAgIGVjaG8gInNlcnZlcl9ob3N0bmFtZSA9IFwiIiArICR7c2VydmVyLmhvc3RuYW1lfSArICJcIiI7CiAgICBlY2hvICJjb21wb25lbnQgPSBcIiIgKyAke2NvbXBvbmVudC5uYW1lfSArICJcIiI7CiAgICAKICAgIHNldCBjcmVkID0gJHtzZXJ2ZXIuY3JlZGVudGlhbH07CiAgICBpZiAoJHtjcmVkLmlkfSkKICAgIHsKICAgICBlY2hvICJzc2h1c2VyID0gXCIiICsgJHtjcmVkLnVzZXJuYW1lfSArICJcIiI7CiAgICAgaWYgKCR7Y3JlZC5raW5kbmFtZX0gPSAiUHJpdmF0ZSBLZXkiKQogICAgIHsKICAgICAgZWNobyAic3Noa2V5ZmlsZSA9IFwiIiArICR7Y3JlZC5maWxlbmFtZX0gKyAiXCIiOwogICAgIH0KICAgICBlbHNlCiAgICAgewogICAgICBlY2hvICJzc2hwYXNzID0gXCIiICsgJHtjcmVkLnBhc3N3b3JkfSArICJcIiI7CiAgICAgfQogICAgfQogICAgICAgIAoKICAgIGZvcmVhY2goZW52OiAke2Vudmlyb25tZW50LmF0dHJpYnV0ZXN9KSB7ICAKICAgICAgZWNobyAkZW52ICsgIj0gXCIiICsgJHtlbnZpcm9ubWVudC5hdHRyaWJ1dGVzWyRlbnZdfSAgKyAiXCIiOwogICAgfQogICAgICAgCiAgICBmb3JlYWNoKGVudjogJHthcHBsaWNhdGlvbi5hdHRyaWJ1dGVzfSkgeyAgCiAgICAgIGVjaG8gJGVudiArICI9IFwiIiArICR7YXBwbGljYXRpb24uYXR0cmlidXRlc1skZW52XX0gICsgIlwiIjsKICAgIH0KICAgICAgICAKICAgIGZvcmVhY2goZW52OiAke3NlcnZlci5hdHRyaWJ1dGVzfSkgeyAgCiAgICAgIGVjaG8gJGVudiArICI9IFwiIiArICR7c2VydmVyLmF0dHJpYnV0ZXNbJGVudl19ICArICJcIiI7CiAgICB9CiAgICAgICAgICAgICAgICAgICAgICAKICAgIGZvcmVhY2goZW52OiAke2NvbXBvbmVudC5hdHRyaWJ1dGVzfSkgeyAgCiAgICAgIGVjaG8gJGVudiArICI9IFwiIiArICR7Y29tcG9uZW50LmF0dHJpYnV0ZXNbJGVudl19ICArICJcIiI7ICAgICAgIAogICAgfQoKICAgc2V0IGNyZWRzID0gJHtlbnZpcm9ubWVudC5hdHRyaWJ1dGVzWydjcmVkcyddfTsKICAgIAogICAgZm9yZWFjaChjcmVkOiAkY3JlZHMpIAogICAgewogICAgIHNldCBjcmVkbmFtZSA9ICR7Y3JlZHNbJGNyZWRdfTsKICAgICBzZXQgYyA9IGdldGNyZWRlbnRpYWwoJGNyZWRuYW1lKTsKICAgICAgCiAgICAgZWNobyAkY3JlZCArICJ1c2VyID0gXCIiICsgJHtjLnVzZXJuYW1lfSArICJcIiI7CiAgICAgZWNobyAkY3JlZCArICJwYXNzID0gXCIiICsgJHtjLnBhc3N3b3JkfSArICJcIiI7IAogICAgfQogICAgCiAgICBzZXQgY3JlZHMgPSAke2FwcGxpY2F0aW9uLmF0dHJpYnV0ZXNbJ2NyZWRzJ119OwogICAgCiAgICBmb3JlYWNoKGNyZWQ6ICRjcmVkcykgCiAgICB7CiAgICAgc2V0IGNyZWRuYW1lID0gJHtjcmVkc1skY3JlZF19OwogICAgIHNldCBjID0gZ2V0Y3JlZGVudGlhbCgkY3JlZG5hbWUpOwogICAgICAKICAgICBlY2hvICRjcmVkICsgInVzZXIgPSBcIiIgKyAke2MudXNlcm5hbWV9ICsgIlwiIjsKICAgICBlY2hvICRjcmVkICsgInBhc3MgPSBcIiIgKyAke2MucGFzc3dvcmR9ICsgIlwiIjsKICAgIH0KICAgIAogICAgc2V0IGNyZWRzID0gJHtzZXJ2ZXIuYXR0cmlidXRlc1snY3JlZHMnXX07CiAgICAKICAgIGZvcmVhY2goY3JlZDogJGNyZWRzKSAKICAgIHsKICAgICBzZXQgY3JlZG5hbWUgPSAke2NyZWRzWyRjcmVkXX07CiAgICAgc2V0IGMgPSBnZXRjcmVkZW50aWFsKCRjcmVkbmFtZSk7CiAgICAgIAogICAgIGVjaG8gJGNyZWQgKyAidXNlciA9IFwiIiArICR7Yy51c2VybmFtZX0gKyAiXCIiOwogICAgIGVjaG8gJGNyZWQgKyAicGFzcyA9IFwiIiArICR7Yy5wYXNzd29yZH0gKyAiXCIiOyAKICAgIH0KICAgIAogICAgc2V0IGNyZWRzID0gJHtjb21wb25lbnQuYXR0cmlidXRlc1snY3JlZHMnXX07CiAgICAKICAgIGZvcmVhY2goY3JlZDogJGNyZWRzKSAKICAgIHsKICAgICBzZXQgY3JlZG5hbWUgPSAke2NyZWRzWyRjcmVkXX07CiAgICAgc2V0IGMgPSBnZXRjcmVkZW50aWFsKCRjcmVkbmFtZSk7CiAgICAgIAogICAgIGVjaG8gJGNyZWQgKyAidXNlciA9IFwiIiArICR7Yy51c2VybmFtZX0gICsgIlwiIjsKICAgICBlY2hvICRjcmVkICsgInBhc3MgPSBcIiIgKyAke2MucGFzc3dvcmR9ICArICJcIiI7CiAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgY3JlYXRlKGZpbGU6ICJ2YWx1ZXMudG9tbCIsIHN0cmVhbTogJGVudnN0cmVhbSk7CiAgIH0=
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | argparse@^2.0.1:
6 | version "2.0.1"
7 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
8 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
9 |
10 | asynckit@^0.4.0:
11 | version "0.4.0"
12 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
13 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
14 |
15 | axios@^1.6.0:
16 | version "1.13.2"
17 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.2.tgz#9ada120b7b5ab24509553ec3e40123521117f687"
18 | integrity sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==
19 | dependencies:
20 | follow-redirects "^1.15.6"
21 | form-data "^4.0.4"
22 | proxy-from-env "^1.1.0"
23 |
24 | call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
25 | version "1.0.2"
26 | resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
27 | integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
28 | dependencies:
29 | es-errors "^1.3.0"
30 | function-bind "^1.1.2"
31 |
32 | combined-stream@^1.0.8:
33 | version "1.0.8"
34 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
35 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
36 | dependencies:
37 | delayed-stream "~1.0.0"
38 |
39 | delayed-stream@~1.0.0:
40 | version "1.0.0"
41 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
42 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
43 |
44 | dunder-proto@^1.0.1:
45 | version "1.0.1"
46 | resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
47 | integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
48 | dependencies:
49 | call-bind-apply-helpers "^1.0.1"
50 | es-errors "^1.3.0"
51 | gopd "^1.2.0"
52 |
53 | es-define-property@^1.0.1:
54 | version "1.0.1"
55 | resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
56 | integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
57 |
58 | es-errors@^1.3.0:
59 | version "1.3.0"
60 | resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
61 | integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
62 |
63 | es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
64 | version "1.1.1"
65 | resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
66 | integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
67 | dependencies:
68 | es-errors "^1.3.0"
69 |
70 | es-set-tostringtag@^2.1.0:
71 | version "2.1.0"
72 | resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
73 | integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
74 | dependencies:
75 | es-errors "^1.3.0"
76 | get-intrinsic "^1.2.6"
77 | has-tostringtag "^1.0.2"
78 | hasown "^2.0.2"
79 |
80 | follow-redirects@^1.15.6:
81 | version "1.15.11"
82 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340"
83 | integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==
84 |
85 | form-data@^4.0.4:
86 | version "4.0.5"
87 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053"
88 | integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==
89 | dependencies:
90 | asynckit "^0.4.0"
91 | combined-stream "^1.0.8"
92 | es-set-tostringtag "^2.1.0"
93 | hasown "^2.0.2"
94 | mime-types "^2.1.12"
95 |
96 | function-bind@^1.1.2:
97 | version "1.1.2"
98 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
99 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
100 |
101 | get-intrinsic@^1.2.6:
102 | version "1.3.0"
103 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
104 | integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
105 | dependencies:
106 | call-bind-apply-helpers "^1.0.2"
107 | es-define-property "^1.0.1"
108 | es-errors "^1.3.0"
109 | es-object-atoms "^1.1.1"
110 | function-bind "^1.1.2"
111 | get-proto "^1.0.1"
112 | gopd "^1.2.0"
113 | has-symbols "^1.1.0"
114 | hasown "^2.0.2"
115 | math-intrinsics "^1.1.0"
116 |
117 | get-proto@^1.0.1:
118 | version "1.0.1"
119 | resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
120 | integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
121 | dependencies:
122 | dunder-proto "^1.0.1"
123 | es-object-atoms "^1.0.0"
124 |
125 | gopd@^1.2.0:
126 | version "1.2.0"
127 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
128 | integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
129 |
130 | has-symbols@^1.0.3, has-symbols@^1.1.0:
131 | version "1.1.0"
132 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
133 | integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
134 |
135 | has-tostringtag@^1.0.2:
136 | version "1.0.2"
137 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
138 | integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
139 | dependencies:
140 | has-symbols "^1.0.3"
141 |
142 | hasown@^2.0.2:
143 | version "2.0.2"
144 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
145 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
146 | dependencies:
147 | function-bind "^1.1.2"
148 |
149 | js-yaml@^4.1.0:
150 | version "4.1.1"
151 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b"
152 | integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==
153 | dependencies:
154 | argparse "^2.0.1"
155 |
156 | math-intrinsics@^1.1.0:
157 | version "1.1.0"
158 | resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
159 | integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
160 |
161 | mime-db@1.52.0:
162 | version "1.52.0"
163 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
164 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
165 |
166 | mime-types@^2.1.12:
167 | version "2.1.35"
168 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
169 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
170 | dependencies:
171 | mime-db "1.52.0"
172 |
173 | proxy-from-env@^1.1.0:
174 | version "1.1.0"
175 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
176 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
177 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # DEPLOYHUB® SOFTWARE LICENSE AGREEMENT
2 |
3 | Copyright © 2022 DeployHub, Inc. All Rights Reserved.
4 |
5 | **PLEASE READ THIS SOFTWARE LICENSE AGREEMENT (THIS "AGREEMENT") CAREFULLY BEFORE USING THE DEPLOYHUB® SOFTWARE (THE "SOFTWARE") AND/OR ANY RELATED DOCUMENTATION (THE "DOCUMENTATION" ). BY INSTALLING
6 | OR OTHERWISE USING THE SOFTWARE, YOU ARE ACCEPTING AND AGREEING TO THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT, CLICK THE "DISAGREE" BUTTON BELOW AND/OR
7 | DO NOT INSTALL OR OTHERWISE USE THE SOFTWARE.**
8 |
9 | This Agreement is between you and DeployHub. If you are agreeing to this Agreement not as an individual but on behalf of your company, then "you" means your company and any of its Affiliates and you
10 | are binding your company and its Affiliates to this Agreement. "Affiliates" means an entity which, directly or indirectly, owns or controls, is owned or is controlled by or is under common ownership
11 | or control with a party, where "control" means the power to direct the management or affairs of an entity, and "ownership" mean the beneficial ownership of 50% (or, if the applicable jurisdiction does
12 | not allow majority ownership, the maximum amount permitted under such law) or more of the voting equity securities or other equivalent voting interests of the entity.
13 |
14 | 1. _License Grant_
15 |
16 | DeployHub hereby grants to you, and you accept, a nonexclusive license to use the Software (in machine-readable, object code form only) and the Documentation only as authorized in this Agreement and
17 | up to the level of use specified in the DeployHub sales documents accompanying the transaction authorizing this Agreement.
18 |
19 | 2. _Limitations on Use_
20 |
21 | The Software may be used only up to the level at which you are authorized to execute or run the Software. That level may be measured by the number of computers on which the Software runs, the number
22 | of Applications supported by the Software or other level of use specified by DeployHub. "Application" is as defined in the DeployHub Documentation for the applicable Software.
23 |
24 | When measured by the number of computers, each license shall be limited to a single computer owned, leased, or otherwise controlled by you; or in the event of the inoperability of that computer, on a
25 | backup computer selected by you. In such case, concurrent use on two or more computers or use in a local area network or other network is not permitted without DeployHub's prior written consent.
26 |
27 | When measured by the number of Applications supported by the Software, each license may be used on any number of computers owned, leased or otherwise controlled by you, and by any number of users,
28 | provided each license supports a single Application.
29 |
30 | The Software may only be used in accordance with the Documentation. You will not, and will not permit others to: (a) copy the Software or Documentation, other than copying in compliance with the level
31 | of use authorized or making one copy of the Software for backup or archival purposes; (b) use the Software or Documentation other than as permitted in this Agreement; (c) use the Software to process
32 | the data of a third party; (d) modify, disassemble, reverse engineer, decompile or translate the Software or the Documentation; (e) sell, assign, sublicense, lease, pledge, rent or otherwise share
33 | your rights under this Agreement; (f) create any derivative works based upon the Software or Documentation; or (g) modify, obscure or remove any proprietary notices on the Software, the Documentation
34 | or copies thereof.
35 |
36 | DeployHub shall have the right upon reasonable advance notice to audit and inspect your facilities and records during business hours to verify compliance with the limitations and other terms of this
37 | Agreement.
38 |
39 | 3. _Ownership_
40 |
41 | All rights, title and interest in and to the Software and Documentation and any modifications, translations, adaptations, upgrades and enhancements thereto are and shall at all times remain the sole
42 | and exclusive property of DeployHub or its licensors.
43 |
44 | The Software and Documentation are protected by the U.S. Copyright Act and other intellectual property laws and international treaties. You agree that you do not own or hereby acquire any claim or
45 | right of ownership or license to the Software or Documentation. You acknowledge and agree that the Software and the Documentation are proprietary products of DeployHub or its licensors protected under
46 | the U.S. Copyright Act and other intellectual property laws and international treaties.
47 |
48 | 4. _Term and Termination_
49 |
50 | This Agreement is effective upon your receipt of the Software and shall continue until terminated.
51 |
52 | If DeployHub licenses the Software for a fixed term, your license is terminated at the end of the fixed term, unless you and DeployHub agree to renew it.
53 |
54 | You may terminate this Agreement at any time by returning the Software, the Documentation and all copies and portions thereof to DeployHub.
55 |
56 | DeployHub may terminate this Agreement immediately upon the breach by you of any term of this Agreement.
57 |
58 | Upon such termination by DeployHub, you agree to return to DeployHub the Software, the Documentation and all copies and portions thereof.
59 |
60 | 5. _Limited Warranty_
61 |
62 | DeployHub warrants, for your benefit alone, for a period of 90 days from the date of commencement of this Agreement (the "Warranty Period") that the Software shall operate substantially in accordance
63 | with the functional specifications in the Documentation.
64 |
65 | If the Software does not so perform during the Warranty Period, DeployHub will, at its option and as your sole and exclusive remedy in connection with the same, repair or replace the defective
66 | Software or refund the license fee paid by you under this Agreement.
67 |
68 | EXCEPT FOR THE WARRANTIES SET FORTH ABOVE, THE SOFTWARE AND THE DOCUMENTATION ARE LICENSED "AS IS," AND DEPLOYHUB DISCLAIMS ANY AND ALL OTHER WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT
69 | LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT.
70 |
71 | Moreover, the above warranty shall not apply to (and DeployHub shall have no obligation with respect to) any failure of the Software arising from or related to: (a) the use of the Software in
72 | connection with any equipment or software not created or approved in advance by DeployHub; or (b) noncompliance with the Documentation, misuse, neglect, improper operation or mismanagement of the
73 | Software.
74 |
75 | 6. _Limitation of Liability_
76 |
77 | DEPLOYHUB'S CUMULATIVE LIABILITY TO YOU FOR ANY LOSS OR DAMAGES RESULTING FROM ANY CLAIMS, DEMANDS, OR ACTIONS ARISING OUT OF OR RELATING TO THIS AGREEMENT SHALL NOT EXCEED THE LICENSE FEE PAID BY YOU
78 | TO DEPLOYHUB FOR THE USE OF THE SOFTWARE UNDER THIS AGREEMENT.
79 |
80 | IN NO EVENT SHALL DEPLOYHUB BE LIABLE FOR ANY (A) INDIRECT, PUNITIVE, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR EXEMPLARY DAMAGES OR LOST PROFITS, (B) LOSS OF USE OF ANY COMPUTER OR LOSS OR CORRUPTION OF
81 | DATA OR THE COSTS OF SYSTEM OR DATA RECOVERY, OR (C) THIRD PARTY CLAIMS.
82 |
83 | THE LIMITATIONS CONTAINED IN THIS PARAGRAPH APPLY WHETHER THE LIABILITY IS BASED ON CONTRACT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF DEPLOYHUB HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
84 | DAMAGES. SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.
85 |
86 | 7. _Trademark_
87 |
88 | DEPLOYHUB® is a registered trademark of DeployHub. No right, license, or interest to such trademark is granted to you under this Agreement, and you agree that no such right, license, or interest shall
89 | be asserted by you with respect to such trademark.
90 |
91 | 8. _Entire Agreement_
92 |
93 | This Agreement and any associated DeployHub sales documentation constitutes the entire agreement between the parties with respect to the use of the Software and the Documentation, and supersedes all
94 | prior or contemporaneous understandings, written or oral, regarding such subject matter. This Agreement may not be modified, changed or discharged in whole or in part, except in an agreement in
95 | writing signed by you and DeployHub.
96 |
97 | 9. _General Terms_
98 |
99 | This Agreement shall be construed and governed in accordance with the laws of the State of New Mexico.
100 |
101 | Any action, suit, or other legal proceeding which is commenced to resolve any matter arising under or relating to any provision of this Agreement shall be commenced and prosecuted only in a state or
102 | federal court in Chicago, Illinois, and you hereby consent to the jurisdiction of such a court.
103 |
104 | If any action is brought by either party to this Agreement against the other party regarding the subject matter hereof, the prevailing party shall be entitled to recover, in addition to any other
105 | relief granted, reasonable attorney fees and expenses of litigation.
106 |
107 | Should any term of this Agreement be declared void or unenforceable by any court of competent jurisdiction, such declaration shall have no effect on the remaining terms hereof.
108 |
109 | The failure of either party to enforce any rights granted hereunder or to take action against the other party in the event of any breach hereunder shall not be deemed a waiver by that party as to
110 | subsequent enforcement of rights or subsequent actions in the event of future breaches.
111 |
112 | DeployHub may assign this Agreement without notice to you.
113 |
114 | The headings of the sections of this Agreement are included for ease of references only, are not part of this Agreement and are not to be used in the construction and interpretation of the terms
115 | hereof.
116 |
--------------------------------------------------------------------------------
/charts/deployhub/LICENSE.md:
--------------------------------------------------------------------------------
1 | # DEPLOYHUB® SOFTWARE LICENSE AGREEMENT
2 |
3 | Copyright © 2022 DeployHub, Inc. All Rights Reserved.
4 |
5 | **PLEASE READ THIS SOFTWARE LICENSE AGREEMENT (THIS "AGREEMENT") CAREFULLY BEFORE USING THE DEPLOYHUB® SOFTWARE (THE "SOFTWARE") AND/OR ANY RELATED DOCUMENTATION (THE "DOCUMENTATION" ). BY INSTALLING
6 | OR OTHERWISE USING THE SOFTWARE, YOU ARE ACCEPTING AND AGREEING TO THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT, CLICK THE "DISAGREE" BUTTON BELOW AND/OR
7 | DO NOT INSTALL OR OTHERWISE USE THE SOFTWARE.**
8 |
9 | This Agreement is between you and DeployHub. If you are agreeing to this Agreement not as an individual but on behalf of your company, then "you" means your company and any of its Affiliates and you
10 | are binding your company and its Affiliates to this Agreement. "Affiliates" means an entity which, directly or indirectly, owns or controls, is owned or is controlled by or is under common ownership
11 | or control with a party, where "control" means the power to direct the management or affairs of an entity, and "ownership" mean the beneficial ownership of 50% (or, if the applicable jurisdiction does
12 | not allow majority ownership, the maximum amount permitted under such law) or more of the voting equity securities or other equivalent voting interests of the entity.
13 |
14 | 1. _License Grant_
15 |
16 | DeployHub hereby grants to you, and you accept, a nonexclusive license to use the Software (in machine-readable, object code form only) and the Documentation only as authorized in this Agreement and
17 | up to the level of use specified in the DeployHub sales documents accompanying the transaction authorizing this Agreement.
18 |
19 | 2. _Limitations on Use_
20 |
21 | The Software may be used only up to the level at which you are authorized to execute or run the Software. That level may be measured by the number of computers on which the Software runs, the number
22 | of Applications supported by the Software or other level of use specified by DeployHub. "Application" is as defined in the DeployHub Documentation for the applicable Software.
23 |
24 | When measured by the number of computers, each license shall be limited to a single computer owned, leased, or otherwise controlled by you; or in the event of the inoperability of that computer, on a
25 | backup computer selected by you. In such case, concurrent use on two or more computers or use in a local area network or other network is not permitted without DeployHub's prior written consent.
26 |
27 | When measured by the number of Applications supported by the Software, each license may be used on any number of computers owned, leased or otherwise controlled by you, and by any number of users,
28 | provided each license supports a single Application.
29 |
30 | The Software may only be used in accordance with the Documentation. You will not, and will not permit others to: (a) copy the Software or Documentation, other than copying in compliance with the level
31 | of use authorized or making one copy of the Software for backup or archival purposes; (b) use the Software or Documentation other than as permitted in this Agreement; (c) use the Software to process
32 | the data of a third party; (d) modify, disassemble, reverse engineer, decompile or translate the Software or the Documentation; (e) sell, assign, sublicense, lease, pledge, rent or otherwise share
33 | your rights under this Agreement; (f) create any derivative works based upon the Software or Documentation; or (g) modify, obscure or remove any proprietary notices on the Software, the Documentation
34 | or copies thereof.
35 |
36 | DeployHub shall have the right upon reasonable advance notice to audit and inspect your facilities and records during business hours to verify compliance with the limitations and other terms of this
37 | Agreement.
38 |
39 | 3. _Ownership_
40 |
41 | All rights, title and interest in and to the Software and Documentation and any modifications, translations, adaptations, upgrades and enhancements thereto are and shall at all times remain the sole
42 | and exclusive property of DeployHub or its licensors.
43 |
44 | The Software and Documentation are protected by the U.S. Copyright Act and other intellectual property laws and international treaties. You agree that you do not own or hereby acquire any claim or
45 | right of ownership or license to the Software or Documentation. You acknowledge and agree that the Software and the Documentation are proprietary products of DeployHub or its licensors protected under
46 | the U.S. Copyright Act and other intellectual property laws and international treaties.
47 |
48 | 4. _Term and Termination_
49 |
50 | This Agreement is effective upon your receipt of the Software and shall continue until terminated.
51 |
52 | If DeployHub licenses the Software for a fixed term, your license is terminated at the end of the fixed term, unless you and DeployHub agree to renew it.
53 |
54 | You may terminate this Agreement at any time by returning the Software, the Documentation and all copies and portions thereof to DeployHub.
55 |
56 | DeployHub may terminate this Agreement immediately upon the breach by you of any term of this Agreement.
57 |
58 | Upon such termination by DeployHub, you agree to return to DeployHub the Software, the Documentation and all copies and portions thereof.
59 |
60 | 5. _Limited Warranty_
61 |
62 | DeployHub warrants, for your benefit alone, for a period of 90 days from the date of commencement of this Agreement (the "Warranty Period") that the Software shall operate substantially in accordance
63 | with the functional specifications in the Documentation.
64 |
65 | If the Software does not so perform during the Warranty Period, DeployHub will, at its option and as your sole and exclusive remedy in connection with the same, repair or replace the defective
66 | Software or refund the license fee paid by you under this Agreement.
67 |
68 | EXCEPT FOR THE WARRANTIES SET FORTH ABOVE, THE SOFTWARE AND THE DOCUMENTATION ARE LICENSED "AS IS," AND DEPLOYHUB DISCLAIMS ANY AND ALL OTHER WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT
69 | LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT.
70 |
71 | Moreover, the above warranty shall not apply to (and DeployHub shall have no obligation with respect to) any failure of the Software arising from or related to: (a) the use of the Software in
72 | connection with any equipment or software not created or approved in advance by DeployHub; or (b) noncompliance with the Documentation, misuse, neglect, improper operation or mismanagement of the
73 | Software.
74 |
75 | 6. _Limitation of Liability_
76 |
77 | DEPLOYHUB'S CUMULATIVE LIABILITY TO YOU FOR ANY LOSS OR DAMAGES RESULTING FROM ANY CLAIMS, DEMANDS, OR ACTIONS ARISING OUT OF OR RELATING TO THIS AGREEMENT SHALL NOT EXCEED THE LICENSE FEE PAID BY YOU
78 | TO DEPLOYHUB FOR THE USE OF THE SOFTWARE UNDER THIS AGREEMENT.
79 |
80 | IN NO EVENT SHALL DEPLOYHUB BE LIABLE FOR ANY (A) INDIRECT, PUNITIVE, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR EXEMPLARY DAMAGES OR LOST PROFITS, (B) LOSS OF USE OF ANY COMPUTER OR LOSS OR CORRUPTION OF
81 | DATA OR THE COSTS OF SYSTEM OR DATA RECOVERY, OR (C) THIRD PARTY CLAIMS.
82 |
83 | THE LIMITATIONS CONTAINED IN THIS PARAGRAPH APPLY WHETHER THE LIABILITY IS BASED ON CONTRACT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF DEPLOYHUB HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
84 | DAMAGES. SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.
85 |
86 | 7. _Trademark_
87 |
88 | DEPLOYHUB® is a registered trademark of DeployHub. No right, license, or interest to such trademark is granted to you under this Agreement, and you agree that no such right, license, or interest shall
89 | be asserted by you with respect to such trademark.
90 |
91 | 8. _Entire Agreement_
92 |
93 | This Agreement and any associated DeployHub sales documentation constitutes the entire agreement between the parties with respect to the use of the Software and the Documentation, and supersedes all
94 | prior or contemporaneous understandings, written or oral, regarding such subject matter. This Agreement may not be modified, changed or discharged in whole or in part, except in an agreement in
95 | writing signed by you and DeployHub.
96 |
97 | 9. _General Terms_
98 |
99 | This Agreement shall be construed and governed in accordance with the laws of the State of New Mexico.
100 |
101 | Any action, suit, or other legal proceeding which is commenced to resolve any matter arising under or relating to any provision of this Agreement shall be commenced and prosecuted only in a state or
102 | federal court in Chicago, Illinois, and you hereby consent to the jurisdiction of such a court.
103 |
104 | If any action is brought by either party to this Agreement against the other party regarding the subject matter hereof, the prevailing party shall be entitled to recover, in addition to any other
105 | relief granted, reasonable attorney fees and expenses of litigation.
106 |
107 | Should any term of this Agreement be declared void or unenforceable by any court of competent jurisdiction, such declaration shall have no effect on the remaining terms hereof.
108 |
109 | The failure of either party to enforce any rights granted hereunder or to take action against the other party in the event of any breach hereunder shall not be deemed a waiver by that party as to
110 | subsequent enforcement of rights or subsequent actions in the event of future breaches.
111 |
112 | DeployHub may assign this Agreement without notice to you.
113 |
114 | The headings of the sections of this Agreement are included for ease of references only, are not part of this Agreement and are not to be used in the construction and interpretation of the terms
115 | hereof.
116 |
--------------------------------------------------------------------------------
/charts/deployhub/README.md:
--------------------------------------------------------------------------------
1 | # DeployHub Pro
2 |
3 | 
4 |
5 | DeployHub is a central evidence store of all your security and DevOps intelligence. It provides comprehensive, end-to-end insights across all of your clusters and logical applications from a single dashboard. Centrally view microservice and application level SBOMs, CVEs, deployed inventory, application to microservice dependencies, impact analysis, application versions, and the use of open-source packages across the entire organization.
6 |
7 |
8 | [Overview of DeployHub](https://www.deployhub.com)
9 | [Documentation](https://docs.deployhub.com)
10 |
11 | ## Additional Information
12 |
13 | This chart deploys all of the required secrets, services, and deployments on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
14 |
15 | ## Prerequisites
16 |
17 | * Kubernetes 1.19+
18 | * Helm 3.2.0+
19 |
20 | ## Installing on Kind Cluster
21 |
22 | 1. Cluster Config - cluster.yaml
23 |
24 | ```yaml
25 | kind: Cluster
26 | apiVersion: kind.x-k8s.io/v1alpha4
27 | nodes:
28 | - role: control-plane
29 | kubeadmConfigPatches:
30 | - |
31 | kind: InitConfiguration
32 | nodeRegistration:
33 | kubeletExtraArgs:
34 | node-labels: "ingress-ready=true"
35 | extraPortMappings:
36 | - containerPort: 80
37 | hostPort: 80
38 | protocol: TCP
39 | - containerPort: 443
40 | hostPort: 443
41 | protocol: TCP
42 | extraMounts:
43 | - hostPath: /tmp/postgres
44 | containerPath: /pgdata
45 | ```
46 |
47 | 2. Create the cluster
48 |
49 | ```console
50 | mkdir /tmp/postgres
51 | kind create cluster --config cluster.yaml -n deployhub
52 | ```
53 |
54 | 3. Connect to the cluster
55 |
56 | ```kubectl cluster-info --context kind-deployhub```
57 |
58 | 4. Install DeployHub
59 |
60 | a. Using the internal Postgres database:
61 |
62 | ```console
63 | DEPLOYHUB_VERSION=10.0.335
64 | helm repo add deployhub https://deployhubproject.github.io/DeployHub-Pro/
65 | helm repo update
66 | helm upgrade --install my-release deployhub/deployhub --set dh-ms-general.dbpass=my_db_password --set global.postgresql.enabled=true --set global.nginxController.enabled=true --version "${DEPLOYHUB_VERSION}" --namespace deployhub --create-namespace
67 | ```
68 |
69 | > Note: This will install DeployHub persisting the Postgres data on the host system in /tmp/postgres
70 |
71 | b. Using the external Postgres database:
72 |
73 | ```console
74 | DEPLOYHUB_VERSION=10.0.335
75 | helm repo add deployhub https://deployhubproject.github.io/DeployHub-Pro/
76 | helm repo update
77 | helm upgrade --install my-release deployhub/deployhub --set dh-ms-general.dbpass=my_db_password --set dh-ms-general.dbuser=postgres --set dh-ms-general.dbhost=postgres.hosted.com --set-string dh-ms-general.dbport=5432 --set global.nginxController.enabled=true --version "${DEPLOYHUB_VERSION}" --namespace deployhub --create-namespace
78 | ```
79 |
80 | 5. Access DeployHub UI
81 |
82 | ```http://localhost/dmadminweb/Home```
83 |
84 | > Note: default userid/pass is admin/admin
85 |
86 | ## Installing on Kubernetes on KillerCoda
87 |
88 | 1. Login to KillerCoda Kubernetes 1.27 Playground
89 |
90 | 2. Create the database storage directory
91 |
92 | ```console
93 | mkdir /tmp/postgres
94 | ```
95 |
96 | 3. Install DeployHub
97 |
98 | a. Using the internal Postgres database:
99 |
100 | ```console
101 | DEPLOYHUB_VERSION=10.0.335
102 | helm repo add deployhub https://deployhubproject.github.io/DeployHub-Pro/
103 | helm repo update
104 | helm upgrade --install my-release deployhub/deployhub --set dh-ms-general.dbpass=my_db_password --set global.postgresql.enabled=true --set dh-ms-nginx.ingress.nodePort=30000 --version "${DEPLOYHUB_VERSION}" --namespace deployhub --create-namespace
105 | ```
106 |
107 | > Note: This will install DeployHub persisting the Postgres data on the host system in /tmp/postgres
108 |
109 | b. Using the external Postgres database:
110 |
111 | ```console
112 | DEPLOYHUB_VERSION=10.0.335
113 | helm repo add deployhub https://deployhubproject.github.io/DeployHub-Pro/
114 | helm repo update
115 | helm upgrade --install my-release deployhub/deployhub --set dh-ms-general.dbpass=my_db_password --set dh-ms-general.dbuser=postgres --set dh-ms-general.dbhost=postgres.hosted.com --set-string dh-ms-general.dbport=5432 --set dh-ms-nginx.ingress.nodePort=30000 --version "${DEPLOYHUB_VERSION}" --namespace deployhub --create-namespace
116 | ```
117 |
118 | 4. Access DeployHub UI
119 |
120 | In Killercoda UI for your session, click on the 3 bars by your "Time Left", then "Traffic/Ports". Enter in 30000 in the custom ports and then access the custom port. This will start a new browser tab with DeployHub home page. Use admin/admin to login.
121 |
122 | ## Installing on Google GKE
123 |
124 | 1. Generate Access keys for CLI, SDK, & API access
125 |
126 | * [Install gcloud](https://cloud.google.com/sdk/docs/install-sdk)
127 | * Set your gcloud config (Refer to [gcloud documentation](https://cloud.google.com/sdk/gcloud/reference/config/set) for how-to)
128 |
129 | ```toml
130 | [compute]
131 | zone = "us-central1-c"
132 | [container]
133 | cluster = "deployhub"
134 | [core]
135 | disable_usage_reporting = false
136 | project = "deployhub-sandbox"
137 | ```
138 |
139 | 2. Setup Environment Variables
140 |
141 | ```console
142 | CLUSTER_NAME=deployhub
143 | SERVICE_ACCOUNT=deployhub-k8s@deployhub-sandbox.iam.gserviceaccount.com
144 | PROJECT=deployhub-sandbox
145 | ```
146 |
147 | 3. Create the Cluster
148 |
149 | ```console
150 | gcloud container clusters create ${CLUSTER_NAME} --logging=SYSTEM,API_SERVER --num-nodes=3 --enable-autoupgrade --machine-type=e2-standard-2 --region=us-central1 --preemptible --service-account=${SERVICE_ACCOUNT}
151 | ```
152 |
153 | 4. Set kubectl config access
154 |
155 | ```console
156 | gcloud container clusters get-credentials ${CLUSTER_NAME} --zone=us-central1-c
157 | ```
158 |
159 | 5. Install DeployHub
160 |
161 | a. Using the external Postgres database:
162 |
163 | ```console
164 | DEPLOYHUB_VERSION=10.0.335
165 | DEPLOYHUB_DNSNAME=deployhub.example.com
166 | helm repo add deployhub https://deployhubproject.github.io/DeployHub-Pro/
167 | helm repo update
168 | helm upgrade --install my-release deployhub/deployhub --set dh-ms-general.dbpass=my_db_password --set dh-ms-general.dbuser=postgres --set dh-ms-general.dbhost=postgres.hosted.com --set-string dh-ms-general.dbport=5432 --set dh-ms-nginx.ingress.type=glb --set dh-ms-nginx.ingress.dnsname=${DEPLOYHUB_DNSNAME} --version "${DEPLOYHUB_VERSION}" --namespace deployhub --create-namespace
169 | ```
170 |
171 | 6. Access DeployHub UI
172 |
173 | ```https://${DEPLOYHUB_DNSNAME}/dmadminweb/Home```
174 |
175 | > Note: default userid/pass is admin/admin
176 |
177 | ## Installing on AWS EKS
178 |
179 | 1. Generate Access keys for CLI, SDK, & API access
180 |
181 | * [Create Access Key](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/security_credentials)
182 | * `aws configure`
183 | * Set `AWS Access Key ID`
184 | * Set `AWS Secret Access Key`
185 | * Set `Default region name`
186 |
187 | 2. [Install eksctl](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html)
188 |
189 | 3. Setup Environment Variables
190 |
191 | ```console
192 | DEPLOYHUB_VERSION=10.0.335
193 | CLUSTER_NAME=deployhub
194 | ```
195 |
196 | 4. Create the Cluster
197 |
198 | ```bash
199 | cat < Note: default userid/pass is admin/admin
248 |
249 | ## Parameters
250 |
251 | ### Common parameters
252 |
253 | | Name | Description | Value |
254 | |---------------------|-----------------------------|-------------|
255 | | `dh-ms-general.dbuser` | Postgres Database User Name | `postgres` |
256 | | `dh-ms-general.dbpass` | Postgres Database Password | `postgres` |
257 | | `dh-ms-general.dbname` | Postgres Database Name | `postgres` |
258 | | `dh-ms-general.dbhost` | Postgres Database Host Name | `localhost` |
259 | | `dh-ms-general.dbport` | Postgres Database Port | `5432` |
260 | | `dh-ms-nginx.ingress.type` | default nginx ingress, AWS Load Balancer or Google Load Balancer | `ssloff, alb, glb, k3s` | `ssloff` |
261 | | `dh-ms-nginx.ingress.nodePort` | set the nodePort to access the service | >= 30000 | default is random port number |
262 | | `dh-ms-nginx.ingress.alb_subnets` | String of comma delimited subnets for the ALB - required when `dh-ms-nginx.ingress.type=alb` | |
263 | | `dh-ms-nginx.ingress.alb_certificate_arn` | ARN for the certificate from AWS Certificate Manager - required when `dh-ms-nginx.ingress.type=alb` | |
264 | | `dh-ms-nginx.ingress.dnsname` | DNS Name that matches the certificate from AWS Certificate Manager - required when `dh-ms-nginx.ingress.type=alb` or `dh-ms-nginx.ingress.type=glb` | |
265 | | `dh-ms-nginx.ingress.scheme` | ALB scheme - required when `dh-ms-nginx.ingress.type=alb` | `internal` or `internet-facing` | `internal`|
266 |
267 | > NOTE: Once this chart is deployed, it is not possible to change the application's access credentials, such as usernames or passwords, using Helm. To change these application credentials after deployment, delete any persistent volumes (PVs) used by the chart and re-deploy it, or use the application's built-in administrative tools if available.
268 |
269 | Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
270 |
271 | ```console
272 | helm install my-release -f values.yaml deployhub/deployhub
273 | ```
274 |
275 | ## Accessing the DeployHub UI After the Chart Install using Port Forwarding
276 |
277 | > Note: default userid/pass is admin/admin
278 |
279 | * Use a port forward with kubectl to the dh-ms-nginx microservice service
280 | * `kubectl port-forward TYPE/NAME [options] LOCAL_PORT:REMOTE_PORT`
281 | * kubectl port-forward help
282 |
283 | ```console
284 | kubectl port-forward -h
285 | ```
286 |
287 | * 8080 represents the local port on your machine `http://localhost:8080`
288 |
289 | ```console
290 | kubectl port-forward svc/dh-ms-nginx 8080:80 -n deployhub
291 | ```
292 |
293 | - 8443 represents the local port on your machine `http://localhost:8443`
294 |
295 | ```console
296 | kubectl port-forward svc/dh-ms-nginx 8443:443 -n deployhub
297 | ```
298 |
299 | ## Uninstalling the Chart
300 |
301 | To uninstall/delete the `my-release` deployment:
302 |
303 | ```console
304 | helm delete my-release
305 | ```
306 |
307 | The command removes all the Kubernetes components associated with the chart and deletes the release.
308 |
--------------------------------------------------------------------------------
/SLA.md:
--------------------------------------------------------------------------------
1 | # Support Services Agreement
2 |
3 | This Support Services Agreement ("Agreement') sets forth the terms and conditions applicable to the provision by DeployHub of maintenance and support services (the “Support Services”) for DeployHub
4 | software separately licensed to you by DeployHub, Inc “DeployHub”, (the "Maintained Software") and for which you have paid the applicable annual maintenance fee. All software, documentation and media
5 | provided to you under the terms and conditions of this Agreement are also subject to the terms and conditions of the applicable DeployHub Software License Agreement relating to the Maintained
6 | Software.
7 |
8 | ## TERM AND TERMINATION
9 |
10 | This Agreement will become effective and Support Services provided hereunder will commence when DeployHub receives your order for Support Services. DeployHub may terminate this Agreement in the event
11 | your payment of the applicable annual maintenance fee for such order is not received within thirty (30) days of receipt of invoice. Unless terminated earlier in accordance with the terms of this
12 | Agreement, the Support Services provided hereunder will cease on the last day of the maintenance period which is twelve (12) months from the commencement of Support Services under this Agreement. This
13 | Agreement may be terminated at any time upon fifteen (15) days written notice by either party to the other party by reason of any violation of any material terms and conditions of this Agreement.
14 |
15 | ## WHAT YOU RECEIVE AS AN DEPLOYHUB SUPPORT SERVICES CUSTOMER
16 |
17 | ### Telephone & Email Support
18 |
19 | DeployHub responds to Customer requests for Support by telephone, facsimile, on line service (if available) or in writing to Customer from 7:00 am to 7:00 pm Eastern Standard Time, Monday through
20 | Friday excluding national Holidays. Customer can request weekend or Holiday support on an "as needed" basis by submitting the request in writing to DeployHub.
21 |
22 | ### Correction to Reported Defects
23 |
24 | DeployHub will, with your assistance in providing sufficient information and the minimum length source code sufficient for DeployHub to reproduce the suspected Defect, investigate a suspected Defect
25 | in the then current release or immediately prior release of the Maintained Software by attempting to reproduce it. If the Defect is confirmed, DeployHub will use reasonable efforts to provide a
26 | Correction via temporary product fix or in a future release. When provided under this Agreement, such Correction will be provided without additional charge. DeployHub reserves the right to discontinue
27 | Support Services without notice on a past Correction for any Maintained Software after you receive or are given access to a new release, new version or subsequent maintenance release of the Maintained
28 | Software containing that Correction is available. Defects are defined as defects in the distribution media or material differences between the operation of the Maintained Software and the description
29 | of the operation of the Maintained Software as provided in the applicable end-user documentation. Corrections include, but are not limited to, workarounds, support releases, update disks, correction
30 | disks, component replacements, patches and/or documentation changes, as DeployHub deems appropriate.
31 |
32 | ---
33 |
34 | ### Response times
35 |
36 | DeployHub shall use reasonable efforts to respond to Customer requests for service within the following response times and to provide corrections or workarounds to all errors reported by Customer
37 | within the stated time periods:
38 |
39 | * Severity 1 – Respond within 2 business hours. Provide work around or temporary fix restoring functionality of system (must be restored to Severity 2 or better level of functionality) within one business day and fix for error within 5 business days.
40 | * Severity 2 – Respond within 4 business hours. Provide work-around or avoidance within 5 business days and fix within 10 business days.
41 | * Severity 3 – Respond within 1 business day. Provide fix in next major release of the Product.
42 | * Severity 4 – Respond within 2 business days. Reply to the advice and guidance call within a reasonable period of time.
43 |
44 | ### Severity levels
45 |
46 | * "Severity 1" means a suspected Product error that: (1) renders the Product inoperative; or (2) causes the Product to fail catastrophically (system down condition).
47 | * "Severity 2" means a suspected high impact Product error that materially restricts the use or performance of the Product.
48 | * "Severity 3" means a Product error that causes a minor impact on the use of the Products or a Documentation error.
49 | * "Severity 4" means a question about Product use or implementation.
50 |
51 | ### Updates
52 |
53 | Provided that you have paid to DeployHub any applicable annual maintenance fees and charges, you will be entitled to receive from DeployHub all new releases, new versions, Corrections, enhancements
54 | and improvements to the Maintained Software to the extent that the same are made generally available to other DeployHub Support customers.
55 |
56 | ## ADDITIONAL SERVICES AND CHARGES
57 |
58 | DeployHub reserves the right, after prior notice, to charge for services which are not the result of Defects in the Maintained Software. Examples of potentially billable services include: Debugging,
59 | application coding errors in a customer's application; and Debugging problems in non-Maintained Software, or in combinations of Maintained Software and non-supported products, where the problem occurs
60 | in the non-supported product.
61 | DeployHub may offer under separate agreements additional maintenance-related services, such as training and consulting. Such services can be performed at a site and time mutually agreeable. These
62 | services are normally charged on a time and materials basis plus expenses and are subject to availability.
63 |
64 | ## ITEMS NOT COVERED BY THIS AGREEMENT
65 |
66 | The following are excluded from the Support Services:
67 |
68 | * Altered or modified Maintained Software unless altered or modified pursuant to this Agreement or another Services Agreement with DeployHub;
69 | * Any combination of Maintained Software and other software not covered by this Agreement or not authorized by DeployHub;
70 | * A release or version of Maintained Software for which maintenance services have been discontinued by DeployHub;
71 | * A product release or version that has been withdrawn by DeployHub from the market or is otherwise not generally available;
72 | * Defects caused by your negligence or fault;
73 | * Defects resulting from hardware malfunction or malfunction of software not covered by this Agreement;
74 | * Defects that do not impair or affect the operation of the Maintained Software; and
75 | * Maintained Software used on an unsupported computer or operating system.
76 |
77 | ## MAINTENANCE RENEWAL
78 |
79 | The first annual maintenance fee shall be paid in accordance with Item 1 above. Annual maintenance fees for new annual maintenance periods must be paid in advance on or prior to each anniversary of
80 | the commencement of Support Services. Approximately forty-five (45) days prior to the termination of the then current annual maintenance period, DeployHub will invoice you for the next year's renewal
81 | of the Support Services. The annual maintenance fee due for the next maintenance period shall be the then current applicable DeployHub list price for the renewal of annual Support Services as of the
82 | date of invoice.
83 | DeployHub reserves the right to withdraw Support Services on any or all Maintained Software, and to alter the prices, terms and conditions for the Support Services in advance of any renewal of Support
84 | Services. Any such withdrawal or alterations will amend this Agreement between you and DeployHub as of such renewal date.
85 |
86 | ## MAINTENANCE RE-INSTATEMENT
87 |
88 | If you allow the Support Services to expire, in order to reinstate Support Services for a 12-month term for the applicable Maintained Software you must pay to DeployHub: if you are licensing the then
89 | current release of such Maintained Software, a fee equal to the then current annual maintenance fee for the applicable copy of the Maintained Software, plus the then current annual maintenance fee
90 | prorated for the period extending back to the date of expiration of Support Services; or if you are not licensing the then current release of such Maintained Software, a fee equal to the then current
91 | annual maintenance fee for the applicable copy of Maintained Software, plus the then current upgrade fee for the current release of the Maintained Software.
92 |
93 | ## EXCLUSION OF DAMAGES
94 |
95 | NEITHER DeployHub NOR ANY OF ITS THIRD-PARTY SUPPLIERS SHALL BE LIABLE FOR ANY INJURY, LOSS OR DAMAGE, WHETHER INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL, ARISING OUT OF THE SUPPORT SERVICES OR
96 | THE USE OR INABILITY TO USE THE MAINTAINED SOFTWARE, INCLUDING WITHOUT LIMITATION LOST PROFITS, DATA OR PROGRAMS, AND THE COST OF RECOVERING SUCH DATA OR PROGRAMS, EVEN IF INFORMED OF THE POSSIBILITY
97 | OF SUCH DAMAGES IN ADVANCE.
98 |
99 | ## LIMITATION OF LIABILITY
100 |
101 | DEPLOYHUB’S cumulative liability to you for any loss or damages resulting from any claims, demands, or actions arising out of or relating to this Agreement shall not exceed the license fee paid by you
102 | to DEPLOYHUB for the use of the Software under this Agreement. In no event shall DEPLOYHUB be liable for any (a) indirect, punitive, incidental, consequential, special, or exemplary damages or lost
103 | profits, (b) loss of use of any computer or loss or corruption of data or the costs of system or data recovery, or (c) third party claims. The limitations contained in this paragraph apply whether the
104 | liability is based on contract, negligence, strict liability or otherwise, even if DEPLOYHUB has been advised of the possibility of such damages. SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION
105 | OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.
106 |
107 | ## OWNERSHIP
108 |
109 | DeployHub and its third-party suppliers have and will retain all ownership rights to the Maintained Software, including all patent rights, copyrights, trademarks, service marks, related goodwill, and
110 | confidential and proprietary information relating thereto. You have no rights in the Maintained Software except as explicitly stated in this Agreement or the applicable DeployHub Software License
111 | Agreement.
112 |
113 | ## MISCELLANEOUS
114 |
115 | You may not assign this Agreement to a third party without the prior written consent of DeployHub. DeployHub shall not be liable for failure or delay in performing its obligations due to circumstances
116 | outside its reasonable control ("Force Majeure"). Unless otherwise agreed in writing by the parties, this Agreement and the applicable DeployHub Software License are the only agreements between
117 | DeployHub and you with respect to the Maintained Software. These Agreements supersede all prior agreements, oral or written, relating to the Maintained Software. This Agreement shall be construed and
118 | governed in accordance with the laws of the State of Illinois. Any action, suit, or other legal proceeding which is commenced to resolve any matter arising under or relating to any provision of this
119 | Agreement shall be commenced and prosecuted only in a state or federal court in Santa Fe, NM, and you hereby consent to the jurisdiction of such a court. If any action is brought by either party to
120 | this Agreement against the other party regarding the subject matter hereof, the prevailing party shall be entitled to recover, in addition to any other relief granted, reasonable attorney fees and
121 | expenses of litigation. Should any term of this Agreement be declared void or unenforceable by any court of competent jurisdiction, such declaration shall have no effect on the remaining terms hereof.
122 | The failure of either party to enforce any rights granted hereunder or to take action against the other party in the event of any breach hereunder shall not be deemed a waiver by that party as to
123 | subsequent enforcement of rights or subsequent actions in the event of future breaches. DeployHub may assign this Agreement without notice to you. The headings of the sections of this Agreement are
124 | included for ease of references only, are not part of this Agreement and are not to be used in the construction and interpretation of the terms hereof.
125 |
126 | | DeployHub, Inc | ____________________________________ |
127 | |---------------------------------------|-----------------------------------------|
128 | | By: _______________________________ | By: _________________________________ |
129 | | Name: _____________________________ | Name: _______________________________ |
130 | | Title: ______________________________ | Title:_________________________________ |
131 | | Date: ______________________________ | Date:________________________________ |
132 |
--------------------------------------------------------------------------------