openbrokerapi 4.7.0__tar.gz → 4.7.3__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 (69) hide show
  1. openbrokerapi-4.7.3/.bumpversion.cfg +6 -0
  2. openbrokerapi-4.7.3/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  3. openbrokerapi-4.7.3/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  4. openbrokerapi-4.7.3/.github/codeql/codeql-config.yml +7 -0
  5. openbrokerapi-4.7.3/.github/dependabot.yml +16 -0
  6. openbrokerapi-4.7.3/.github/workflows/auto-merge.yml +19 -0
  7. openbrokerapi-4.7.3/.github/workflows/codeql.yml +82 -0
  8. openbrokerapi-4.7.3/.github/workflows/python-publish.yml +60 -0
  9. openbrokerapi-4.7.3/.github/workflows/python-test.yml +58 -0
  10. openbrokerapi-4.7.3/.github/workflows/scorecard.yml +69 -0
  11. openbrokerapi-4.7.3/.gitignore +24 -0
  12. openbrokerapi-4.7.3/.pre-commit-config.yaml +29 -0
  13. openbrokerapi-4.7.3/.readthedocs.yml +14 -0
  14. openbrokerapi-4.7.3/CHANGELOG.rst +195 -0
  15. openbrokerapi-4.7.3/DEVELOPMENT.md +54 -0
  16. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/PKG-INFO +20 -22
  17. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/README.rst +4 -2
  18. openbrokerapi-4.7.3/SECURITY.md +13 -0
  19. openbrokerapi-4.7.3/TODO.md +16 -0
  20. openbrokerapi-4.7.3/doc/.gitignore +1 -0
  21. openbrokerapi-4.7.3/doc/Makefile +245 -0
  22. openbrokerapi-4.7.3/doc/_static/in_memory_broker.py +91 -0
  23. openbrokerapi-4.7.3/doc/_static/seperated_broker.py +81 -0
  24. openbrokerapi-4.7.3/doc/_static/single_broker.py +51 -0
  25. openbrokerapi-4.7.3/doc/changelog.rst +3 -0
  26. openbrokerapi-4.7.3/doc/conf.py +205 -0
  27. openbrokerapi-4.7.3/doc/full_example.rst +5 -0
  28. openbrokerapi-4.7.3/doc/index.rst +31 -0
  29. openbrokerapi-4.7.3/doc/make.bat +275 -0
  30. openbrokerapi-4.7.3/doc/openbrokerapi.rst +61 -0
  31. openbrokerapi-4.7.3/doc/overview.rst +28 -0
  32. openbrokerapi-4.7.3/doc/readme.rst +3 -0
  33. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/api.py +18 -4
  34. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/auth.py +1 -4
  35. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/catalog.py +11 -9
  36. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/router.py +1 -1
  37. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/service_broker.py +10 -10
  38. openbrokerapi-4.7.3/pyproject.toml +155 -0
  39. openbrokerapi-4.7.3/ship.sh +34 -0
  40. openbrokerapi-4.7.3/tests/__init__.py +55 -0
  41. openbrokerapi-4.7.3/tests/test_authentication.py +48 -0
  42. openbrokerapi-4.7.3/tests/test_bad_request.py +118 -0
  43. openbrokerapi-4.7.3/tests/test_bind.py +410 -0
  44. openbrokerapi-4.7.3/tests/test_catalog.py +258 -0
  45. openbrokerapi-4.7.3/tests/test_deprovisioning.py +135 -0
  46. openbrokerapi-4.7.3/tests/test_get_binding.py +44 -0
  47. openbrokerapi-4.7.3/tests/test_get_instance.py +68 -0
  48. openbrokerapi-4.7.3/tests/test_integration_using_async_flow.py +401 -0
  49. openbrokerapi-4.7.3/tests/test_integration_using_router.py +283 -0
  50. openbrokerapi-4.7.3/tests/test_last_binding_operation.py +60 -0
  51. openbrokerapi-4.7.3/tests/test_last_operation.py +71 -0
  52. openbrokerapi-4.7.3/tests/test_not_implemented.py +131 -0
  53. openbrokerapi-4.7.3/tests/test_prechecks.py +155 -0
  54. openbrokerapi-4.7.3/tests/test_provisioning.py +482 -0
  55. openbrokerapi-4.7.3/tests/test_router.py +115 -0
  56. openbrokerapi-4.7.3/tests/test_serve.py +168 -0
  57. openbrokerapi-4.7.3/tests/test_unbind.py +126 -0
  58. openbrokerapi-4.7.3/tests/test_update.py +342 -0
  59. openbrokerapi-4.7.3/uv.lock +2015 -0
  60. openbrokerapi-4.7.0/pyproject.toml +0 -187
  61. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/LICENSE +0 -0
  62. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/__init__.py +0 -0
  63. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/constants.py +0 -0
  64. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/errors.py +0 -0
  65. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/helper.py +0 -0
  66. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/log_util.py +0 -0
  67. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/request_filter.py +0 -0
  68. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/response.py +0 -0
  69. {openbrokerapi-4.7.0 → openbrokerapi-4.7.3}/openbrokerapi/settings.py +0 -0
@@ -0,0 +1,6 @@
1
+ [bumpversion]
2
+ current_version = 4.7.3
3
+
4
+ [bumpversion:file:pyproject.toml]
5
+
6
+ [bumpversion:file:doc/conf.py]
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+
5
+ ---
6
+
7
+ **Describe the bug**
8
+ A clear and concise description of what the bug is.
9
+
10
+ **To Reproduce**
11
+ Steps to reproduce the behavior:
12
+ 1. Go to '...'
13
+ 2. Click on '....'
14
+ 3. Scroll down to '....'
15
+ 4. See error
16
+
17
+ **Expected behavior**
18
+ A clear and concise description of what you expected to happen.
19
+
20
+ **Additional context**
21
+ Add any other context about the problem here.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+
5
+ ---
6
+
7
+ **Is your feature request related to a problem? Please describe.**
8
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9
+
10
+ **Describe the solution you'd like**
11
+ A clear and concise description of what you want to happen.
12
+
13
+ **Describe alternatives you've considered**
14
+ A clear and concise description of any alternative solutions or features you've considered.
15
+
16
+ **Additional context**
17
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,7 @@
1
+ paths:
2
+ - openbrokerapi
3
+ paths-ignore:
4
+ - 'docs/**'
5
+ - '.github/**'
6
+ - '.pytest_cache/**'
7
+ - 'tests/**'
@@ -0,0 +1,16 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "uv" # update deps
9
+ directory: "/"
10
+ schedule:
11
+ interval: "weekly"
12
+
13
+ - package-ecosystem: github-actions
14
+ directory: /
15
+ schedule:
16
+ interval: daily
@@ -0,0 +1,19 @@
1
+ name: Dependabot auto-merge
2
+ on: pull_request
3
+
4
+ permissions: {}
5
+
6
+
7
+ jobs:
8
+ dependabot:
9
+ runs-on: ubuntu-latest
10
+ if: ${{ github.actor == 'dependabot[bot]' || github.event.label.name == 'automerge' }}
11
+ permissions:
12
+ pull-requests: write
13
+ contents: write
14
+ steps:
15
+ - name: Enable auto-merge for Dependabot PRs
16
+ run: gh pr merge --auto --merge "$PR_URL"
17
+ env:
18
+ PR_URL: ${{github.event.pull_request.html_url}}
19
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
@@ -0,0 +1,82 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ on:
18
+ push:
19
+ branches: [ "main" ]
20
+ paths-ignore:
21
+ - '**/*.md'
22
+ - '**/*.txt'
23
+ pull_request:
24
+ # The branches below must be a subset of the branches above
25
+ branches: [ "main" ]
26
+ paths-ignore:
27
+ - '**/*.md'
28
+ - '**/*.txt'
29
+ schedule:
30
+ - cron: '31 16 * * 1'
31
+
32
+ jobs:
33
+ analyze:
34
+ name: Analyze
35
+ runs-on: ubuntu-latest
36
+ permissions:
37
+ actions: read
38
+ contents: read
39
+ security-events: write
40
+
41
+ strategy:
42
+ fail-fast: false
43
+ matrix:
44
+ language: [ 'python' ]
45
+
46
+ steps:
47
+ - name: Checkout repository
48
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
49
+
50
+ # Initializes the CodeQL tools for scanning.
51
+ - name: Initialize CodeQL
52
+ uses: github/codeql-action/init@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
53
+ with:
54
+ languages: ${{ matrix.language }}
55
+ config-file: ./.github/codeql/codeql-config.yml
56
+ # If you wish to specify custom queries, you can do so here or in a config file.
57
+ # By default, queries listed here will override any specified in a config file.
58
+ # Prefix the list here with "+" to use these queries and those in the config file.
59
+
60
+ # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
61
+ # queries: security-extended,security-and-quality
62
+
63
+
64
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
65
+ # If this step fails, then you should remove it and run the build manually (see below)
66
+ - name: Autobuild
67
+ uses: github/codeql-action/autobuild@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
68
+
69
+ # ℹ️ Command-line programs to run using the OS shell.
70
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
71
+
72
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
73
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
74
+
75
+ # - run: |
76
+ # echo "Run, Build Application using script"
77
+ # ./location_of_script_within_repo/buildscript.sh
78
+
79
+ - name: Perform CodeQL Analysis
80
+ uses: github/codeql-action/analyze@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
81
+ with:
82
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,60 @@
1
+ name: Python publish package
2
+ on:
3
+ push:
4
+ tags:
5
+ - "v*.*.*"
6
+
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ build-and-testpypi:
14
+ runs-on: ubuntu-latest
15
+ environment: release
16
+ permissions:
17
+ # IMPORTANT: this permission is mandatory for trusted publishing
18
+ id-token: write
19
+
20
+ steps:
21
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
22
+
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v4
25
+ with:
26
+ version: 'latest'
27
+ python-version: '3.8' # use the oldest supported Python version for publishing
28
+ enable-cache: true
29
+
30
+ - name: Build Package
31
+ run: |
32
+ uv build
33
+
34
+ - name: Upload dist artefact
35
+ uses: actions/upload-artifact@v4
36
+ with:
37
+ name: dist
38
+ path: dist/*
39
+
40
+ - name: Publish package distributions to Test-PyPI
41
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
42
+ with:
43
+ repository-url: https://test.pypi.org/legacy/
44
+
45
+ publish-pypi:
46
+ runs-on: ubuntu-latest
47
+ environment: release
48
+ permissions:
49
+ id-token: write
50
+ needs: build-and-testpypi
51
+
52
+ steps:
53
+ - name: Download dist artefact
54
+ uses: actions/download-artifact@v4
55
+ with:
56
+ name: dist
57
+ path: dist
58
+
59
+ - name: Publish package distributions to PyPI
60
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
@@ -0,0 +1,58 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
+
4
+ name: Test
5
+
6
+ on:
7
+ push:
8
+ branches: [ main ]
9
+ pull_request:
10
+ branches: [ main ]
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ test:
17
+
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ fail-fast: true
21
+ matrix:
22
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
23
+
24
+ steps:
25
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
26
+ - name: Install uv and set the Python version
27
+ uses: astral-sh/setup-uv@v6
28
+ with:
29
+ python-version: ${{ matrix.python-version }}
30
+ - name: Install dependencies
31
+ run: |
32
+ uv sync
33
+ uv pip install "coveralls[toml]" pytest-cov "coverage[toml]"
34
+ - name: Lint with ruff
35
+ run: |
36
+ uv run ruff check .
37
+ - name: Test with pytest
38
+ run: |
39
+ uv run pytest --cov=openbrokerapi
40
+ - name: Upload coverage data to coveralls.io
41
+ run: uv run coveralls --service=github
42
+ env:
43
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44
+ COVERALLS_FLAG_NAME: ${{ matrix.python-version }}
45
+ COVERALLS_PARALLEL: true
46
+
47
+ coveralls:
48
+ name: Indicate completion to coveralls.io
49
+ needs: test
50
+ runs-on: ubuntu-latest
51
+ container: python:3-slim
52
+ steps:
53
+ - name: Finished
54
+ run: |
55
+ pip3 install --upgrade "coveralls[toml]"
56
+ coveralls --service=github --finish
57
+ env:
58
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,69 @@
1
+ name: Scorecard supply-chain security
2
+ on:
3
+ # For Branch-Protection check. Only the default branch is supported. See
4
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
5
+ branch_protection_rule:
6
+ # To guarantee Maintained check is occasionally updated. See
7
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
8
+ schedule:
9
+ - cron: '25 11 * * 6'
10
+ push:
11
+ branches: [ "main" ]
12
+
13
+ # Declare default permissions as read only.
14
+ permissions: read-all
15
+
16
+ jobs:
17
+ analysis:
18
+ name: Scorecard analysis
19
+ runs-on: ubuntu-latest
20
+ permissions:
21
+ # Needed to upload the results to code-scanning dashboard.
22
+ security-events: write
23
+ # Needed to publish results and get a badge (see publish_results below).
24
+ id-token: write
25
+ # Uncomment the permissions below if installing in a private repository.
26
+ # contents: read
27
+ # actions: read
28
+
29
+ steps:
30
+ - name: "Checkout code"
31
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
32
+ with:
33
+ persist-credentials: false
34
+
35
+ - name: "Run analysis"
36
+ uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3
37
+ with:
38
+ results_file: results.sarif
39
+ results_format: sarif
40
+ # (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
41
+ # - you want to enable the Branch-Protection check on a *public* repository, or
42
+ # - you are installing Scorecard on a *private* repository
43
+ # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
44
+ # repo_token: ${{ secrets.SCORECARD_TOKEN }}
45
+
46
+ # Public repositories:
47
+ # - Publish results to OpenSSF REST API for easy access by consumers
48
+ # - Allows the repository to include the Scorecard badge.
49
+ # - See https://github.com/ossf/scorecard-action#publishing-results.
50
+ # For private repositories:
51
+ # - `publish_results` will always be set to `false`, regardless
52
+ # of the value entered here.
53
+ publish_results: true
54
+
55
+ # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
56
+ # format to the repository Actions tab.
57
+ - name: "Upload artifact"
58
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
59
+ with:
60
+ name: SARIF file
61
+ path: results.sarif
62
+ retention-days: 5
63
+
64
+ # Upload the results to GitHub's code scanning dashboard (optional).
65
+ # Commenting out will disable upload of results to your repo's Code Scanning dashboard
66
+ - name: "Upload to code-scanning"
67
+ uses: github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
68
+ with:
69
+ sarif_file: results.sarif
@@ -0,0 +1,24 @@
1
+ .DS_Store
2
+
3
+ *.iml
4
+ .idea
5
+
6
+ env
7
+ .env
8
+ venv
9
+ .venv
10
+ .python-version
11
+
12
+ __pycache__
13
+ *.py[cod]
14
+ _build
15
+ build
16
+
17
+ dist
18
+ *.egg-info
19
+ .eggs
20
+
21
+ README.html
22
+ CHANGELOG.html
23
+
24
+ .coverage
@@ -0,0 +1,29 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v4.4.0
4
+ hooks:
5
+ - id: end-of-file-fixer
6
+ - id: trailing-whitespace
7
+ - id: check-ast
8
+
9
+ - repo: https://github.com/psf/black
10
+ rev: 23.1.0
11
+ hooks:
12
+ - id: black
13
+
14
+ - repo: https://github.com/pre-commit/mirrors-mypy
15
+ rev: 'v1.0.1'
16
+ hooks:
17
+ - id: mypy
18
+ additional_dependencies:
19
+ - types-requests
20
+ - Flask-Testing
21
+ # needs to be excluded from pre-commit in addition to mypy config in pyproject
22
+ # see: https://github.com/pre-commit/mirrors-mypy/issues/1#issuecomment-1011579690
23
+ exclude: "^(doc|tests)/.*"
24
+
25
+ - repo: https://github.com/charliermarsh/ruff-pre-commit
26
+ # Ruff version.
27
+ rev: 'v0.4.8'
28
+ hooks:
29
+ - id: ruff
@@ -0,0 +1,14 @@
1
+ # Required
2
+ version: 2
3
+
4
+ build:
5
+ os: "ubuntu-20.04"
6
+ tools:
7
+ python: "3.8"
8
+
9
+ python:
10
+ install:
11
+ - method: pip
12
+ path: .
13
+ extra_requirements:
14
+ - docs
@@ -0,0 +1,195 @@
1
+ Changelog
2
+ =========
3
+
4
+ **unreleased**
5
+ - nothing yet
6
+
7
+ **4.7.3**
8
+ - API `bind`` and `unbind`` methods with `AsyncRequired` error handling
9
+ - Update dependencies
10
+ - Migrate project setup to `uv`
11
+
12
+ **4.7.2**
13
+ - Lost to ci/cd
14
+
15
+ **4.7.1**
16
+ - Update depenendcies
17
+ - Read settings values during check, instead of import time
18
+ Use `import openbrokerapi.settings; openbrokerapi.settings.DISABLE_SPACE_ORG_GUID_CHECK = True`
19
+ to disable the check for space_guid and organization_guid, or use the environment variable
20
+ `DISABLE_SPACE_ORG_GUID_CHECK=True`
21
+
22
+ **4.7.0**
23
+ - Update to latest dependencies (incl Flask >=3)
24
+
25
+
26
+ **4.6.0**
27
+ - Update dependencies
28
+
29
+ - Removing types-urllib3 (1.26.25.14)
30
+ - Updating charset-normalizer (3.2.0 -> 3.3.0)
31
+ - Updating urllib3 (2.0.4 -> 2.0.6)
32
+ - Updating zipp (3.16.2 -> 3.17.0)
33
+ - Updating packaging (23.1 -> 23.2)
34
+ - Updating blinker (1.6.2 -> 1.6.3)
35
+ - Updating filelock (3.12.2 -> 3.12.4)
36
+ - Updating platformdirs (3.10.0 -> 3.11.0)
37
+ - Updating setuptools (68.1.2 -> 68.2.2)
38
+ - Updating werkzeug (2.3.7 -> 3.0.0)
39
+ - Updating identify (2.5.27 -> 2.5.30)
40
+ - Updating pluggy (1.2.0 -> 1.3.0)
41
+ - Updating typing-extensions (4.7.1 -> 4.8.0)
42
+ - Updating virtualenv (20.24.3 -> 20.24.5)
43
+ - Updating black (23.7.0 -> 23.9.1)
44
+ - Updating mypy (1.5.1 -> 1.6.0)
45
+ - Updating pre-commit (3.3.3 -> 3.5.0)
46
+ - Updating pytest (7.4.0 -> 7.4.2)
47
+ - Updating types-requests (2.31.0.2 -> 2.31.0.9)
48
+
49
+
50
+ **4.5.8**
51
+ - Update dependencies (Werkzeug=2.3.7, Flask=2.3.3, ...)
52
+
53
+ **4.5.7**
54
+ - minor improvements
55
+
56
+ **4.5.6**
57
+ - Improve documentation for Authenticator and rename to BrokerAuthenticator. Keep old names for now.
58
+
59
+ **4.5.5**
60
+ - Update Flask to 2.3.2: [CVE-2023-30861](https://github.com/advisories/GHSA-m2qf-hxjv-5gpq)
61
+ - Update pytest from 7.2.1 to 7.3.1
62
+ - Use trusted provider flow to publish to pypi
63
+
64
+ > Releases 4.5.1-4 were used to test the new GitHub workflow and are only pushed to Test-PYPI
65
+
66
+ **4.5**
67
+ - Drop Python 3.7 support
68
+ - Update dependencies
69
+
70
+ **v4.4**
71
+ - Provide an option to provide a custom authentication implementing `openbrokerapi.auth.Authenticator`
72
+
73
+ **v4.3.1**
74
+ - Pass error messages of `ErrBadRequest` to inform the platform about the issue details
75
+
76
+
77
+ **v4.3**
78
+ - Fix [issue 211](https://github.com/eruvanos/openbrokerapi/issues/211) use keyword arguments to call broker functions from api
79
+
80
+ **v4.2**
81
+ - ErrConcurrentInstanceAccess exception on an instance update, an instance deprovision, a binding or unbinding must return 422 not 500.
82
+ - ErrPlanChangeNotSupported exception must return 400 not 500.
83
+ - last_operation and last_binding_operation forward service and plan identifiers when provided
84
+
85
+ - Update dependencies
86
+ - Drop Python 3.6 support
87
+ - Migrate to Poetry
88
+
89
+ **v4.1**
90
+ - Drop Python 3.5 support
91
+ - Fix ´bind´ in multi broker setup (#117); thx @vaxvms
92
+ - Removing requirement to have a space_guid and an organization_guid (#116); thx @rajahaidar
93
+ - Improve documentation; thx @vaxvms
94
+ - Fix collections.abc deprecation; thx @tammersaleh
95
+
96
+ **v4.0.2**
97
+ - Introduce new error to return BadRequest
98
+ - Add **kwargs to catalog classes
99
+
100
+ **v4.0.1**
101
+ - Add gunicorn installation
102
+
103
+ **v4.0**
104
+ - Extract routing mechanism into a `Router` class
105
+ - Clean `ServiceBroker` interface
106
+ - `gevent` is now optional and can be installed by `pip install openbrokerapi[gevent]`
107
+ - Added endpoint to get last binding operation
108
+ - Introduce `**kwargs` into some signatures to improve backwards compatibility in the future
109
+ - Fixed responses with status 412 don't contain body (https://github.com/pallets/werkzeug/issues/1231)
110
+ - `ServiceBroker` provides methods to fetch instance and binding
111
+ - Provision does not require `organization_guid` and `space_guid` parameters, if they are available in the context object
112
+
113
+ **Incompatibility**
114
+ - Changed parameter order in `UnbindDetails`, `DeprovisionDetails`
115
+ - Changed parameter name of `ServiceBroker.provision`
116
+ - Removed deprecated `ServicePlanMetaData` (use `ServicePlanMetadata`)
117
+ - Unbind now returns `UnbindSpec`
118
+ - `ServiceBroker.bind` and `ServiceBroker.unbind` now receive `async_allowed` flag
119
+
120
+ **Why breaking changes?**
121
+
122
+ To catch up with the newest features of the OpenServiceBroker API some breaking changes were neccessary.
123
+ While I was working on the new version I realised that there are a few things I really wanted to fix, which is at the end the reason, for some changes that may not be necessary but nice to have.
124
+
125
+ **v3.2**
126
+ - Add shareable to ServiceMetaData
127
+ - 501 to unimplemented broker actions #41
128
+ - Fixed: AttributeError in broker without creds #43
129
+ - Add `ErrInvalidParameters` to respond with `400` for malformed or missing mandatory data #49
130
+ - Support for custom Metadata fields. #47
131
+
132
+ **v3.1.x**
133
+ - Fix typos
134
+ - Add checks for Content-Type
135
+ - Use `gevent` instead of `app.run`
136
+ - Originating-Identity available (thx to #10 redorff)
137
+ - Context dict available (thx to #10 redorff)
138
+ - Support multiple credentials (thx to #10 redorff)
139
+ - Service update can return dashboard_url
140
+ - Return 400 also when body not parsable
141
+ - Improve docs
142
+
143
+ **v2.0.0**
144
+ - Refactor API
145
+
146
+ **v1.0.0**
147
+ - permit to run a broker without authentication
148
+ - Support multiple services with one broker
149
+
150
+ **v0.5.0**
151
+ - error handling fixed for ServiceExceptions
152
+ - support 200-OK as provision and bind responses `[issue #1]`_
153
+
154
+ - instead of 'is_async' flag an enumeration is used
155
+
156
+ .. _[issue #1]: https://github.com/eruvanos/openbrokerapi/issues/1
157
+
158
+ **v0.4.1**
159
+ - support Python 3.5+
160
+
161
+ **v0.4.0**
162
+ - remove unused response classes
163
+ - ProvisionedServiceSpec: do not require optional fields
164
+ - DeprovisionServiceSpec: do not require optional fields
165
+ - LastOperation: do not require optional fields
166
+ - update to openbrokerapi 2.13 (minimal required)
167
+ - correct some required vs non required fields
168
+
169
+ **v0.3.1**
170
+ - fix api.serve
171
+
172
+ **v0.3**
173
+ - use LastOperationResponse for last\_operation response
174
+ - fix: catalog response was not convertible to json
175
+ - fix: not required fields were still in catalog response
176
+ - add missing tests for catalog endpoint
177
+ - support for VolumeMounts is tested
178
+
179
+ **v0.2**
180
+ - improve testing
181
+ - fix: Bind and update getting dict instead of expected objects
182
+ - support async for provision, update and deprovision
183
+ - Handle unexpected exception with global error\_handler (responding
184
+ with 500)
185
+ - get\_blueprint() now expects a logger
186
+ - add log\_utils with basic\_config()
187
+
188
+ **v0.1**
189
+ - initial version
190
+ - supported operations
191
+ - provision
192
+ - update
193
+ - bind
194
+ - unbind
195
+ - deprovision
@@ -0,0 +1,54 @@
1
+ # Development commands and notes
2
+
3
+ ## Contributing
4
+
5
+ Use black to format your code!
6
+
7
+ ## Build pipeline
8
+
9
+ To publish a release use bumpversion. This will update the `pyproject.toml` and tag the commit.
10
+ #TODO a Github action will pick up the new tag and publish a new version on pypi
11
+
12
+ > To trigger the whole build process use `ship.sh`.
13
+
14
+ ```bash
15
+ ./ship.sh patch|minor
16
+ ```
17
+
18
+
19
+ ## Manual steps
20
+
21
+ ### Install dependencies
22
+ ```
23
+ uv sync --extra dev
24
+ ```
25
+
26
+ ### Test
27
+ ```
28
+ uv run pytest .
29
+ ```
30
+
31
+ ### Build
32
+ ```
33
+ uv build
34
+ ```
35
+
36
+ ### Upload
37
+ ```
38
+ # Test PyPI
39
+ uv publish --publish-url https://test.pypi.org/legacy/
40
+ # PyPI
41
+ uv publish
42
+ ```
43
+
44
+ ### Install from testpypi
45
+ ```
46
+ pip install -i https://testpypi.python.org/simple openbrokerapi
47
+ ```
48
+
49
+ ### Create docs
50
+
51
+ ```
52
+ cd doc
53
+ uv run sphinx-build -b html . _build
54
+ ```