Skip to content

feat(client): expose PrimitiveType and ContractElement.argumentType in the Python client #334

Description

The platform added `argumentType` on injector contract fields (`io.openaev.database.model.ContractElement`) and its backing `io.openaev.database.model.PrimitiveType` enum, merged in openaev#7124. It lets a contract field declare its chaining/semantic type (e.g. "username", "host") so downstream chaining can auto-link matching outputs to it.

The Python client (`pyoaev`) has no equivalent, so injectors built with this SDK cannot declare `argumentType` on their contract fields.

Proposed change

  • Mirror `io.openaev.database.model.PrimitiveType` label-for-label in `pyoaev/contracts/contract_config.py`.
  • Add `ContractElement.argumentType: Optional[PrimitiveType] = None`, matching the platform's field name so a contract pushed from this client needs no translation on the other end.
  • Backward compatible: the platform normalizes a missing/null/empty `argumentType` to `PrimitiveType.Text` on its own.

Activity

  1. changed the title [-]Expose PrimitiveType and ContractElement.argumentType in the Python client[/-] [+]feat(client): expose PrimitiveType and ContractElement.argumentType in the Python client[/+] on Aug 4, 2026
  2. added this to the 1. Now milestone on Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureType: new feature or capability (feat:).needs triageNeeds triage from the Filigran product team.solvedResolved (should be linked to the solving PR).

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions