openbrokerapi 4.7.1__tar.gz → 4.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. openbrokerapi-4.8.0/.bumpversion.cfg +6 -0
  2. openbrokerapi-4.8.0/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  3. openbrokerapi-4.8.0/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  4. openbrokerapi-4.8.0/.github/codeql/codeql-config.yml +7 -0
  5. openbrokerapi-4.8.0/.github/dependabot.yml +16 -0
  6. openbrokerapi-4.8.0/.github/workflows/auto-merge.yml +19 -0
  7. openbrokerapi-4.8.0/.github/workflows/codeql.yml +82 -0
  8. openbrokerapi-4.8.0/.github/workflows/python-publish.yml +66 -0
  9. openbrokerapi-4.8.0/.github/workflows/python-test.yml +59 -0
  10. openbrokerapi-4.8.0/.github/workflows/scorecard.yml +69 -0
  11. openbrokerapi-4.8.0/.gitignore +24 -0
  12. openbrokerapi-4.8.0/.pre-commit-config.yaml +25 -0
  13. openbrokerapi-4.8.0/.readthedocs.yml +20 -0
  14. openbrokerapi-4.8.0/CHANGELOG.rst +200 -0
  15. openbrokerapi-4.8.0/DEVELOPMENT.md +54 -0
  16. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/PKG-INFO +18 -24
  17. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/README.rst +1 -1
  18. openbrokerapi-4.8.0/SECURITY.md +13 -0
  19. openbrokerapi-4.8.0/TODO.md +16 -0
  20. openbrokerapi-4.8.0/doc/.gitignore +1 -0
  21. openbrokerapi-4.8.0/doc/Makefile +245 -0
  22. openbrokerapi-4.8.0/doc/_static/in_memory_broker.py +91 -0
  23. openbrokerapi-4.8.0/doc/_static/seperated_broker.py +81 -0
  24. openbrokerapi-4.8.0/doc/_static/single_broker.py +51 -0
  25. openbrokerapi-4.8.0/doc/changelog.rst +3 -0
  26. openbrokerapi-4.8.0/doc/conf.py +205 -0
  27. openbrokerapi-4.8.0/doc/full_example.rst +5 -0
  28. openbrokerapi-4.8.0/doc/index.rst +31 -0
  29. openbrokerapi-4.8.0/doc/make.bat +275 -0
  30. openbrokerapi-4.8.0/doc/openbrokerapi.rst +61 -0
  31. openbrokerapi-4.8.0/doc/overview.rst +28 -0
  32. openbrokerapi-4.8.0/doc/readme.rst +3 -0
  33. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/api.py +16 -2
  34. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/auth.py +1 -4
  35. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/catalog.py +11 -9
  36. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/router.py +1 -1
  37. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/service_broker.py +8 -8
  38. openbrokerapi-4.8.0/pyproject.toml +153 -0
  39. openbrokerapi-4.8.0/ship.sh +34 -0
  40. openbrokerapi-4.8.0/tests/__init__.py +55 -0
  41. openbrokerapi-4.8.0/tests/test_authentication.py +48 -0
  42. openbrokerapi-4.8.0/tests/test_bad_request.py +118 -0
  43. openbrokerapi-4.8.0/tests/test_bind.py +410 -0
  44. openbrokerapi-4.8.0/tests/test_catalog.py +258 -0
  45. openbrokerapi-4.8.0/tests/test_deprovisioning.py +135 -0
  46. openbrokerapi-4.8.0/tests/test_get_binding.py +44 -0
  47. openbrokerapi-4.8.0/tests/test_get_instance.py +68 -0
  48. openbrokerapi-4.8.0/tests/test_integration_using_async_flow.py +401 -0
  49. openbrokerapi-4.8.0/tests/test_integration_using_router.py +283 -0
  50. openbrokerapi-4.8.0/tests/test_last_binding_operation.py +60 -0
  51. openbrokerapi-4.8.0/tests/test_last_operation.py +71 -0
  52. openbrokerapi-4.8.0/tests/test_not_implemented.py +131 -0
  53. openbrokerapi-4.8.0/tests/test_prechecks.py +155 -0
  54. openbrokerapi-4.8.0/tests/test_provisioning.py +482 -0
  55. openbrokerapi-4.8.0/tests/test_router.py +115 -0
  56. openbrokerapi-4.8.0/tests/test_serve.py +168 -0
  57. openbrokerapi-4.8.0/tests/test_unbind.py +126 -0
  58. openbrokerapi-4.8.0/tests/test_update.py +342 -0
  59. openbrokerapi-4.8.0/uv.lock +1489 -0
  60. openbrokerapi-4.7.1/pyproject.toml +0 -187
  61. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/LICENSE +0 -0
  62. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/__init__.py +0 -0
  63. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/constants.py +0 -0
  64. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/errors.py +0 -0
  65. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/helper.py +0 -0
  66. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/log_util.py +0 -0
  67. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/request_filter.py +0 -0
  68. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/response.py +0 -0
  69. {openbrokerapi-4.7.1 → openbrokerapi-4.8.0}/openbrokerapi/settings.py +0 -0
