Skip to content

Conversation

@SPEDERER
Copy link

Summary

  • Add FFI wrapper structs and functions for workitem queue CRUD operations in crates/clib/src/lib.rs
  • Add Python ctypes bindings for add_workitem_queue, update_workitem_queue, and delete_workitem_queue in python/openiap/main.py
  • Add tests for workitem queue operations in python/test.py

Changes

Rust FFI Layer (crates/clib/src/lib.rs)

  • WorkItemQueueWrapper struct with C-compatible layout
  • add_workitem_queue / add_workitem_queue_async - Create new workitem queues
  • update_workitem_queue / update_workitem_queue_async - Update existing workitem queues
  • delete_workitem_queue / delete_workitem_queue_async - Delete workitem queues with optional purge
  • Corresponding free_* functions for memory management

Python Bindings (python/openiap/main.py)

  • add_workitem_queue() - Create workitem queue with configurable options (maxretries, retrydelay, initialdelay, etc.)
  • update_workitem_queue() - Update workitem queue properties
  • delete_workitem_queue() - Delete workitem queue with optional purge flag

Tests (python/test.py)

  • Full CRUD cycle test: create → update → delete workitem queue

Test plan

  • Cargo build passes without warnings
  • Python wheel builds successfully
  • Tested locally against OpenIAP instance:
    • Create workitem queue
    • Update workitem queue
    • Delete workitem queue with purge

🤖 Generated with Claude Code

SPEDERER and others added 5 commits January 10, 2026 14:22
Add FFI bindings for workitem queue CRUD operations:
- add_workitem_queue (sync + async)
- update_workitem_queue (sync + async)
- delete_workitem_queue (sync + async)
- Corresponding free functions for memory management

Python bindings:
- add_workitem_queue()
- update_workitem_queue()
- delete_workitem_queue()

Includes test cases in python/test.py

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update AceWrapper to match proto Ace struct (id, deny, rights)
- Add acl and acl_len fields to WorkItemQueueWrapper
- Implement ACL conversion in wrap_workitem_queue and unwrap_workitem_queue
- Add proper memory cleanup for ACL arrays in free_workitem_queue_wrapper
- Update Python bindings with AceWrapper ctypes structure
- Add acl parameter to add_workitem_queue and update_workitem_queue methods
- Parse and return ACL in response dictionaries

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant