SKYLib•NET Release Notes

Page updated 2023-12-07

All the relevant improvements and fixes to SKYLib•NET

Please refer below for details of all of the major SKYLib•NET releases.

Latest version is 3.6.4 released 2023-12-07.

NOTE: For brevity, changes to SKYLib•NET that pertain solely to Blackbaud SKY API changes have not been included. Details of these chnges are available from the Blackbaud SKY API Changelog.

If you have any questions after reading through this release information, don't hesitate to contact us.

Version 3.6.4 (Released 2023-12-07)

This is a maintenance release.

  1. Updated the School API to account for a Blackbaud breaking change to the UserExtended endpoint.

Version 3.6.2 (Released 2022-12-30)

This is a minor improvement release.

  1. Upgraded the oAuth2 authorization state string to improve protection against cross-site request forgery (CSRF) attacks.
  2. Updated the 8 Blackbaud CRM APIs and the Constituent, List, One Roster and School APIs.

Version 3.6.1 (Released 2022-11-07)

This is a major improvement release.

  1. Added support for 9 Altru APIs and 8 Blackbaud CRM APIs.
  2. Revamped API Test Connection code to reduce response bulk/improve speed.
  3. Fixed issues with nullable parameters not being honoured.
  4. Updated the Event, One Roster and School APIs.

Version 3.5.2 (Released 2022-08-29)

This is a maintenance and minor improvement release.

  1. Corrected some layout scaling issues with the authorization form.
  2. Removed redundant references and code.
  3. Upgraded some internal library code.
  4. Updated all APIs using a new code generator (version 5.4.0), including updates to the One Roster and School APIs.

Version 3.5.1 (Released 2022-08-08)

This is a maintenance release with important changes to authorization flow.

  1. Changed the authorization flow to use the user's external browser rather than the internal one based on Internet Explorer, which has been deprecated and is no longer supported by Blackbaud.
  2. Fixed an issue where Test Connection exceptions were not being correctly reported.
  3. Added support for APIs which do not provide a suitable endpoint proxy call for a test connection, eg the Gift V2 API.
  4. Updated the Constituent, Event, General Ledger and Payments APIs.
  5. Added beta/preview support for the Gift V2 and One Roster APIs.

Version 3.4.3 (Released 2022-05-20)

This is a maintenance and minor improvement release.

  1. Changed the UserAgent call request string to "SKYLib.NET".
  2. Fixed an issue where the GiftBatch API connection test was retrieving too much data.
  3. Updated the NXT Data Integration and School APIs.

Version 3.4.2 (Released 2022-05-03)

This is a maintenance and improvement release.

  1. Fixed an issue with the API Test Connection exception handler to better manage different response exception types.
  2. Fixed an issue where logs purge was not purging Inner Error entries.
  3. Fixed an issue where the authorization form displayed "Internet Explorer is no longer supported" header message.
  4. Changed POST call document type header from application/json to application/x-www-form-urlencoded, in compliance with Blackbaud specification.
  5. Updated the Accounts Payable, Constituent, General Ledger, Gift, NXT Data Integration, Payments, School, Statistical Unit and Webhook APIs.
  6. Breaking changes to Constituent API where all collection types have their type names changed from ApiCollectionTypeName changed to ApiCollectionOfTypeName.

Version 3.4.1 (Released 2022-01-31)

This is a maintenance release with BREAKING CHANGES to the minimum-supported .NET version.

  1. Updated the minimum-supported .NET version from 4.5.2 to 4.6.2 due to Microsoft ceasing support for 4.5.2 in April, 2022.
  2. Updated the Gift, School and Treasury APIs.

Version 3.3.20 (Released 2021-10-15)

This is a bug fix release.

  1. Fixed an issue where the return type defined for the School API List Single endpoint schema was incorrect.

Version 3.3.19 (Released 2021-10-10)

This is a minor improvement release.

  1. Migrated demo project solution from Visual Studio 2013 to 2019.
  2. Upgraded some internal third-party libraries.
  3. Updated the Constituent, Gift, Gift Batch and School APIs.

