Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions endpoint_route_handler/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -114,31 +114,31 @@ You can see a real life example on shopfloor.app model.
Known issues / Roadmap
======================

- add api docs helpers
- add api docs helpers

- allow multiple HTTP methods on the same endpoint
- allow multiple HTTP methods on the same endpoint

- multiple values for route and methods
- multiple values for route and methods

keep the same in the ui for now, later own we can imagine a
multi-value selection or just add text field w/ proper validation
and cleanup
keep the same in the ui for now, later own we can imagine a
multi-value selection or just add text field w/ proper validation
and cleanup

remove the route field in the table of endpoint_route
remove the route field in the table of endpoint_route

support a comma separated list of routes maybe support comma
separated list of methods use only routing.routes for generating
the rule sort and freeze its values to update the endpoint hash
support a comma separated list of routes maybe support comma
separated list of methods use only routing.routes for generating
the rule sort and freeze its values to update the endpoint hash

catch dup route exception on the sync to detect duplicated routes
and use the endpoint_hash to retrieve the real record (note: we
could store more info in the routing information which will stay in
the map)
catch dup route exception on the sync to detect duplicated routes
and use the endpoint_hash to retrieve the real record (note: we
could store more info in the routing information which will stay
in the map)

for customizing the rule behavior the endpoint the hook is to
override the registry lookup
for customizing the rule behavior the endpoint the hook is to
override the registry lookup

make EndpointRule class overridable on the registry
make EndpointRule class overridable on the registry

NOTE in v16 we won't care anymore about odoo controller so the lookup of
the controller can be simplified to a basic py obj that holds the
Expand All @@ -165,8 +165,8 @@ Authors
Contributors
------------

- Simone Orsi <simone.orsi@camptocamp.com>
- Nguyen Minh Chien <chien@trobz.com>
- Simone Orsi <simone.orsi@camptocamp.com>
- Nguyen Minh Chien <chien@trobz.com>

Maintainers
-----------
Expand Down
4 changes: 2 additions & 2 deletions endpoint_route_handler/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -476,8 +476,8 @@ <h1><a class="toc-backref" href="#toc-entry-4">Known issues / Roadmap</a></h1>
the rule sort and freeze its values to update the endpoint hash</p>
<p>catch dup route exception on the sync to detect duplicated routes
and use the endpoint_hash to retrieve the real record (note: we
could store more info in the routing information which will stay in
the map)</p>
could store more info in the routing information which will stay
in the map)</p>
<p>for customizing the rule behavior the endpoint the hook is to
override the registry lookup</p>
<p>make EndpointRule class overridable on the registry</p>
Expand Down
56 changes: 28 additions & 28 deletions spp_alerts/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,27 +31,27 @@ domain-specific conditions.
Key Capabilities
~~~~~~~~~~~~~~~~

- Track alert lifecycle through state machine: active → acknowledged →
resolved
- Record resolution details including user, timestamp, and notes
- Classify alerts by type using ``spp.vocabulary`` codes (threshold,
expiry, deadline, manual, system)
- Prioritize alerts as low, medium, high, or critical
- Send mail notifications via ``mail.thread`` integration
- Auto-generate alert references in ALR-YYYY-NNNNN format
- Track alert lifecycle through state machine: active → acknowledged →
resolved
- Record resolution details including user, timestamp, and notes
- Classify alerts by type using ``spp.vocabulary`` codes (threshold,
expiry, deadline, manual, system)
- Prioritize alerts as low, medium, high, or critical
- Send mail notifications via ``mail.thread`` integration
- Auto-generate alert references in ALR-YYYY-NNNNN format

Key Models
~~~~~~~~~~

+--------------------+-------------------------------------------------+
| Model | Description |
+====================+=================================================+
| ``spp.alert`` | Alert instance with state tracking and |
| | resolution workflow |
+--------------------+-------------------------------------------------+
| ``spp.alert.rule`` | Rule configuration for monitoring criteria and |
| | thresholds |
+--------------------+-------------------------------------------------+
+--------------------+------------------------------------------------+
| Model | Description |
+====================+================================================+
| ``spp.alert`` | Alert instance with state tracking and |
| | resolution workflow |
+--------------------+------------------------------------------------+
| ``spp.alert.rule`` | Rule configuration for monitoring criteria and |
| | thresholds |
+--------------------+------------------------------------------------+

Configuration
~~~~~~~~~~~~~
Expand All @@ -67,9 +67,9 @@ After installing:
UI Location
~~~~~~~~~~~

- **Menu**: Settings > Technical > Alerts > Alerts
- **Configuration**: Settings > Technical > Alerts > Alert Rules
- **Form Tabs**: Details, Resolution (alerts); Thresholds (rules)
- **Menu**: Settings > Technical > Alerts > Alerts
- **Configuration**: Settings > Technical > Alerts > Alert Rules
- **Form Tabs**: Details, Resolution (alerts); Thresholds (rules)

Security
~~~~~~~~
Expand All @@ -85,14 +85,14 @@ Group Access
Extension Points
~~~~~~~~~~~~~~~~

- Inherit ``spp.alert`` to add domain-specific fields (e.g., stock
levels, document references)
- Inherit ``spp.alert.rule`` to add custom threshold or evaluation
criteria
- Override ``action_acknowledge()`` or ``action_resolve()`` to add
custom workflow steps
- Consumer modules implement alert checking via cron jobs or event
handlers that evaluate rules and call ``create()`` on ``spp.alert``
- Inherit ``spp.alert`` to add domain-specific fields (e.g., stock
levels, document references)
- Inherit ``spp.alert.rule`` to add custom threshold or evaluation
criteria
- Override ``action_acknowledge()`` or ``action_resolve()`` to add
custom workflow steps
- Consumer modules implement alert checking via cron jobs or event
handlers that evaluate rules and call ``create()`` on ``spp.alert``

Dependencies
~~~~~~~~~~~~
Expand Down
118 changes: 59 additions & 59 deletions spp_api_v2/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,68 +30,68 @@ all identifiers use namespace URIs for global interoperability.
Key Capabilities
----------------

- **OAuth 2.0 Authentication**: Client credentials flow with
scrypt-hashed secrets, scoped access
- **Consent-Based Access Control**: All reads require active consent,
filtered by organization type
- **External Identifiers Only**: Namespace URIs for lookups, vocabulary
IDs for coded values
- **Source Tracking**: Records data provenance per ADR-008
- **Extension Registry**: Domain modules register custom fields via
``spp.api.extension``
- **Batch Operations**: Create/update multiple registrants per request
- **OAuth 2.0 Authentication**: Client credentials flow with
scrypt-hashed secrets, scoped access
- **Consent-Based Access Control**: All reads require active consent,
filtered by organization type
- **External Identifiers Only**: Namespace URIs for lookups, vocabulary
IDs for coded values
- **Source Tracking**: Records data provenance per ADR-008
- **Extension Registry**: Domain modules register custom fields via
``spp.api.extension``
- **Batch Operations**: Create/update multiple registrants per request

Key Models
----------

+---------------------------+------------------------------------------+
| Model | Description |
+===========================+==========================================+
| ``spp.api.client`` | OAuth 2.0 credentials, organization |
| | verification |
+---------------------------+------------------------------------------+
| ``spp.api.client.scope`` | Resource/action permissions |
+---------------------------+------------------------------------------+
| ``spp.api.path`` | Endpoint configuration and filters |
+---------------------------+------------------------------------------+
| ``spp.api.path.filter`` | Field-level filter configurations |
+---------------------------+------------------------------------------+
| ``spp.api.filter.preset`` | Saved filter combinations |
+---------------------------+------------------------------------------+
| ``spp.api.extension`` | Domain field registry |
+---------------------------+------------------------------------------+
| ``spp.consent.scope`` | Resource types per consent |
+---------------------------+------------------------------------------+
+---------------------------+-----------------------------------------+
| Model | Description |
+===========================+=========================================+
| ``spp.api.client`` | OAuth 2.0 credentials, organization |
| | verification |
+---------------------------+-----------------------------------------+
| ``spp.api.client.scope`` | Resource/action permissions |
+---------------------------+-----------------------------------------+
| ``spp.api.path`` | Endpoint configuration and filters |
+---------------------------+-----------------------------------------+
| ``spp.api.path.filter`` | Field-level filter configurations |
+---------------------------+-----------------------------------------+
| ``spp.api.filter.preset`` | Saved filter combinations |
+---------------------------+-----------------------------------------+
| ``spp.api.extension`` | Domain field registry |
+---------------------------+-----------------------------------------+
| ``spp.consent.scope`` | Resource types per consent |
+---------------------------+-----------------------------------------+

UI Location
-----------

Navigate to **Registry > Configuration > API V2** for all API
configuration. Available submenus:

- **API Clients** - Manage OAuth credentials and organization
verification
- **API Extensions** - View registered custom field extensions
- **API Paths** - Configure available endpoints and static filters
- **API Filters** - Define queryable field filters per path
- **Filter Presets** - Create named filter combinations
- **API Clients** - Manage OAuth credentials and organization
verification
- **API Extensions** - View registered custom field extensions
- **API Paths** - Configure available endpoints and static filters
- **API Filters** - Define queryable field filters per path
- **Filter Presets** - Create named filter combinations

**API Client Form Tabs:**

- **Consent & Security** - Consent requirements, legal basis,
organization type verification
- **Scopes** - Resource/action permissions and program restrictions
- **Description** - Client documentation
- **Consent & Security** - Consent requirements, legal basis,
organization type verification
- **Scopes** - Resource/action permissions and program restrictions
- **Description** - Client documentation

**API Extension Form Tabs:**

- **Fields** - Registered custom fields from domain modules
- **JSON Schema** - Auto-generated schema for extension fields
- **Fields** - Registered custom fields from domain modules
- **JSON Schema** - Auto-generated schema for extension fields

**API Path Form Tabs:**

- **Filters** - Field-level filter configurations (inline editable)
- **Presets** - Saved filter combinations (inline editable)
- **Filters** - Field-level filter configurations (inline editable)
- **Presets** - Saved filter combinations (inline editable)

Configuration
-------------
Expand All @@ -110,27 +110,27 @@ API endpoints available at ``/api/v2/`` (token endpoint:
Security
--------

+--------------------------+-------------------------------------------+
| Group | Access |
+==========================+===========================================+
| ``group_api_v2_viewer`` | Read-only: all API configuration and |
| | consent |
+--------------------------+-------------------------------------------+
| ``group_api_v2_officer`` | Read/Write: all models (no |
| | create/delete), full CRUD on consent |
| | scopes |
+--------------------------+-------------------------------------------+
| ``group_api_v2_manager`` | Full CRUD: clients, scopes, paths, |
| | filters, presets, extensions; |
| | Read/Write/Create on consent (no delete) |
+--------------------------+-------------------------------------------+
+--------------------------+------------------------------------------+
| Group | Access |
+==========================+==========================================+
| ``group_api_v2_viewer`` | Read-only: all API configuration and |
| | consent |
+--------------------------+------------------------------------------+
| ``group_api_v2_officer`` | Read/Write: all models (no |
| | create/delete), full CRUD on consent |
| | scopes |
+--------------------------+------------------------------------------+
| ``group_api_v2_manager`` | Full CRUD: clients, scopes, paths, |
| | filters, presets, extensions; |
| | Read/Write/Create on consent (no delete) |
+--------------------------+------------------------------------------+

Extension Points
----------------

- Inherit ``spp.api.extension`` to register custom fields
- Override ``_get_fastapi_routers()`` in ``fastapi.endpoint`` for custom
endpoints
- Inherit ``spp.api.extension`` to register custom fields
- Override ``_get_fastapi_routers()`` in ``fastapi.endpoint`` for
custom endpoints

Dependencies
------------
Expand Down
8 changes: 4 additions & 4 deletions spp_api_v2/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -393,8 +393,8 @@ <h1>Key Capabilities</h1>
<h1>Key Models</h1>
<table border="1" class="docutils">
<colgroup>
<col width="39%" />
<col width="61%" />
<col width="40%" />
<col width="60%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Model</th>
Expand Down Expand Up @@ -504,8 +504,8 @@ <h1>Security</h1>
<h1>Extension Points</h1>
<ul class="simple">
<li>Inherit <tt class="docutils literal">spp.api.extension</tt> to register custom fields</li>
<li>Override <tt class="docutils literal">_get_fastapi_routers()</tt> in <tt class="docutils literal">fastapi.endpoint</tt> for custom
endpoints</li>
<li>Override <tt class="docutils literal">_get_fastapi_routers()</tt> in <tt class="docutils literal">fastapi.endpoint</tt> for
custom endpoints</li>
</ul>
</div>
<div class="section" id="dependencies">
Expand Down
Loading
Loading