Release Notes
Jul 31, 2025
Days since last major release: 29 days
Gateway and Function Runtime
Improvements
-
- API Function Logging: API function error logs now obscure certain sensitive keys by default (`api-key`, `token`, `access-token`, etc), replacing the value with *******.
-
- API Function Training: when training API functions, prevent the AI from suggesting argument names that are keywords in most programming languages: `if`, `else`, `return`, etc.
-
- API Function Training: fixed a bug that incorrectly trained API functions that used an `api-key` header, forcing the user to do a post-training manual fix.
-
- API Function Training: improve handling of `body` and avoid nesting it under an extra `payload` object layer.
-
- Environments: add a `description` field for describing what the environment is used for and what should go within it.
-
- Jobs: added additional logic and fallbacks to prevent jobs from being run outside of their scheduled time.
-
- Job Activity: add Activity Records for Job CRUD operations.
-
- Server Function: made server function library version logging async so it does not delay main function execution.
-
- Config Variables: added option to turn off AI suggestions when training variables and snippets.
-
- Snippets: when adding Snippets, we now add an AI generated description if the user does not provide an explicit description and AI is enabled.
-
- Identity Providers: added a “Manage Users” permissions requirement for any change to Identity Providers.
-
- SSO: add support for multiple SSO providers per tenant, and added option to auto-create users in Poly upon the first successful SSO.
-
- Webhooks: improved our database indexing and uniqueness detection around webhooks with slugs and subpaths.
Bug Fixes
-
- Login: users who navigate to a url but are redirected to login get sent to their intended destination immediately following login.
-
- Error Handler: fixed error handler routing to ensure that error handlers that include a public namespace in the path, or have more specific matching criteria are matched and triggered.
-
- Server: Adding Functions: fixed a bug where sometimes the function arguments were double-encoded on creation and so the types were off.
-
-
- Nested / Array Fields: fixed bug with form validation that prevented forms from being submitted until those fields had been focused and blurred.
-
Canopy Service and Management APIs
Improvements
-
- Tenant Edit UI: add MFA support to the UI in case customers have MFA enabled for this operation.
-
- Enum Field: auto-select the first option if only one option is available.
-
- About Me: converted the /about-me page to a modal rather than a standalone page outside of any application.
Node Client
Bug Fixes
-
- Tabi: fixed a bug where the types were wrong for the `orderBy` option for `selectMany`
-
- Glide: fixed a bug under Windows where Glide failed to detect deployable objects in the repository.
Python Client
Improvements
-
- Tabi: added the Tabi client to Python! You can now manage Tabular data in Python!
-
- Simple calls to `print` inside of Python Server Functions now show up in server function logs. (Before you had to use a special logger named `poly`).
-
- Log API Function call errors by default when logs are enabled for easier debugging.
-
- Python 3.13: update dependency requirements to make install more seamless.
Bug Fixes
-
- Schemas: fixed a bug where Schemas with non-ascii characters would be considered invalid and not show up in the library.
-
- Client / Server Functions: fixed a bug where functions that used TypedDict to type the argument or return type were not correctly parsed.
VS Code Extension
Bug Fixes
-
- Fixed a bug that prevented Tree view from showing up under Windows 11
Docs, Public Functions, Content, Support
Docs
-
- Python: improved the documentation around how to use a Python `venv` with PolyAPI: https://docs.polyapi.io/generated_sdks/python.html#creating-a-virtual-environment
OOB Functions
HubSpot Integrations
-
- poly.OOB.ohip.ratePlans.getCodes(hostName, hotelId, ratePlanCode, appKey, token, queryParams)
– Fetch rate plan details for a hotel by hotel ID and rate plan code.
- poly.OOB.ohip.ratePlans.getCodes(hostName, hotelId, ratePlanCode, appKey, token, queryParams)
-
- poly.OOB.ohip.cashiering.guestsTransactions.getDetails(hostName, hotelId, reservationId, queryParams, appKey, token)
– Retrieve transaction details associated with a guest’s stay.
- poly.OOB.ohip.cashiering.guestsTransactions.getDetails(hostName, hotelId, reservationId, queryParams, appKey, token)
-
- poly.OOB.ohip.cashiering.proformaFolio.create(hostUrl, hotelId, reservationId, xAppKey, xHotelid, acceptLanguage, token, body, externalData, xExternalsystem)
– Create a pro-forma folio for a specific reservation to share with external partners.
- poly.OOB.ohip.cashiering.proformaFolio.create(hostUrl, hotelId, reservationId, xAppKey, xHotelid, acceptLanguage, token, body, externalData, xExternalsystem)
-
- poly.OOB.ohip.cashiering.folioTransactions.getDetails(hostName, hotelId, transactionNo, hubId, appKey, token, queryParams)
– Retrieve transaction-level details from a guest folio.
- poly.OOB.ohip.cashiering.folioTransactions.getDetails(hostName, hotelId, transactionNo, hubId, appKey, token, queryParams)
-
- poly.OOB.ohip.cashiering.folioHistory.getDetails(hostName, hotelId, appKey, token, queryParams)
– Fetch the historical folio activity for a specific reservation.
- poly.OOB.ohip.cashiering.folioHistory.getDetails(hostName, hotelId, appKey, token, queryParams)
-
- poly.OOB.ohip.cashiering.creditBills.create(hostName, hotelId, appKey, token, creditBillPayload)
– Create a credit bill for a hotel folio, including payment methods, transaction codes, and updated folio details.
- poly.OOB.ohip.cashiering.creditBills.create(hostName, hotelId, appKey, token, creditBillPayload)
-
- poly.OOB.ohip.cashiering.chargesAndPayments.post(hostName, hotelId, reservationId, appKey, token, chargesAndPaymentsPayload)
– Post charges and payments for a reservation, including transaction and cashiering details.
- poly.OOB.ohip.cashiering.chargesAndPayments.post(hostName, hotelId, reservationId, appKey, token, chargesAndPaymentsPayload)
-
- poly.OOB.ohip.bof.businessDate.getDetails()
– Retrieve the current business date for a hotel, useful for scheduling and operations.
- poly.OOB.ohip.bof.businessDate.getDetails()
-
- poly.OOB.ohip.cashiering.routingInstructions.create()
– Create routing instructions for a reservation, including billing rules and payee configurations.
- poly.OOB.ohip.cashiering.routingInstructions.create()
-
- poly.OOB.ohip.cashiering.creditBills.hub.create()
– Post a credit bill from the hub, enabling partial or full adjustments to folios with transaction-level control.
- poly.OOB.ohip.cashiering.creditBills.hub.create()
-
- poly.OOB.ohip.cashiering.chargesAndPayments.hub.post(hostName, hotelId, reservationId, hubId, appKey, token, chargesAndPaymentsPayload)
– Post charges and payments via the hub for a hotel reservation, including full financial transaction data.
- poly.OOB.ohip.cashiering.chargesAndPayments.hub.post(hostName, hotelId, reservationId, hubId, appKey, token, chargesAndPaymentsPayload)
-
- poly.OOB.ohip.contentService.config.folioReports.hub.sendEmail(hostName, hubId, appKey, token, sendFolioEmailPayload)
– Send folio reports via email from the hub, specifying reservation, folio type, and recipient address.
- poly.OOB.ohip.contentService.config.folioReports.hub.sendEmail(hostName, hubId, appKey, token, sendFolioEmailPayload)
-
- poly.OOB.ohip.contentService.config.folioReports.sendEmail(hostName, appKey, hotelId, token, sendFolioEmailPayload)
– Send folio reports via email for a specific hotel and reservation, automating report distribution.
- poly.OOB.ohip.contentService.config.folioReports.sendEmail(hostName, appKey, hotelId, token, sendFolioEmailPayload)
Adyen
-
- Retrain to improve the argument schema types and return schema types.
AWS S3
-
- poly.OOB.utils.py.s3.getObject(…)
– Get an object from S3.
- poly.OOB.utils.py.s3.getObject(…)
-
- poly.OOB.utils.py.s3.putObject(…)
– Put an object on S3.
- poly.OOB.utils.py.s3.putObject(…)
SFTP
-
- OOB.utils.py.sftpConnect(…)
– Connect to an SFTP server.
- OOB.utils.py.sftpConnect(…)
-
- OOB.utils.py.sftpEnsureDir(…)
– Ensure a directory exists on an SFTP server.
- OOB.utils.py.sftpEnsureDir(…)
-
- OOB.utils.py.sftpFileList(…)
– List files on an SFTP server.
- OOB.utils.py.sftpFileList(…)
-
- OOB.utils.py.sftpProcessFiles(…)
– Process files against some callback function on an SFTP server.
- OOB.utils.py.sftpProcessFiles(…)
Misc
-
- OOB.utils.ts.validateObjectAgainstSchema(…)
– Fixed small bugs.
- OOB.utils.ts.validateObjectAgainstSchema(…)
-
- OOB.utils.py.validateObjectAgainstSchema(…)
– Added a Python version of `validateObjectAgainstSchema` to make sure incoming payloads match the specified Schema.
- OOB.utils.py.validateObjectAgainstSchema(…)
-
- OOB.polyapi.users.whoami(…)
– Fixed returned type schema!
- OOB.polyapi.users.whoami(…)