Common Pitfalls
Actor vs ActorInterface
Use
ActorInterfacein applications.Actoris internal and may change.Import from
actingweb.interface; avoid reaching into core modules directly.
Hooks: returning None
Property hooks:
Noneduring GET hides the value;Noneduring PUT/POST/DELETE denies the change.Wildcard hooks (“*”) run after specific-name hooks; be explicit with path checks.
Properties vs Property Lists
Regular properties: small key/value data; simple updates.
Property lists (
actor.property_lists.<name>): ordered collections that can grow beyond DynamoDB size limits; use for notes, events, logs.
Base paths in templates
Never use relative paths like
../www. Use provided variables: -actor_rootfor non‑www routes (e.g.,{{ actor_root }}/properties) -actor_wwwfor web UI routes (e.g.,{{ actor_www }}/properties)
OAuth providers
GitHub: set
User-AgentandAccept: application/json; no refresh tokens.Email privacy: GitHub may not expose email; code handles fallbacks, but expect missing emails in tests.
DynamoDB local vs AWS
Use DynamoDB Local for development; set local AWS env vars (no real credentials needed).
In AWS, create tables and least‑privilege IAM policies before load. Monitor item size limits and indices.
Devtest endpoints
Dev only. Enable with
with_devtest(True). Hidden from API docs; see CONTRIBUTING for details.