Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔖 Release 4.2.0 #1232

Merged
merged 4 commits into from
Dec 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 70 additions & 70 deletions app/poetry.lock

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions app/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "cloudapi-app"
version = "4.1.0"
version = "4.2.0"
description = "Main app submodule for cloudapi"
authors = ["Mourits de Beer <[email protected]>"]
package-mode = false
Expand Down Expand Up @@ -39,7 +39,7 @@ pytest-mock = "~3.14.0"
pytest-xdist = "^3.6.1"

[build-system]
requires = ["poetry-core>=1.8.4"]
requires = ["poetry-core>=1.8.5"]
build-backend = "poetry.core.masonry.api"

[tool.coverage.run]
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/endorser/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ WORKDIR /endorser
COPY endorser/poetry.lock /endorser
COPY endorser/pyproject.toml /endorser

ARG POETRY_VERSION=1.8.4
ARG POETRY_VERSION=1.8.5
RUN pip install --no-cache-dir poetry==${POETRY_VERSION}
# Set Poetry's cache and virtualenvs path to a writable directory
ENV POETRY_CACHE_DIR=/tmp/.cache/pypoetry
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/fastapi/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ WORKDIR /app
COPY app/poetry.lock /app
COPY app/pyproject.toml /app

ARG POETRY_VERSION=1.8.4
ARG POETRY_VERSION=1.8.5
RUN pip install --no-cache-dir poetry==${POETRY_VERSION}
# Set Poetry's cache and virtualenvs path to a writable directory
ENV POETRY_CACHE_DIR=/tmp/.cache/pypoetry
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/tests/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ COPY trustregistry/poetry.lock trustregistry/
COPY waypoint/poetry.lock waypoint/

# Install all dependencies
ARG POETRY_VERSION=1.8.4
ARG POETRY_VERSION=1.8.5
RUN pip install --no-cache-dir poetry==${POETRY_VERSION}

ENV POETRY_VIRTUALENVS_CREATE=false
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/trustregistry/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ WORKDIR /trustregistry
COPY trustregistry/poetry.lock /trustregistry
COPY trustregistry/pyproject.toml /trustregistry

ARG POETRY_VERSION=1.8.4
ARG POETRY_VERSION=1.8.5
RUN pip install --no-cache-dir poetry==${POETRY_VERSION}
# Set Poetry's cache and virtualenvs path to a writable directory
ENV POETRY_CACHE_DIR=/tmp/.cache/pypoetry
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/waypoint/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ WORKDIR /waypoint
COPY waypoint/poetry.lock /waypoint
COPY waypoint/pyproject.toml /waypoint

ARG POETRY_VERSION=1.8.4
ARG POETRY_VERSION=1.8.5
RUN pip install --no-cache-dir poetry==${POETRY_VERSION}
# Set Poetry's cache and virtualenvs path to a writable directory
ENV POETRY_CACHE_DIR=/tmp/.cache/pypoetry
Expand Down
130 changes: 65 additions & 65 deletions endorser/poetry.lock

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions endorser/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "cloudapi-endorser"
version = "4.1.0"
version = "4.2.0"
description = "Endorser submodule for cloudapi"
authors = ["Mourits de Beer <[email protected]>"]
package-mode = false
Expand Down Expand Up @@ -32,7 +32,7 @@ pytest-cov = "~6.0.0"
pytest-mock = "~3.14.0"

[build-system]
requires = ["poetry-core>=1.8.4"]
requires = ["poetry-core>=1.8.5"]
build-backend = "poetry.core.masonry.api"

[tool.coverage.run]
Expand Down
89 changes: 75 additions & 14 deletions openapi/tenant-admin-openapi.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{

"openapi": "3.1.0",
"info": {
"title": "CloudAPI Multitenant Admin",
Expand All @@ -10,8 +11,8 @@
"/v1/tenants": {
"post": {
"tags": ["admin: tenants"],
"summary": "Create Tenant",
"description": "Create a new tenant.",
"summary": "Create New Tenant",
"description": "Create a New Tenant\n---\n\nUse this endpoint to create a new Tenant, which is the same as creating a new Wallet.\n\nThe `wallet_label` is a required field that allows you to assign an alias to the Tenant.\nThis label is used as the default alias in connections (i.e. the other party will see this name in their records).\n\nIf roles (issuer and/or verifier) are specified, the Tenant will be onboarded with these roles and added to the\ntrust registry. An issuer or a verifier is referred to as an 'actor' in the trust registry, and the `wallet_label`\nwill be used as the name for this actor.\n\nIf no roles are provided, then the created wallet represents a regular tenant\n(also referred to as a 'user', 'wallet', 'holder', or 'prover', depending on the context).\n\nThe `wallet_label` does not have to be unique for regular tenants, but it may not match the name of an existing\nactor in the trust registry, and will be blocked. Conversely, an issuer or verifier may not use a label that is\nalready in use by another tenant, and will also be blocked.\n\nThe `wallet_name` is an optional field that allows you to assign an additional identifier to the wallet, and is\nuseful with `get_tenants` to fetch Wallets by name. Wallet names must be unique.\n\nThe `image_url` is an optional field for assigning an image to the Wallet. For actors, this will also be added to\nthe trust registry.\n\n`extra_settings` is an optional field intended for advanced users, which allows configuring wallet behaviour.\n\nRequest body:\n---\n body: CreateTenantRequest\n wallet_label: str\n A required alias for the Tenant.\n wallet_name: Optional[str]\n An optional wallet name.\n roles: Optional[List[str]]\n A list of roles to assign to the Tenant.\n image_url: Optional[str]\n An optional image URL for the Tenant.\n extra_settings: Optional[dict]]\n Optional per-tenant settings to configure wallet behaviour for advanced users.\n\nResponse body:\n---\n CreateTenantResponse\n wallet_id: str\n wallet_label: str\n wallet_name: str\n created_at: str\n image_url: Optional[str]\n group_id: Optional[str]\n updated_at: str\n access_token: str",
"operationId": "create_tenant_v1_tenants_post",
"security": [{ "APIKeyHeader": [] }],
"requestBody": {
Expand All @@ -31,8 +32,8 @@
},
"get": {
"tags": ["admin: tenants"],
"summary": "Get Tenants",
"description": "Get all tenants, or fetch by wallet name.",
"summary": "Fetch Tenants",
"description": "Fetch all Tenants (paginated), or Fetch by Wallet Name\n---\n\nUse this endpoint to fetch all tenants (using pagination), or filter by wallet name.\n\nThe default for `limit` is 1000, with a maximum of 10000.\n\nResults are ordered by creation time (newest first), and can be controlled to be in ascending order (oldest first).\n\nOptional Request Parameters:\n---\n wallet_name: str\n Filter by wallet name.\n limit: int\n Number of results to return.\n offset: int\n Number of results to skip.\n descending: bool\n Whether to return results in descending order or not. Defaults to true (newest first).\n\nResponse body:\n---\n List[Tenant]\n wallet_id: str\n wallet_label: str\n wallet_name: str\n created_at: str\n updated_at: Optional[str]\n image_url: Optional[str]\n group_id: Optional[str]",
"operationId": "get_tenants_v1_tenants_get",
"security": [{ "APIKeyHeader": [] }],
"parameters": [
Expand Down Expand Up @@ -102,15 +103,15 @@
"/v1/tenants/{wallet_id}": {
"delete": {
"tags": ["admin: tenants"],
"summary": "Delete Tenant By Id",
"description": "Delete tenant by id.",
"summary": "Delete a Tenant by Wallet ID",
"description": "Delete Tenant by ID\n---\n\nUse this endpoint to delete a Tenant by its Wallet ID. This action will remove the Tenant's Wallet,\nalong with any associated credentials, connections, and other data. If the tenant is an issuer or verifier,\nthey will also be removed from the trust registry.\n\nRequest Parameters:\n---\n wallet_id: str\n The Wallet ID of the Tenant to delete.\n\nResponse body:\n---\n status_code: 204 No Content",
"operationId": "delete_tenant_by_id_v1_tenants__wallet_id__delete",
"security": [{ "APIKeyHeader": [] }],
"parameters": [
{ "name": "wallet_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Wallet Id" } }
],
"responses": {
"200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } },
"204": { "description": "Successful Response" },
"422": {
"description": "Validation Error",
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }
Expand All @@ -119,8 +120,8 @@
},
"put": {
"tags": ["admin: tenants"],
"summary": "Update Tenant",
"description": "Update tenant by id.",
"summary": "Update Tenant by Wallet ID",
"description": "Update Tenant by Wallet ID\n---\n\nUpdate a Tenant's details based on their Wallet ID.\n\nIssuers or verifiers can be promoted to hold both roles, but this endpoint does not support revoking roles.\n\nHolders cannot have their roles updated. Attempting to assign issuer or verifier\nroles to a holder will result in a 409 conflict error.\n\nUpdates to `wallet_label` or `image_url` for issuers and verifiers will be reflected on the trust registry.\n\nRequest body:\n---\n body: UpdateTenantRequest\n wallet_label: Optional[str]\n An optional alias for the Tenant.\n roles: Optional[List[str]]\n A list of roles to assign to the Tenant.\n image_url: Optional[str]\n An optional image URL for the Tenant.\n extra_settings: Optional[Dict[str, Union[bool, str]]]\n Optional per-tenant settings to configure wallet behaviour for advanced users.\n\nResponse body:\n---\n Tenant\n wallet_id: str\n wallet_label: str\n wallet_name: str\n created_at: str\n updated_at: Optional[str]\n image_url: Optional[str]\n group_id: Optional[str]",
"operationId": "update_tenant_v1_tenants__wallet_id__put",
"security": [{ "APIKeyHeader": [] }],
"parameters": [
Expand All @@ -143,8 +144,8 @@
},
"get": {
"tags": ["admin: tenants"],
"summary": "Get Tenant",
"description": "Get tenant by id.",
"summary": "Get Tenant by Wallet ID",
"description": "Fetch Tenant info by ID\n---\n\nUse this endpoint to fetch Tenant info by Wallet ID.\n\nRequest parameters:\n---\n wallet_id: str\n The Wallet ID of the Tenant to fetch.\n\nResponse body:\n---\n Tenant\n wallet_id: str\n wallet_label: str\n wallet_name: str\n created_at: str\n updated_at: Optional[str]\n image_url: Optional[str]\n group_id: Optional[str]",
"operationId": "get_tenant_v1_tenants__wallet_id__get",
"security": [{ "APIKeyHeader": [] }],
"parameters": [
Expand All @@ -165,8 +166,30 @@
"/v1/tenants/{wallet_id}/access-token": {
"get": {
"tags": ["admin: tenants"],
"summary": "Get Wallet Auth Token",
"summary": "(Deprecated) Rotate and Get New Access Token for Wallet",
"description": "(Deprecated) Rotate and get access token for Wallet\n---\n\nCalling this endpoint will invalidate the previous access token for the Wallet, and return a new one.\n\nRequest Parameters:\n---\n wallet_id: str\n The Wallet ID of the tenant for which the access token will be rotated.\n\nResponse Body:\n---\n TenantAuth\n access_token: str\n The new access token for the Wallet.",
"operationId": "get_wallet_auth_token_v1_tenants__wallet_id__access_token_get",
"deprecated": true,
"security": [{ "APIKeyHeader": [] }],
"parameters": [
{ "name": "wallet_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Wallet Id" } }
],
"responses": {
"200": {
"description": "Successful Response",
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantAuth" } } }
},
"422": {
"description": "Validation Error",
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }
}
}
},
"post": {
"tags": ["admin: tenants"],
"summary": "Rotate and Get New Access Token for Wallet",
"description": "Rotate and get new access token for Wallet\n---\n\nCalling this endpoint will invalidate the previous access token for the Wallet, and return a new one.\n\nRequest Parameters:\n---\n wallet_id: str\n The Wallet ID of the tenant for which the access token will be rotated.\n\nResponse Body:\n---\n TenantAuth\n access_token: str\n The new access token for the Wallet.",
"operationId": "post_wallet_auth_token_v1_tenants__wallet_id__access_token_post",
"security": [{ "APIKeyHeader": [] }],
"parameters": [
{ "name": "wallet_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Wallet Id" } }
Expand Down Expand Up @@ -259,7 +282,26 @@
"examples": ["https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png"]
},
"extra_settings": {
"anyOf": [{ "additionalProperties": { "type": "boolean" }, "type": "object" }, { "type": "null" }],
"anyOf": [
{
"additionalProperties": { "type": "boolean" },
"propertyNames": {
"enum": [
"ACAPY_INVITE_PUBLIC",
"ACAPY_PUBLIC_INVITES",
"ACAPY_AUTO_ACCEPT_INVITES",
"ACAPY_AUTO_ACCEPT_REQUESTS",
"ACAPY_AUTO_PING_CONNECTION",
"ACAPY_AUTO_RESPOND_MESSAGES",
"ACAPY_AUTO_RESPOND_CREDENTIAL_OFFER",
"ACAPY_AUTO_RESPOND_CREDENTIAL_REQUEST",
"ACAPY_AUTO_VERIFY_PRESENTATION"
]
},
"type": "object"
},
{ "type": "null" }
],
"title": "Extra Settings",
"description": "Optional per-tenant settings to configure wallet behaviour for advanced users.",
"examples": [{ "ACAPY_AUTO_ACCEPT_INVITES": false }]
Expand Down Expand Up @@ -350,7 +392,26 @@
"examples": ["https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png"]
},
"extra_settings": {
"anyOf": [{ "additionalProperties": { "type": "boolean" }, "type": "object" }, { "type": "null" }],
"anyOf": [
{
"additionalProperties": { "type": "boolean" },
"propertyNames": {
"enum": [
"ACAPY_INVITE_PUBLIC",
"ACAPY_PUBLIC_INVITES",
"ACAPY_AUTO_ACCEPT_INVITES",
"ACAPY_AUTO_ACCEPT_REQUESTS",
"ACAPY_AUTO_PING_CONNECTION",
"ACAPY_AUTO_RESPOND_MESSAGES",
"ACAPY_AUTO_RESPOND_CREDENTIAL_OFFER",
"ACAPY_AUTO_RESPOND_CREDENTIAL_REQUEST",
"ACAPY_AUTO_VERIFY_PRESENTATION"
]
},
"type": "object"
},
{ "type": "null" }
],
"title": "Extra Settings",
"description": "Optional per-tenant settings to configure wallet behaviour for advanced users.",
"examples": [{ "ACAPY_AUTO_ACCEPT_INVITES": false }]
Expand Down
Loading
Loading