Version 3.3.18 (Released 2021-07-16)

This is a minor improvement release with BREAKING CHANGES to the Webhook API.

  1. Added connection time to API Test Connection properties.
  2. Updated the Constituent, Event, NXT Data Integration, Payments and Webhook APIs. (NXT Data Integration and Webhook APIs moved from beta to general release/production.)

Version 3.3.17 (Released 2021-05-11)

This is a minor improvement release with BREAKING CHANGES to the Constituent and Event APIs.

  1. TLS 1.1 has been deprecated in line with Blackbaud's advertised cessation of support (and general industry best-practice).
  2. Blackbaud has made some breaking changes to the Constituent API where the sort parameter now expects type List<String> instead of the previous String type.
  3. The Event API namespace has been changed from Event to Events to mitigate namespace/type conflicts. (Previous versions changed the Event type to ModelEvent.)
  4. Updated the Event, Fundraising, Gift, List, Payments, School and Webhook APIs.

Version 3.3.16 (Released 2020-11-24)

This is a minor improvement release with BREAKING CHANGES to the Constituent API.

  1. Blackbaud has made two breaking changes to the Constituent API definition:
    • The ListConstituents endpoint now returns objects of type ConstituentListItem (previously ConstituentRead) and
    • The ListConstituentAddressesSingleConstituent endpoint now returns objects of type AddressReadExtended (previously AddressRead).
  2. All method arguments have been changed to camelCase (from the previous PascalCase) to conform with Microsoft naming convention. This will only affect consuming code which explicitly names method arguments and only for consuming C# code (Visual Basic is case-insensitive).
  3. Updated the Constituent, Gift, Opportunity and Payments APIs.

NOTE: We have expressed our concerns about the (on-going) API definition breaking changes to Blackbaud but, unfortunately, they have been unsympathetic to date.

Version 3.3.15 (Released 2020-11-05)

This is a minor improvement and maintenance release.

  1. Fixed a manual authorization issue.
  2. Improved Test Connection exception handling, logging and reporting.
  3. Updated the Constituent API.

Version 3.3.14 (Released 2020-10-27)

This is a minor improvement release.

  1. Fixed some issues around Google/2-Step Verification authorization.
  2. Fixed a Test Connection issue.
  3. Improved outage handling.

Version 3.3.13 (Released 2020-10-04)

This is a minor improvement release.

  1. Added beta/preview support for the NXT Data Integration API.
  2. Fixed an issue where quota exhaustion response – 403 Forbidden – was conflated with a general 403 response.
  3. Updated the Event, Payments, School and Webhook APIs. (Event API moved from beta to general release/production.)

Version 3.3.11 (Released 2020-08-03)

This is a minor improvement release with BREAKING CHANGES to the Event API.

  1. Added beta/preview support for the Gift Batch API.
  2. Updated the Accounts Payable, Church Volunteer, Event, General Ledger and Gift APIs.

Version 3.3.10 (Released 2020-07-13)

This is a minor improvement release.

  1. Added beta/preview support for the Church Volunteer API.
  2. Updated the Constituent, Event, Gift, Payments, School and Webhook APIs.

Version 3.3.9 (Released 2020-05-24)

This is a minor improvement release.

  1. Added beta/preview support for the Webhook API.
  2. Updated the Event API.

Version 3.3.7 (Released 2020-04-20)

This is a minor improvement release with BREAKING CHANGES to the Payments and School APIs.

  1. Added beta/preview support for the Event API.
  2. Adds support for the new authorization user identification fields Email, Family Name and Given Name.
  3. Updated the General Ledger, Gift, Payments and School APIs.

Version 3.3.6 (Released 2020-02-03)

This is a minor improvement release.

  1. Upgraded code signing to use a Sectigo certificate for increased security confidence.
  2. Added demo project support for the Education Management/School API.
  3. Updated the General Ledger and Treasury APIs.

Version 3.3.4 (Released 2019-11-25)

