Saltar al contenido principal
Esta página no tiene versión en español, así que te la mostramos en inglés.

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 the odoo-await dependency are removed.

    Migration Guide​

    Version 4 only works with OpenSPP2 (Odoo 19). Keep using 3.x for OpenSPP v1 servers.

    Configuration: replace username, password and database with clientId and clientSecret from an OpenSPP API client. baseUrl is unchanged (the server root, without /api/v2/spp).

    Identifiers: v1 spp_id values (IND_…, GRP_…) and program ids (PROG_…) no longer exist. Use external identifiers as system|value, eg urn:openspp:vocab:id-type#national_id|PH-123. Program membership functions take a typed beneficiary, eg Group/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() or fn().

    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: limit is now count and order is now sort (individuals only); offset is unchanged. Passing limit or order logs a warning and has no effect. This applies to searchIndividual, searchGroup, searchServicePoint and getGroupMembers. Other options OpenSPP ignores also log a warning, eg sort on searchGroup.

    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 });

    getPrograms takes one options object with filters and paging together. Programs page with a cursor, so offset is not supported: use count, and for the next page pass as lastId the _lastId value in state.response.page.next. Passing offset, limit or order logs 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.next
    v3v4
    getIndividual(spp_id, cb)getIndividual(id, options)
    searchIndividual(domain, options, cb)searchIndividual(query, options): OpenSPP search parameters instead of Odoo domains
    createIndividual(data, cb)createIndividual(data): OpenSPP Individual resource, identifier required; returns the created record
    updateIndividual(spp_id, data)updateIndividual(id, data, options): partial update
    getGroup, searchGroup, createGroup, updateGroupsame changes as the individual functions
    getGroupMembers(spp_id, options, cb)getGroupMembers(groupId, options): returns Individual records; options.role filters by role
    addToGroup(group_id, individual_id, role)addToGroup(groupId, individualId, role, options): role is a code such as head and is no longer created if unknown. Throws 409 if the individual is already a member (v3 updated their role): use request('PATCH', …) to change a role
    removeFromGroup(group_id, individual_id)removeFromGroup(groupId, individualId, options): reason, endedDate
    getProgram(program_id, cb)getProgram(id)
    getPrograms(options, cb)getPrograms(options): filters and count/lastId paging in one object
    getEnrolledPrograms(spp_id, cb)getEnrolledPrograms(beneficiary): enrolled memberships only
    enroll(spp_id, program_id)enroll(beneficiary, programId, options)
    unenroll(spp_id, program_id)unenroll(beneficiary, programId, options): sets exited (was not_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 combine function from common
  • bf26881: export log function 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 http export from @openfn/language-common

    Migration Guide​

    The http export 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 uses http adaptor. 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 fnIf operation

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 string format

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