Skip to content

🔵 LOW: update_credential вызывает KeyError при отсутствующем metadata #505

Description

@chelslava

Описание

Метод update_credential принимает metadata: dict | None = None и делает self._credentials[name]["metadata"].update(metadata). Если у существующего credential нет ключа "metadata", будет KeyError.

Где

packages/libraries/src/rpaforge_libraries/Credentials/library.py

def update_credential(
    self, name, username=None, password=None, metadata=None
):
    ...
    if metadata is not None:
        self._credentials[name]["metadata"].update(metadata)
    # Если "metadata" нет в словаре -> KeyError

Воспроизведение

  1. Создать credential через store_credential с metadata=None
  2. Вызвать update_credential с metadata={"key": "val"}
  3. Получить KeyError: 'metadata'

Фикс

if metadata is not None:
    existing = self._credentials[name].setdefault("metadata", {})
    existing.update(metadata)

Severity

🔵 LOW — Редкий edge case, но возможная потеря данных.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions