diff --git a/plugins/docker/Dockerfile b/plugins/docker/Dockerfile index 62ed7c132..3bdb62a46 100644 --- a/plugins/docker/Dockerfile +++ b/plugins/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/openwallet-foundation/acapy-agent:py3.13-1.5.0rc0 AS base +FROM ghcr.io/openwallet-foundation/acapy-agent:py3.13-1.5.0 AS base # Install and Configure Poetry USER root @@ -24,7 +24,7 @@ RUN poetry install --only main RUN ln -s $(poetry env info -p)/lib/python3.6/site-packages site-packages -FROM ghcr.io/openwallet-foundation/acapy-agent:py3.13-1.5.0rc0 +FROM ghcr.io/openwallet-foundation/acapy-agent:py3.13-1.5.0 COPY --from=base --chown=aries:aries /home/aries/.venv /home/aries/.venv ENV PATH="/home/aries/.venv/bin:$PATH" diff --git a/plugins/traction_innkeeper/poetry.lock b/plugins/traction_innkeeper/poetry.lock index 6e462a2aa..265a2ea20 100644 --- a/plugins/traction_innkeeper/poetry.lock +++ b/plugins/traction_innkeeper/poetry.lock @@ -2,14 +2,14 @@ [[package]] name = "acapy-agent" -version = "1.5.0rc0" +version = "1.5.0" description = "(ACA-Py) A Cloud Agent Python is a foundation for building decentralized identity applications and services running in non-mobile environments. " optional = false python-versions = "<4.0,>=3.13" groups = ["main"] files = [ - {file = "acapy_agent-1.5.0rc0-py3-none-any.whl", hash = "sha256:a6b8fcd822f77153876042fb4e771fb118bd9a2208efd5d4fd5c96f6e49583a0"}, - {file = "acapy_agent-1.5.0rc0.tar.gz", hash = "sha256:d8bffeb6ccae40879b59636478712a69e8ca1e7e6d5e8bd5f6102865442b7765"}, + {file = "acapy_agent-1.5.0-py3-none-any.whl", hash = "sha256:2ec2c1ead6f826ac04df5daed9c4d447276ff3d76d994bb8cc9f653abbd0016c"}, + {file = "acapy_agent-1.5.0.tar.gz", hash = "sha256:271caa0679ede758b89652dd1de45803b10c44d67ac2fd14bef208d50f08e0ec"}, ] [package.dependencies] @@ -33,7 +33,7 @@ Markdown = ">=3.7,<3.11" markupsafe = ">=3.0.2,<4.0.0" marshmallow = ">=3.26.1,<3.27.0" nest_asyncio = ">=1.6.0,<1.7.0" -packaging = ">=24.2,<26.0" +packaging = ">=24.2,<27.0" portalocker = ">=3.1.1,<4.0.0" prompt_toolkit = ">=3.0,<3.1" psycopg = {version = ">=3.2.1,<4.0.0", extras = ["binary", "pool"]} @@ -49,7 +49,7 @@ requests = ">=2.32.3,<2.33.0" rlp = ">=4.1.0,<5.0.0" sd-jwt = ">=0.10.3,<0.11.0" unflatten = ">=0.2,<0.3" -uuid_utils = ">=0.10,<0.13" +uuid_utils = ">=0.10,<0.15" [package.extras] bbs = ["ursa-bbs-signatures (>=1.0.1,<1.1.0)"] @@ -3482,4 +3482,4 @@ propcache = ">=0.2.1" [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "024aac753f331a472168a6728498439ac628acfbd558f57aba9fd64ae1a58551" +content-hash = "4f2bccfc28e45c8073b69420c673d04ff4edd050587530d0d048a18ff89f4302" diff --git a/plugins/traction_innkeeper/pyproject.toml b/plugins/traction_innkeeper/pyproject.toml index 1160c33f7..2b133315f 100644 --- a/plugins/traction_innkeeper/pyproject.toml +++ b/plugins/traction_innkeeper/pyproject.toml @@ -14,7 +14,7 @@ packages = [{include = "traction_innkeeper"}] [tool.poetry.dependencies] python = "^3.13" -acapy-agent = { version = "1.5.0rc0" } +acapy-agent = { version = "1.5.0" } python-dateutil = "^2.9.0" bcrypt = "^4.2.1" mergedeep = "^1.3.4" diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py index 7ef28a2cf..b2103149c 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py @@ -19,15 +19,10 @@ EVENT_LISTENER_PATTERN as INDY_SCHEMA_EVENT_PATTERN, ) -# Try to import ANONCREDS_SCHEMA_FINISHED_EVENT, but handle the case where it doesn't exist -# (e.g., if using an older version of acapy that doesn't have this event yet) -try: - from acapy_agent.anoncreds.events import ( - SCHEMA_FINISHED_EVENT as ANONCREDS_SCHEMA_FINISHED_EVENT, - ) -except (ImportError, AttributeError): - # If the event doesn't exist, we'll only subscribe to Indy events - ANONCREDS_SCHEMA_FINISHED_EVENT = None +# Import the AnonCreds schema finished event +from acapy_agent.anoncreds.events import ( + SCHEMA_FINISHED_EVENT as ANONCREDS_SCHEMA_FINISHED_EVENT, +) LOGGER = logging.getLogger(__name__) @@ -274,13 +269,12 @@ async def sync_created(self, profile: Profile): def subscribe(bus: EventBus): # Subscribe to Indy schema events bus.subscribe(INDY_SCHEMA_EVENT_PATTERN, schemas_event_handler) - # Subscribe to AnonCreds schema events if available - # Explicitly compile as literal pattern to ensure it's a Pattern object, not a string - if ANONCREDS_SCHEMA_FINISHED_EVENT: - bus.subscribe( - re.compile(re.escape(ANONCREDS_SCHEMA_FINISHED_EVENT)), - schemas_event_handler, - ) + # Subscribe to AnonCreds schema finished events + # Use exact match pattern - escape special chars and anchor to start/end + bus.subscribe( + re.compile(f"^{re.escape(ANONCREDS_SCHEMA_FINISHED_EVENT)}$"), + schemas_event_handler, + ) def _normalize_schema_event_payload(event: Event) -> dict: @@ -292,10 +286,7 @@ def _normalize_schema_event_payload(event: Event) -> dict: payload = event.payload # Check event topic to determine if it's AnonCreds or Indy - if ( - ANONCREDS_SCHEMA_FINISHED_EVENT - and event.topic == ANONCREDS_SCHEMA_FINISHED_EVENT - ): + if event.topic == ANONCREDS_SCHEMA_FINISHED_EVENT: # AnonCreds event: SchemaFinishedPayload NamedTuple if hasattr(payload, "schema_id"): return { diff --git a/services/tenant-ui/frontend/src/components/connections/Connections.vue b/services/tenant-ui/frontend/src/components/connections/Connections.vue index b43bba544..949bd883a 100644 --- a/services/tenant-ui/frontend/src/components/connections/Connections.vue +++ b/services/tenant-ui/frontend/src/components/connections/Connections.vue @@ -42,13 +42,13 @@