Changelog for the openspp adaptor
@openfn/language-openspp
4.0.0 - 29 September 2026
Major Changes
-
91103ea: Rebuild the adaptor on the OpenSPP2 REST API v2 (
/api/v2/spp) with OAuth2 client credentials. Odoo JSON-RPC and theodoo-awaitdependency are removed.Migration Guide
Version 4 only works with OpenSPP2 (Odoo 19). Keep using
3.xfor OpenSPP v1 servers.Configuration: replace
username,passwordanddatabasewithclientIdandclientSecretfrom an OpenSPP API client.baseUrlis unchanged (the server root, without/api/v2/spp).Identifiers: v1
spp_idvalues (IND_…,GRP_…) and program ids (PROG_…) no longer exist. Use external identifiers assystem|value, egurn:openspp:vocab:id-type#national_id|PH-123. Program membership functions take a typed beneficiary, egGroup/urn:…|HH-1.Errors: operations now throw when OpenSPP returns an error or a record isn't found. In v3 errors were logged and the job carried on.
Callbacks: operations no longer take a callback. Use
.then()orfn().Search queries: search functions take an object of OpenSPP search parameters instead of an Odoo domain array, and throw if given an array.
Paging options:
limitis nowcountandorderis nowsort(individuals only);offsetis unchanged. Passinglimitororderlogs a warning and has no effect. This applies tosearchIndividual,searchGroup,searchServicePointandgetGroupMembers. Other options OpenSPP ignores also log a warning, egsortonsearchGroup.Before (v3):
searchIndividual([['name', 'ilike', 'Santos']], {limit: 50,offset: 100,order: 'birthdate desc',});getGroupMembers('GRP_Q4VGGZPF', { limit: 10 });After (v4):
searchIndividual({ name: 'Santos' },{ count: 50, offset: 100, sort: '-birthDate' });getGroupMembers('urn:openspp:vocab:id-type#household_id|HH-1', { count: 10 });getProgramstakes oneoptionsobject with filters and paging together. Programs page with a cursor, sooffsetis not supported: usecount, and for the next page pass aslastIdthe_lastIdvalue instate.response.page.next. Passingoffset,limitororderlogs a warning and has no effect.Before (v3):
getPrograms({ limit: 10, offset: 10 });After (v4):
getPrograms({ targetType: 'group', count: 10 });getPrograms({ count: 10, lastId: 42 }); // the _lastId value from state.response.page.nextv3 v4 getIndividual(spp_id, cb)getIndividual(id, options)searchIndividual(domain, options, cb)searchIndividual(query, options): OpenSPP search parameters instead of Odoo domainscreateIndividual(data, cb)createIndividual(data): OpenSPP Individual resource,identifierrequired; returns the created recordupdateIndividual(spp_id, data)updateIndividual(id, data, options): partial updategetGroup,searchGroup,createGroup,updateGroupsame changes as the individual functions getGroupMembers(spp_id, options, cb)getGroupMembers(groupId, options): returns Individual records;options.rolefilters by roleaddToGroup(group_id, individual_id, role)addToGroup(groupId, individualId, role, options):roleis a code such asheadand is no longer created if unknown. Throws 409 if the individual is already a member (v3 updated their role): userequest('PATCH', …)to change a roleremoveFromGroup(group_id, individual_id)removeFromGroup(groupId, individualId, options):reason,endedDategetProgram(program_id, cb)getProgram(id)getPrograms(options, cb)getPrograms(options): filters andcount/lastIdpaging in one objectgetEnrolledPrograms(spp_id, cb)getEnrolledPrograms(beneficiary): enrolled memberships onlyenroll(spp_id, program_id)enroll(beneficiary, programId, options)unenroll(spp_id, program_id)unenroll(beneficiary, programId, options): setsexited(wasnot_eligible)getServicePoint(spp_id, cb)getServicePoint(name): returns an object (was an array)searchServicePoint(domain, options, cb)searchServicePoint(query, options)getArea,searchArearemoved: OpenSPP2 has no Area resource. Use request('GET', '/gis/ogc/collections/…')with the GIS module
3.1.3 - 03 September 2026
Patch Changes
- fd1b2be: Security update
- Updated dependencies [654026d]
- Updated dependencies [fd1b2be]
- @openfn/language-common@3.3.5
3.1.2 - 30 June 2026
Patch Changes
- c5f8728: Update undici dependency
- Updated dependencies [c5f8728]
- @openfn/language-common@3.3.4
3.1.1 - 27 May 2026
Patch Changes
- Updated dependencies [5276a86]
- @openfn/language-common@3.3.3
3.1.0 - 21 May 2026
Minor Changes
- 71115af: export
combinefunction from common - bf26881: export
logfunction from common
3.0.11 - 20 May 2026
Patch Changes
- Updated dependencies [9d1e1ae]
- @openfn/language-common@3.3.2
3.0.10 - 07 April 2026
Patch Changes
- add9748: Update dependencies (undici)
- Updated dependencies [add9748]
- Updated dependencies [a9b7597]
- @openfn/language-common@3.3.1
3.0.9 - 30 March 2026
Patch Changes
- Updated dependencies [295655f]
- @openfn/language-common@3.3.0
3.0.8 - 24 February 2026
Patch Changes
- 856f85c: Security updates
- Updated dependencies [856f85c]
- @openfn/language-common@3.2.3
3.0.7 - 09 February 2026
Patch Changes
- Updated dependencies [8ad6b98]
- Updated dependencies [8ad6b98]
- @openfn/language-common@3.2.2
3.0.6 - 28 November 2025
Patch Changes
- Updated dependencies [cfc66df]
- @openfn/language-common@3.2.1
3.0.5 - 12 November 2025
Patch Changes
- Updated dependencies [4d7a833]
- @openfn/language-common@3.2.0
3.0.4 - 04 November 2025
Patch Changes
- Updated dependencies
- @openfn/language-common@3.1.2
3.0.3 - 16 October 2025
Patch Changes
- Updated dependencies [408a3a2]
- @openfn/language-common@3.1.1
3.0.2 - 18 September 2025
Patch Changes
- Updated dependencies [e2bc436]
- @openfn/language-common@3.1.0
3.0.1 - 01 September 2025
Patch Changes
- Updated dependencies [1d60531]
- @openfn/language-common@3.0.3
3.0.0 - 11 August 2025
Major Changes
-
a5cea4e: removed
httpexport from@openfn/language-commonMigration Guide
The
httpexport has been removed from@openfn/language-common. If you were using it, you should remove it from your code and create a new step that useshttpadaptor. See example below.Before
Step 1: Fetch and post data using postgresql adaptor
sql('select * from foo');http.post('/example', { body: $.data }),Now
Step 1: Fetch data using postgresql adaptor
sql('select * from foo');Step 2: Post data using http adaptor
post('/example', { body: $.data });
2.0.16 - 14 July 2025
Patch Changes
- Updated dependencies [9b5a4f8]
- @openfn/language-common@3.0.2
2.0.15 - 10 July 2025
Patch Changes
- Updated dependencies [cf9c09f]
- @openfn/language-common@3.0.1
2.0.14 - 10 July 2025
Patch Changes
- Updated dependencies [ea85695]
- Updated dependencies [3fce58f]
- Updated dependencies [19f2d7e]
- Updated dependencies [f26bd2b]
- Updated dependencies [19f2d7e]
- @openfn/language-common@3.0.0
2.0.13 - 20 June 2025
Patch Changes
- Updated dependencies [28c2e8b]
- @openfn/language-common@2.5.0
2.0.12 - 22 April 2025
Patch Changes
- Updated dependencies [99e4b48]
- Updated dependencies [13bf08f]
- @openfn/language-common@2.4.0
2.0.11 - 16 April 2025
Patch Changes
- Updated dependencies [b089c56]
- @openfn/language-common@2.3.3
2.0.10 - 11 April 2025
Patch Changes
- Updated dependencies [d7105c0]
- @openfn/language-common@2.3.2
2.0.9 - 14 March 2025
Patch Changes
- Updated dependencies [23ccb01]
- @openfn/language-common@2.3.1
2.0.8 - 16 January 2025
Patch Changes
- Updated dependencies [b3d7f59]
- Updated dependencies [2d709ff]
- Updated dependencies [41e8cc3]
- @openfn/language-common@2.3.0
2.0.7 - 16 January 2025
Patch Changes
- Updated dependencies [6dffdbd]
- @openfn/language-common@2.2.1
2.0.6 - 09 January 2025
Patch Changes
- Updated dependencies [a47d8d5]
- Updated dependencies [9240428]
- @openfn/language-common@2.2.0
2.0.5 - 28 October 2024
Patch Changes
- Updated docs for each()
- Updated dependencies
- @openfn/language-common@2.1.1
2.0.4 - 18 October 2024
Patch Changes
- Updated dependencies [03a1a74]
- @openfn/language-common@2.1.0
2.0.3 - 15 October 2024
Patch Changes
- Fixed security vulnerability in jsonpath-plus [33973a2]
- @openfn/language-common@2.0.3
2.0.2 - 24 September 2024
Patch Changes
- Updated dependencies [77a690f]
- @openfn/language-common@2.0.2
2.0.1 - 16 August 2024
Patch Changes
- 8146c23: Fix typings in package.json
- Updated dependencies [8146c23]
- @openfn/language-common@2.0.1
2.0.0 - 01 August 2024
Major Changes
- Export new common http helpers (http namespace)
1.3.1
Patch Changes
- Updated dependencies [4fe527c]
- @openfn/language-common@2.0.0
1.3.0 - 13 June 2024
Minor Changes
- 73433c20: Add
fnIfoperation
Patch Changes
- Updated dependencies [106ecf6d]
- @openfn/language-common@1.14.0
1.2.1 - 08 May 2024
Patch Changes
- Security updates (lodash,undici)
- Updated dependencies
- @openfn/language-common@1.13.2
1.2.0 - 30 November 2023
Changes
- 05defd2: add new functions, correcting docstring and add more examples
- correcting docstring input parameters type
- changing getServicePoint() from get by name into get by unique id
- add more examples in docstring
- getArea(): get existing area by id
- searchArea(): search existing area by domain
- searchServicePoint(): search existing service point by domain
1.1.1 - 17 November 2023
Patch Changes
- 48b4e97: update
spp date time now stringformat
1.1.0 - 17 November 2023
- Create OpenSPP adaptor with these functions:
- getGroup(): get existing group information
- getIndividual(): get existing individual information
- searchGroup(): search existing group by domain
- searchIndividual(): search existing individual by domain
- getGroupMembers(): get members from group
- getServicePoint(): get service points by name
- getPrograms(): get single program
- getPrograms(): get program list
- getEnrolledPrograms(): get list of enrolled program for each beneficiary
- enroll(): enroll beneficiary to a program
- unenroll(): unenroll beneficiary from program
- createIndividual(): create new individual
- updateIndividual(): update existing individual
- createGroup(): create new group
- updateGroup(): update existing group
- addToGroup(): add individual to group with(out) role
- removeFromGroup(): end membership of individual to group