Release Notes
October 29, 2024
Days since last major release: 35 days
Client Improvements
Node
Improvements:
- Dependency Check – During the TypeScript setup process, the client will check for Node.js and prompt the user to install it if missing.
- Setup – Added support for non-interactive setup by passing in the base instance url and the api key as positional options: `npx polyapi setup [baseUrl] [apiKey]`
- Setup – Added prompt for first setup of project to setup the default PolyAPI project directory structure.
- Schemas – Now when generating poly models from a OpenAPI schema using
npx poly model generate:
any named schemas used within the API are pulled out as separate PolyAPI schema models ready to be trained to poly as separate re-usable schemas rather than duplicating them across every trained function. All trained schemas are included in generated SDK types so they can be referenced within your code.
Bug Fixes:
- Model Generate – Fixed bug where
npx poly model generate
command would fail without therename
option being provided. - Text Colors – Fixed bug with client using white text even when shell is using white background. Text should use shell default color except for error and success messages. Client also respects NO_COLOR=1 environment variable.
- Generate – Fixed bug preventing generating SDK types when a variable value is an empty object or array
Python
Bug Fixes:
- Generate – Fixed a bug with OOB API Key Functions that sometimes caused `python -m polyapi generate` to fail.
VS Code Client
Improvements:
- Helpful Links – Added helpful links to VS code extension to make getting docs and support easier.
- Signup Link – Added a Link to the Signup Page to our VSCode Extension.
Bug Fixes:
- Scroll Bar in Chat Message Input – Scroll bar showed up unnecessarily at some resolutions, was fixed to not show up.
Canopy Service (and Poly Management UI)
Improvements:
- New UX and UI Design – Total redesign of UX & Look and Feel of Canopy Applications and improving usability and accessibility.
- Mobile Web Support – Improved support for responsive web UI for Canopy Apps.
- Loading states – Sometimes the functions you might use to back your canopy application views and forms might be a little slow. So now all pages in canopy use a fallback loader, and all submit buttons likewise show a loader to indicate when something is happening.
- Variables in Function Execution – Ability to select and pass in variables by reference when executing API and Server functions via the UI.
- Execute Public Functions and Webhooks – Ability to execute public server and API functions via Poly UI, as well as webhooks. View the response, including headers and performance metrics.
- FX Replication – Added UI support for replicating across environments, tenants and instances.
- Trigger Configuration – Added UI to lookup Webhooks and Server Functions and associate them with triggers.
- Logged In Key – Shows the current key name, tenant and environment of the logged in user in top-right corner of each page.
- Permissions – About me UI (and corresponding API endpoint) now show the permissions of the currently logged in user.
- Activity History UI – Accessible by Admins to view the full history of activity in their tenant.
- Error Handler Config – Can now be set to invoke a server function using triggers in the UI.
- List item UI – Ability to add and remove items from a list. Applied to security functions configuration in webhooks first.
- Delete Logs – Ability to delete server function logs for a given function using the UI.
- Create Forms ENV Default – create forms now default to environment visibility when initialized
- Collection Property inference – When creating or updating a Canopy application any properties that can be inferred from configured api and server functions will be inferred and saved to the application configuration. Inferred properties will be overridden by any manually configured properties.
Bug Fixes:
- Users & Environments – Require OTP to delete users and environments from Poly Management UI when the MfaEnabled config variable is enabled.
- Log Execution ID – Now show in the UI for each server function log statement.
- Server Function State – Ability to set Enabled true/false via UI
- Auto Complete Secrets – Disabled Auto-Completion for secret variables, preventing the browser from saving and recommending the secrets.
Server & API
Improvements:
- New Schemas API – Adding new API endpoints for listing, creating, updating, and removing named JSON schemas and sharing them across PolyAPI environments, or even tenants. Schemas can be referenced when training any functions to Poly allowing the same schema to be shared across multiple functions.
- Context Name computed property – Added a new property
contextName
as a computed property returned at all endpoints where the entity has both a context and name property. Available for specs, all types of functions, variables, webhooks, and more. - More Granular Permissions – Added two new permission fields on Admin API Keys. Admins can now create API keys with both/one/none of these permissions.
- “ManageUsers” – manage users, teams, and api keys
- “ManageTenant” – manage tenant info and tenant config variables
- Server Functions Can Set `executionApiKey` – If you want to specify your executionApiKey, you can do so with the API via the `POST /functions/server` endpoint. In R18, we will add this option to the TypeScript client.
- API Functions API – When PATCHing an api function we allow the source body to be specified as an array instead of an object to allow for full overriding of the contents. PATCH requests using an object will continue to update just a subset of source body types. This brings the api into alignment with the way we handle headers.
Bug Fixes:
- KNative Runtime – Fixed bug where after deploying a new version of a server function any old versions waited until their full sleepCycleInterval to expire before spinning down. Now old functions will spin down as soon as the new function is deployed.
- Prevent Forbidden Words When Creating Functions, Variables, Etc – Certain words are forbidden when creating functions, variables, etc, including:
- Public
- Private
- Protected
- Class
- Interface
- Enum
- Void
- Bool
- Object
- Fix Verification Email Avatar – The avatar on the “Verify Email Address” email was of Jake. It has been fixed to be a picture of Poly.
- Postman Training – Fixed bug where postman training with custom postman variables could sometimes cause strange “undefined” values to be submitted in the training payload.
- API Functions – Fixed bug where some api functions were able to be trained without specifying a language type for the request body
- Applied Security Patches – Responded to CVEs and applied security patches as needed.
- Removed Unused Security Groups – Removed old unused security groups with open ports.
AI Services
Improvements:
- Github Copilot Extension Auth Flow – Improved the Github Copilot @polyapi Extension auth flow in the case of a user accidentally revoking auth or permissions changing.
- Add Support for Other Regions to Copilot – Previously our Github Copilot @polyapi Extension was only available in the NA1 region. Our extension has been updated to be available in all regions.
- Add Support for Github.com to Copilot Extension – Previously our Github Copilot @polyapi extension only worked in VSCode. Now it also works on Github.com!
- AI Assistants Swagger Docs – AI Assistants Swagger Docs updated to have more consistent name of `slug` rather than `assistantSlug`
- Remove `/plugins` endpoints – Deprecated `/plugins` urls removed. API standardized around `/assistants/`. See AI Assistants Swagger Docs.
Docs, Public Functions and Content
OOB Functions
- Zoom Phone – Trained several of Zoom Phone’s APIs, supporting functionalities such as listing users, managing call logs, and handling OAuth token generation:
poly.OOB.zoom.phone.users.list()
poly.OOB.zoom.phone.callLogs.list()
poly.OOB.zoom.phone.callLogs.delete()
poly.OOB.zoom.oauth.generateToken()
- OHIP Functions – added and updated several of OHIP’s APIs including posting charges, retrieving guest profiles, and managing room assignments:
- Added
poly.OOB.ohip.cashiering.charges.addBillingCharge(), poly.OOB.ohip.crm.profiles.getDetails(), poly.OOB.ohip.cashiering.transactionCodes.list()
- Updated
poly.OOB.ohip.reservations.create()
, which now includes additional properties like phone, email, and address, and updated optional fields to be non-required. - Updated context for assign and autoAssign functions to
poly.OOB.ohip.frontDesk.rooms
- Updated
poly.OOB.ohip.lov.transactionCodes.list()
to include query parameters.
- Added
- Ability to Assign argument names – When training Poly with OAS files, we now have the ability to assign argument names for host and bearer Tokens to allow for better control over interfaces.
Documentation
- Quickstart – Updated quickstart documentation to fix some changed references, as well as add more helpful links and screenshots.
- Webhook Security Functions – Added introductory documentation around adding security functions for webhooks
- Typescript Docs – Added explanation of EACCESS errors on install and how to recover.
- Python Docs – Added explanation of error message when trying to install on an older version of Python (<=Python3.9).
- Python Docs – Added warnings about MacOS issues when trying to install on the newly released Python 3.13.
- Swagger Docs – Added Enum choices for parameters on GET /activity endpoint. Github Copilot Docs – Added Github Copilot @polyapi Extension documentation.
Postman Collection
- New API Requests: Added CRUD and special operations:
- Full CRUD support for config-variables, including tenant and environment-specific variables.
- GET /health endpoint for system health monitoring.
- GET /metrics endpoint to retrieve execution metrics for API functions, server functions, webhooks, and triggers.
- Multi-Factor Authentication (MFA) with endpoints for configuring MFA, generating QR codes or pairing links, verifying tokens, and resetting MFA.
- Requests for managing and accessing tenant-specific resources, including API functions, server functions, client functions, webhooks, authentication providers, snippets, and variables.
- Requests for accessing public variables and client functions.
Marketplace Listings
- PolyAPI is now available on the Microsoft Azure Marketplace, empowering enterprise IT teams to streamline complex integrations, orchestrations, and microservices. View listing here: PolyAPI on Azure Marketplace.
Infrastructure/DevOps Improvements
Improvements:
- Autoscaling Metrics – Implemented custom metrics for use in better auto-scaling PolyAPI services.
- Added new NA2 instance – Added a new instance at https://na2.polyapi.io. This instance is one release behind https://na1.polyapi.io and does not allow public signup.
- FaaS Autoscaler – Developed plan to improve PolyAPI FaaS Autoscaler via better metrics. New autoscaler metric options will be released in R17!