This is a minor improvement release.

  1. Removed retry on 404 Not found HTTP errors which are generally a result of insufficient rights or missing records.
  2. Added beta/preview support for the List API.
  3. Updated the Accounts Payable, Constituent, General Ledger and Payments APIs.

Version 3.3.2 (Released 2019-10-17)

This is a bug fix release.

  1. Fixed an issue where token expiries were not managed correctly.

Version 3.3.1 (Released 2019-09-29)

This is a minor improvement release.

  1. Fixed an issue where custom authorization forms displayed incorrectly.
  2. Changed Refresh Token expiry from a fixed value to the value returned in the authorization response (currently 365 days).
  3. Updated the Accounts Payable, General Ledger, Gift, Payments, School, Statistical Unit and Treasury APIs.

Version 3.3.0 (Released 2019-08-08)

This is a major improvement release with BREAKING CHANGES.

  1. Removed TenantId and TenantName properties from authorization object due to Blackbaud breaking change.
  2. Changed product selection verification procedures due to Blackbaud's removal of TenantId and TenantName authorization fields.
  3. Limited call retry time during API connection tests.
  4. Fixed some minor bugs and tightened up internal code to improve performance.

Version 3.2.3 (Released 2019-04-21)

This is a minor improvement release.

  1. Added in-memory logging for debugging, monitoring, etc.
  2. Added 404 Not found HTTP errors to outage handler.
  3. Added call quota exceeded handling.
  4. Added re-authorization for extended outages.
  5. Added customizable error handling options for call quota exceeded and server outage.
  6. Added beta/preview support for the Payments API.
  7. Updated the Accounts Payable, Fundraising, Gift and Opportunity APIs.

Version 3.2.2 (Released 2019-04-03)

This is a minor improvement release.

  1. Fixed a minor licensing issue.
  2. Updated the Gift API.

Version 3.2.1 (Released 2019-03-31)

This is a minor improvement release with BREAKING CHANGES.

  1. Added customizable call retry support to improve stability during SKY API micro-outages and maintenance.
  2. BREAKING CHANGE: Changed licensing linked entity to Client/Appilicated ID. Linked Domain is no longer required.
  3. Updated the Accounts Payable, General Ledger, Treasury and School (Beta) APIs.

Version 3.1.7 (Released 2019-02-06)

This is a minor improvement release.

  1. Fixed an issue with the demonstration projects where an incorrect API group could be in use.
  2. Updated the Accounts Payable API.

Version 3.1.5 (Released 2019-02-05)

This is a minor improvement release.

  1. Added support for the now-public School API (Beta).
  2. Performed some minor internal code improvements.
  3. Updated the Communication Preference API.

Version 3.1.4 (Released 2019-01-25)

This is a minor improvement release.

  1. Reinstated some authorization properties mistakenly removed in 3.1.3.
  2. Performed some internal code modifications/improvements.
  3. Updated the General Ledger API.

Version 3.1.3 (Released 2019-01-21)

This is a minor improvement release.

  1. Added restricted beta/preview support for the School (aka "ON" Products) and Statistical Unit APIs.
  2. Added a TestConnectionMsg property to provide details of API test connection results.
  3. Performed some minor internal code modifications/improvements.

Version 3.1.2 (Released 2019-01-14)

This is a minor improvement release.

  1. Added Lisensis Lite application licensing.
  2. Added licensing example code to demo projects.
  3. Added display of license registration code to demo projects.
  4. Updated demonstration code to version 1.0.9 to reflect licensing changes.
  5. Updated the Accounts Payable and Constituent APIs.

Version 3.1.1 (Released 2018-11-22)

This is a major improvement release.

  1. Removed code expiry.
  2. Added licensing support.
  3. Added free/unlicensed call rate-limited mode.
  4. Updated demonstration code to version 1.0.8 to reflect library changes.

Version 2.2.2 (Released 2018-10-04)

This is a minor maintenance release.

  1. Fixed a minor issue where API authorization may not be refreshed.
  2. Removed duplicate authorization initialization pass.

