Skip to content

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

Description

@Seb-MIGUEL

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.

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