openbrokerapi 4.7.1__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.
- openbrokerapi-4.7.3/.bumpversion.cfg +6 -0
- openbrokerapi-4.7.3/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- openbrokerapi-4.7.3/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
- openbrokerapi-4.7.3/.github/codeql/codeql-config.yml +7 -0
- openbrokerapi-4.7.3/.github/dependabot.yml +16 -0
- openbrokerapi-4.7.3/.github/workflows/auto-merge.yml +19 -0
- openbrokerapi-4.7.3/.github/workflows/codeql.yml +82 -0
- openbrokerapi-4.7.3/.github/workflows/python-publish.yml +60 -0
- openbrokerapi-4.7.3/.github/workflows/python-test.yml +58 -0
- openbrokerapi-4.7.3/.github/workflows/scorecard.yml +69 -0
- openbrokerapi-4.7.3/.gitignore +24 -0
- openbrokerapi-4.7.3/.pre-commit-config.yaml +29 -0
- openbrokerapi-4.7.3/.readthedocs.yml +14 -0
- openbrokerapi-4.7.3/CHANGELOG.rst +195 -0
- openbrokerapi-4.7.3/DEVELOPMENT.md +54 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/PKG-INFO +16 -20
- openbrokerapi-4.7.3/SECURITY.md +13 -0
- openbrokerapi-4.7.3/TODO.md +16 -0
- openbrokerapi-4.7.3/doc/.gitignore +1 -0
- openbrokerapi-4.7.3/doc/Makefile +245 -0
- openbrokerapi-4.7.3/doc/_static/in_memory_broker.py +91 -0
- openbrokerapi-4.7.3/doc/_static/seperated_broker.py +81 -0
- openbrokerapi-4.7.3/doc/_static/single_broker.py +51 -0
- openbrokerapi-4.7.3/doc/changelog.rst +3 -0
- openbrokerapi-4.7.3/doc/conf.py +205 -0
- openbrokerapi-4.7.3/doc/full_example.rst +5 -0
- openbrokerapi-4.7.3/doc/index.rst +31 -0
- openbrokerapi-4.7.3/doc/make.bat +275 -0
- openbrokerapi-4.7.3/doc/openbrokerapi.rst +61 -0
- openbrokerapi-4.7.3/doc/overview.rst +28 -0
- openbrokerapi-4.7.3/doc/readme.rst +3 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/api.py +15 -1
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/auth.py +1 -4
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/catalog.py +11 -9
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/router.py +1 -1
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/service_broker.py +8 -8
- openbrokerapi-4.7.3/pyproject.toml +155 -0
- openbrokerapi-4.7.3/ship.sh +34 -0
- openbrokerapi-4.7.3/tests/__init__.py +55 -0
- openbrokerapi-4.7.3/tests/test_authentication.py +48 -0
- openbrokerapi-4.7.3/tests/test_bad_request.py +118 -0
- openbrokerapi-4.7.3/tests/test_bind.py +410 -0
- openbrokerapi-4.7.3/tests/test_catalog.py +258 -0
- openbrokerapi-4.7.3/tests/test_deprovisioning.py +135 -0
- openbrokerapi-4.7.3/tests/test_get_binding.py +44 -0
- openbrokerapi-4.7.3/tests/test_get_instance.py +68 -0
- openbrokerapi-4.7.3/tests/test_integration_using_async_flow.py +401 -0
- openbrokerapi-4.7.3/tests/test_integration_using_router.py +283 -0
- openbrokerapi-4.7.3/tests/test_last_binding_operation.py +60 -0
- openbrokerapi-4.7.3/tests/test_last_operation.py +71 -0
- openbrokerapi-4.7.3/tests/test_not_implemented.py +131 -0
- openbrokerapi-4.7.3/tests/test_prechecks.py +155 -0
- openbrokerapi-4.7.3/tests/test_provisioning.py +482 -0
- openbrokerapi-4.7.3/tests/test_router.py +115 -0
- openbrokerapi-4.7.3/tests/test_serve.py +168 -0
- openbrokerapi-4.7.3/tests/test_unbind.py +126 -0
- openbrokerapi-4.7.3/tests/test_update.py +342 -0
- openbrokerapi-4.7.3/uv.lock +2015 -0
- openbrokerapi-4.7.1/pyproject.toml +0 -187
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/LICENSE +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/README.rst +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/__init__.py +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/constants.py +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/errors.py +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/helper.py +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/log_util.py +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/request_filter.py +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/response.py +0 -0
- {openbrokerapi-4.7.1 → openbrokerapi-4.7.3}/openbrokerapi/settings.py +0 -0
|
@@ -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,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,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,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
|
+
```
|