Version 2.2.1 (Released 2018-09-30)

This is a major improvement release with BREAKING CHANGES.

  1. Added support for Communication Preference (Beta) API.
  2. Added Adaptive Rate-Limit Management (ARLM) to automatically detect rate limit and tune call rate accordingly.
  3. Fixed a minor issue where configuration version folder was created in error.
  4. Fixed an issue where configuration file path was not created.
  5. Fixed an innocuous unhandled XmlSerializer Not Found error.
  6. BREAKING CHANGE: Changed targeted .NET version from 4.5 to 4.5.2 as .NET 4.5 is end-of-support and 4.5.2 is the earliest supported .NET version.
  7. Updated RestSharpSigned version from 105.1.0 to 105.2.3.
  8. Updated Newtonsoft.Json version from 10.3.0 to 11.0.2.
  9. Updated demonstration code to version 1.0.7 to reflect library changes.

Version 2.1.2 (Released 2018-08-19)

This is a minor improvement release.

  1. Changed default configuration file name to more standard "SKYLib.config".
  2. Changed default configuration file path to unversioned parent of Application.CommonAppDataPath, eg "C:\ProgramData\MyCompany\MyApplication\" to fix issue where re-authorization is required when an application is reversioned because the path to the config file has changed.
  3. Added MigrateConfig utility code to update any default config files in use.
  4. Added TestConnection endpoints to all APIs which currently make non-dedicated test calls to the relevant API.
  5. Fixed an assembly signing issue where assembly was not strong named.

Version 2.1.1 (Released 2018-08-06)

This is a major improvement release with BREAKING CHANGES.

  1. Fixed an issue where changes to Client ID or Client Secret would not trigger re-authorization or re-creation of Basic Auth credential.
  2. Changed ConfigFilePath property to writable for user customization of config path and name.
  3. Added support for multiple authorization objects, ie for each authorization "group" (FE NXT, RE NXT, etc).
  4. BREAKING CHANGE: Added individual FeAuthorization and ReAuthorization properties.
  5. Deprecated Product and Authorization properties as no longer required.
  6. Restructured internal code to use generics to support above changes.
  7. Updated demonstration code to version 1.0.6 to reflect library changes.

Version 2.0.3 (Released 2018-07-22)

This is a minor improvement release.

  1. Changed all public classes to "sealed".
  2. Obfuscated code.
  3. Updated demonstration code to version 1.0.5 to reflect library changes.

Version 2.0.1 (Released 2018-06-25)

This is a major improvement release with BREAKING CHANGES.

  1. BREAKING CHANGE: Adoption of Blackbaud universal changes to API method structure, eg GiftGet() -> GetGift().
  2. Added placeholder code for forthcoming Payments and School APIs.
  3. Updated demonstration code to version 1.0.4 to reflect library changes.

Version 1.0.7 (Released 2018-06-03)

This is a maintenance and minor improvement release.

  1. Further internal adaption to Blackbaud OpenAPI changes.

Version 1.0.6 (Released 2018-05-20)

This is a maintenance release.

  1. Fixed an issue caused by incorrect Blackbaud OpenAPI definition.

Version 1.0.5 (Released 2018-04-01)

This is a maintenance release.

  1. Modified API Configuration constructors to use explicit parameters.
  2. Fixed an issue caused by incorrect Blackbaud OpenAPI definition.
  3. Updated demonstration code to version 1.0.3 to reflect library changes.

Version 1.0.2 (Released 2018-02-17)

This is a minor improvement release.

  1. Modified internal exception handling.
  2. Added version checking utility.
  3. Reduced default web request timeout from 100s to 5s.
  4. Enhanced web request retry logic.
  5. Added AppInfo and build timestamp.
  6. Changed version expiry unit from months to days.
  7. Added UserId as field now included in Refresh Token response.
  8. Removed temporary TenantName handling as field now included in Refresh Token response.

Version 1.0.1 (Released 2017-11-27)

This is the initial production release.

.