VONQ Deployment and Support Process
At VONQ, we are committed to maintaining a high standard of quality in our production environment. To achieve this, we employ a robust combination of automated test suites and manual quality assurance (QA) processes. These measures help ensure that updates to our production environment are reliable and minimise the risk of introducing issues.
We prioritise backward compatibility in our code, as HAPI Elements does not utilise versioning and always aligns with the latest updates to the HAPI Backend. Changes to HAPI Elements and the HAPI Backend are carefully documented in HAPI Elements change log and HAPI Backend change log to keep you informed.
Deployment Process
- Environment Phases:
- Code changes are first deployed to our sandbox environment for testing.
- After a week, the changes are deployed to the production environment.
- Deployment Days:
- We avoid deploying changes on Fridays to ensure ample time for monitoring and adjustments.
- Hotfixes:
- Critical bug fixes are deployed to production on the same day the issue is fixed.
- Handling Breaking Changes:
- While rare, any breaking changes are handled with utmost care. We use feature branches to stage these changes, communicate migration plans to your developers, and allow adequate time for adjustments. Deployment only occurs once all affected ATS systems have migrated successfully.
Addressing Bugs and Issues
Despite our best efforts, some bugs or rare edge cases might escape detection and make it to production. In some instances, issues that work as intended on our end might behave differently in your environment.
To ensure user security, the embedded HAPI Elements script does not include logging tools. This means we cannot directly track user actions to reproduce an issue.
Guidelines for Reporting Issues
To assist us in resolving issues quickly and effectively, we request you follow this checklist before contacting our support team:
- Reproduce the issue on your end at least twice.
- Determine whether the issue affects multiple clients or is isolated to a single client.
- Ensure compliance with the Releasing to Production Checklist
- Attempt to reproduce the issue using our Demo ATS Products Journey or Demo ATS Contracts Journey.
- If reproducible, gather as much information as possible, including clear steps to replicate the issue.
- Contact VONQ via Zendesk Support (switch to customer sign-in) with the collected details.
Providing Comprehensive Details
When reporting an issue, please include all relevant information. Often, videos or screenshots lack the necessary context, such as open developer tools or error messages. Additionally, partial user journeys can omit critical steps, such as actions taken before interacting with HAPI Elements widgets. This can delay resolution as we need to ask clarifying questions through Zendesk.
Steps for Developers to Reproduce Issues
To expedite issue resolution, we recommend that your developers reproduce the error in a testing or local environment connected to our sandbox environment. (Instructions for reproducing errors in a production setting are outlined below.)
An issue that happens at the time HAPI Elements loads
If the issue happens at the time HAPI Elements loads (like when your prefill code kicks in for example). Add the following code to trigger the log recording, before any other HAPI Elements related code.
window.addEventListener('hapi:load:script', () => {
window.hapi.debugging.service.startLogRecording()
})
An issue that happens after HAPI Elements has already loaded
Open ELEMENTS DEBUG
panel, navigate to Bug Report Details
tab, then Recording
tab, click Start Log Recording.
If the issue cannot be reproduced on sandbox but only on production, then to enable the ELEMENTS DEBUG
panel, run the following code in developer tools console of the browser:
window.hapiQA.addDebugPanelToDOM()
Stopping the recording and obtaining the log file
Open ELEMENTS DEBUG
panel, navigate to Bug Report Details
tab, then Recording
tab, click Stop Log Recording. Alternatively you can also stop recording programmatically as such:
window.hapi.debugging.service.stopLogRecording()
A JSON file will be downloaded that you can share with us.
When generating JSON file, the listener callbacks provided to HAPI Elements in your application will be stringified for debugging purposes thus we recommend you obfuscate any sensitive information you may have when inputting data into HAPI Elements or when providing callback functions to HAPI Elements.
Replaying the log file
To replay, open ELEMENTS DEBUG
panel, navigate to Bug Report Details
tab then Replay
tab and upload the file you obtained when recording and a popup will appear to help traverse the timeline of events you did while recording.
When replaying the file, the listener callbacks provided in your application will not be run, as they are stringified only for debugging purposes and will not reflect a real replay scenario.