@@ -0,0 +1,6 @@
1
+ [bumpversion]
2
+ current_version = 4.8.0
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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
49
+
50
+ # Initializes the CodeQL tools for scanning.
51
+ - name: Initialize CodeQL
52
+ uses: github/codeql-action/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
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@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
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/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
81
+ with:
82
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,66 @@
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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
22
+
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v7
25
+ with:
26
+ version: 'latest'
27
+ python-version: '3.11' # 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@v7.0.2
36
+ with:
37
+ name: dist
38
+ path: dist/*
39
+
40
+ - name: Publish package distributions to Test-PyPI
41
+ run: |
42
+ uv publish --trusted-publishing always --publish-url https://test.pypi.org/legacy/
43
+
44
+ publish-pypi:
45
+ runs-on: ubuntu-latest
46
+ environment: release
47
+ permissions:
48
+ # IMPORTANT: this permission is mandatory for trusted publishing
49
+ id-token: write
50
+ needs: build-and-testpypi
51
+
52
+ steps:
53
+ - name: Download dist artefact
54
+ uses: actions/download-artifact@v7
55
+ with:
56
+ name: dist
57
+ path: dist
58
+
59
+ - name: Install uv
60
+ uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
61
+ with:
62
+ version: 'latest'
63
+
64
+ - name: Publish package distributions to PyPI
65
+ run: |
66
+ uv publish --trusted-publishing always
@@ -0,0 +1,59 @@
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.11", "3.12", "3.13", "3.14"]
23
+
24
+ steps:
25
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
26
+ - name: Install uv and set the Python version
27
+ uses: astral-sh/setup-uv@v7
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
+ uv run ruff format --check .
38
+ - name: Test with pytest
39
+ run: |
40
+ uv run pytest --cov=openbrokerapi
41
+ - name: Upload coverage data to coveralls.io
42
+ run: uv run coveralls --service=github
43
+ env:
44
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45
+ COVERALLS_FLAG_NAME: ${{ matrix.python-version }}
46
+ COVERALLS_PARALLEL: true
47
+
48
+ coveralls:
49
+ name: Indicate completion to coveralls.io
50
+ needs: test
51
+ runs-on: ubuntu-latest
52
+ container: python:3-slim
53
+ steps:
54
+ - name: Finished
55
+ run: |
56
+ pip3 install --upgrade "coveralls[toml]"
57
+ coveralls --service=github --finish
58
+ env:
59
+ 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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
32
+ with:
33
+ persist-credentials: false
34
+
35
+ - name: "Run analysis"
36
+ uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0
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@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.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@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
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,25 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v6.0.0
4
+ hooks:
5
+ - id: end-of-file-fixer
6
+ - id: trailing-whitespace
7
+ - id: check-ast
8
+
9
+ - repo: https://github.com/pre-commit/mirrors-mypy
10
+ rev: 'v2.4.1'
11
+ hooks:
12
+ - id: mypy
13
+ additional_dependencies:
14
+ - types-requests
15
+ - Flask-Testing
16
+ # needs to be excluded from pre-commit in addition to mypy config in pyproject
17
+ # see: https://github.com/pre-commit/mirrors-mypy/issues/1#issuecomment-1011579690
18
+ exclude: "^(doc|tests)/.*"
19
+
20
+ - repo: https://github.com/astral-sh/ruff-pre-commit
21
+ # Ruff version.
22
+ rev: 'v0.17.3'
23
+ hooks:
24
+ - id: ruff-check
25
+ - id: ruff-format
@@ -0,0 +1,20 @@
1
+ # Required
2
+ version: 2
3
+
4
+ build:
5
+ os: "ubuntu-24.04"
6
+ tools:
7
+ python: "3.13"
8
+ jobs:
9
+ post_install:
10
+ # docs requirements are a PEP 735 dependency group, not an extra
11
+ - python -m pip install --upgrade "pip>=25.1"
12
+ - python -m pip install --group docs
13
+
14
+ python:
15
+ install:
16
+ - method: pip
17
+ path: .
18
+
19
+ sphinx:
20
+ configuration: doc/conf.py
@@ -0,0 +1,200 @@
1
+ Changelog
2
+ =========
3
+
4
+ **unreleased**
5
+
6
+ **4.8.0**
7
+ - Drop support for EOL Python 3.8, 3.9 and 3.10 (requires Python 3.11+)
8
+ - Add support for Python 3.14
9
+ - Update dependencies
10
+ - Replace black with ruff format
11
+
12
+ **4.7.3**
13
+ - API `bind`` and `unbind`` methods with `AsyncRequired` error handling
14
+ - Update dependencies
15
+ - Migrate project setup to `uv`
16
+
17
+ **4.7.2**
18
+ - Lost to ci/cd
19
+
20
+ **4.7.1**
21
+ - Update depenendcies
22
+ - Read settings values during check, instead of import time
23
+ Use `import openbrokerapi.settings; openbrokerapi.settings.DISABLE_SPACE_ORG_GUID_CHECK = True`
24
+ to disable the check for space_guid and organization_guid, or use the environment variable
25
+ `DISABLE_SPACE_ORG_GUID_CHECK=True`
26
+
27
+ **4.7.0**
28
+ - Update to latest dependencies (incl Flask >=3)
29
+
30
+
31
+ **4.6.0**
32
+ - Update dependencies
33
+
34
+ - Removing types-urllib3 (1.26.25.14)
35
+ - Updating charset-normalizer (3.2.0 -> 3.3.0)
36
+ - Updating urllib3 (2.0.4 -> 2.0.6)
37
+ - Updating zipp (3.16.2 -> 3.17.0)
38
+ - Updating packaging (23.1 -> 23.2)
39
+ - Updating blinker (1.6.2 -> 1.6.3)
40
+ - Updating filelock (3.12.2 -> 3.12.4)
41
+ - Updating platformdirs (3.10.0 -> 3.11.0)
42
+ - Updating setuptools (68.1.2 -> 68.2.2)
43
+ - Updating werkzeug (2.3.7 -> 3.0.0)
44
+ - Updating identify (2.5.27 -> 2.5.30)
45
+ - Updating pluggy (1.2.0 -> 1.3.0)
46
+ - Updating typing-extensions (4.7.1 -> 4.8.0)
47
+ - Updating virtualenv (20.24.3 -> 20.24.5)
48
+ - Updating black (23.7.0 -> 23.9.1)
49
+ - Updating mypy (1.5.1 -> 1.6.0)
50
+ - Updating pre-commit (3.3.3 -> 3.5.0)
51
+ - Updating pytest (7.4.0 -> 7.4.2)
52
+ - Updating types-requests (2.31.0.2 -> 2.31.0.9)
53
+
54
+
55
+ **4.5.8**
56
+ - Update dependencies (Werkzeug=2.3.7, Flask=2.3.3, ...)
57
+
58
+ **4.5.7**
59
+ - minor improvements
60
+
61
+ **4.5.6**
62
+ - Improve documentation for Authenticator and rename to BrokerAuthenticator. Keep old names for now.
63
+
64
+ **4.5.5**
65
+ - Update Flask to 2.3.2: [CVE-2023-30861](https://github.com/advisories/GHSA-m2qf-hxjv-5gpq)
66
+ - Update pytest from 7.2.1 to 7.3.1
67
+ - Use trusted provider flow to publish to pypi
68
+
69
+ > Releases 4.5.1-4 were used to test the new GitHub workflow and are only pushed to Test-PYPI
70
+
71
+ **4.5**
72
+ - Drop Python 3.7 support
73
+ - Update dependencies
74
+
75
+ **v4.4**
76
+ - Provide an option to provide a custom authentication implementing `openbrokerapi.auth.Authenticator`
77
+
78
+ **v4.3.1**
79
+ - Pass error messages of `ErrBadRequest` to inform the platform about the issue details
80
+
81
+
82
+ **v4.3**
83
+ - Fix [issue 211](https://github.com/eruvanos/openbrokerapi/issues/211) use keyword arguments to call broker functions from api
84
+
85
+ **v4.2**
86
+ - ErrConcurrentInstanceAccess exception on an instance update, an instance deprovision, a binding or unbinding must return 422 not 500.
87
+ - ErrPlanChangeNotSupported exception must return 400 not 500.
88
+ - last_operation and last_binding_operation forward service and plan identifiers when provided
89
+
90
+ - Update dependencies
91
+ - Drop Python 3.6 support
92
+ - Migrate to Poetry
93
+
94
+ **v4.1**
95
+ - Drop Python 3.5 support
96
+ - Fix ´bind´ in multi broker setup (#117); thx @vaxvms
97
+ - Removing requirement to have a space_guid and an organization_guid (#116); thx @rajahaidar
98
+ - Improve documentation; thx @vaxvms
99
+ - Fix collections.abc deprecation; thx @tammersaleh
100
+
101
+ **v4.0.2**
102
+ - Introduce new error to return BadRequest
103
+ - Add **kwargs to catalog classes
104
+
105
+ **v4.0.1**
106
+ - Add gunicorn installation
107
+
108
+ **v4.0**
109
+ - Extract routing mechanism into a `Router` class
110
+ - Clean `ServiceBroker` interface
111
+ - `gevent` is now optional and can be installed by `pip install openbrokerapi[gevent]`
112
+ - Added endpoint to get last binding operation
113
+ - Introduce `**kwargs` into some signatures to improve backwards compatibility in the future
114
+ - Fixed responses with status 412 don't contain body (https://github.com/pallets/werkzeug/issues/1231)
115
+ - `ServiceBroker` provides methods to fetch instance and binding
116
+ - Provision does not require `organization_guid` and `space_guid` parameters, if they are available in the context object
117
+
118
+ **Incompatibility**
119
+ - Changed parameter order in `UnbindDetails`, `DeprovisionDetails`
120
+ - Changed parameter name of `ServiceBroker.provision`
121
+ - Removed deprecated `ServicePlanMetaData` (use `ServicePlanMetadata`)
122
+ - Unbind now returns `UnbindSpec`
123
+ - `ServiceBroker.bind` and `ServiceBroker.unbind` now receive `async_allowed` flag
124
+
125
+ **Why breaking changes?**
126
+
127
+ To catch up with the newest features of the OpenServiceBroker API some breaking changes were neccessary.
128
+ 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.
129
+
130
+ **v3.2**
131
+ - Add shareable to ServiceMetaData
132
+ - 501 to unimplemented broker actions #41
133
+ - Fixed: AttributeError in broker without creds #43
134
+ - Add `ErrInvalidParameters` to respond with `400` for malformed or missing mandatory data #49
135
+ - Support for custom Metadata fields. #47
136
+
137
+ **v3.1.x**
138
+ - Fix typos
139
+ - Add checks for Content-Type
140
+ - Use `gevent` instead of `app.run`
141
+ - Originating-Identity available (thx to #10 redorff)
142
+ - Context dict available (thx to #10 redorff)
143
+ - Support multiple credentials (thx to #10 redorff)
144
+ - Service update can return dashboard_url
145
+ - Return 400 also when body not parsable
146
+ - Improve docs
147
+
148
+ **v2.0.0**
149
+ - Refactor API
150
+
151
+ **v1.0.0**
152
+ - permit to run a broker without authentication
153
+ - Support multiple services with one broker
154
+
155
+ **v0.5.0**
156
+ - error handling fixed for ServiceExceptions
157
+ - support 200-OK as provision and bind responses `[issue #1]`_
158
+
159
+ - instead of 'is_async' flag an enumeration is used
160
+
161
+ .. _[issue #1]: https://github.com/eruvanos/openbrokerapi/issues/1
162
+
163
+ **v0.4.1**
164
+ - support Python 3.5+
165
+
166
+ **v0.4.0**
167
+ - remove unused response classes
168
+ - ProvisionedServiceSpec: do not require optional fields
169
+ - DeprovisionServiceSpec: do not require optional fields
170
+ - LastOperation: do not require optional fields
171
+ - update to openbrokerapi 2.13 (minimal required)
172
+ - correct some required vs non required fields
173
+
174
+ **v0.3.1**
175
+ - fix api.serve
176
+
177
+ **v0.3**
178
+ - use LastOperationResponse for last\_operation response
179
+ - fix: catalog response was not convertible to json
180
+ - fix: not required fields were still in catalog response
181
+ - add missing tests for catalog endpoint
182
+ - support for VolumeMounts is tested
183
+
184
+ **v0.2**
185
+ - improve testing
186
+ - fix: Bind and update getting dict instead of expected objects
187
+ - support async for provision, update and deprovision
188
+ - Handle unexpected exception with global error\_handler (responding
189
+ with 500)
190
+ - get\_blueprint() now expects a logger
191
+ - add log\_utils with basic\_config()
192
+
193
+ **v0.1**
194
+ - initial version
195
+ - supported operations
196
+ - provision
197
+ - update
198
+ - bind
199
+ - unbind
200
+ - deprovision