FormVox - Releases

← App details

Nextcloud 33

FormVox 1.2.1
Release Details
UpdatedMay 12, 2026, 4:20 p.m.
Changelog

Changed

  • Pricing removed from admin Support tab — The Support tab no longer hardcodes subscription tiers and prices. A single "View pricing & plans" button now links to voxcloud.nl/pricing/#formvox where pricing is maintained. Reason: keeping prices in the app required a new App Store release for every price change (review time: days to weeks); the website can be updated instantly. The Support tab now focuses on installation state, organization details, and subscription-key management.
  • Telemetry transparency expanded — The "What we collect" list in the Anonymous Usage Statistics section now accurately reflects every field actually sent in the telemetry payload, including the organization name and contact email (only sent if filled in by the admin) and the new Extended Support flag (see below). The previous list omitted these fields.

Added

  • Extended Support / Enterprise flag in telemetry — The telemetry payload now includes hasExtendedSupport, sourced from Nextcloud's public OCP\Util::hasExtendedSupport() API (NC 17+). Returns false on any failure so a Community instance is never reported as Enterprise. The license key is sent alongside so the license server can cross-check the claim against an active subscription — the boolean alone is unauthenticated and could otherwise be spoofed. Required for the Nextcloud ISV partnership where bundled-license customers need automatic recognition.
  • Description links open in a new tab — Links in form, section and question descriptions now open in a new browser tab with rel="noopener noreferrer", so respondents don't lose their in-progress form when they click a reference link. (#87)

Removed

  • "What a subscription includes" checklist with green checkmarks — content moved to voxcloud.nl/pricing/#formvox.
  • Hardcoded pricing tiers (Free + €19/€59/€139/year + Contact us) — content moved to voxcloud.nl/pricing/#formvox.
  • Standalone "Learn more about FormVox" contact block at the bottom of the Support tab — replaced by an inline "Questions? info@voxcloud.nl" link next to the new pricing CTA.

Fixed

  • Submit failed on password-protected public forms — After entering the share password the user could open the form but every submit was rejected with "Password required" because the frontend never replays the password on subsequent requests. The authenticate flow now sets a signed, HMAC-protected formvox_pw_<fileId> cookie (1 h validity, SameSite=Lax) which the share-gate accepts as proof of password possession on submit and upload. (#82)
  • Date picker selected the day before in non-UTC time zones — Picking 17 May in CEST was serialised as 2026-05-16 because the previous implementation called toISOString() (UTC) on a Date constructed at local midnight. Date questions now serialise using local Y-M-D and parse YYYY-MM-DD strings into a local-midnight Date so the displayed date always matches the picked date. (#80, #89)
  • CSV export still fragmented in Excelfputcsv() used PHP's default \n record separator while in-cell newlines were normalised to \r\n, producing mixed line endings that some Excel versions interpreted as a new row inside a quoted cell. Both writes now use the explicit eol: "\r\n" argument so record terminators and in-cell newlines are consistent CRLF. (#83)
  • Question labels shoved sideways in Microsoft Edge — The flex container holding a question label and the TTS button could grow horizontally beyond its parent in Edge when the label was long. The label is now a shrinkable flex item (flex: 1 1 auto; min-width: 0) with overflow-wrap: break-word and the row allows wrapping, matching the layout other browsers already produced. (#84)
  • "Move to section" did nothing when Pages were enabled — The pages-mode draggable did not listen for the move-to-section event from the question overflow menu, and questions dragged under a section header did not become visually nested because the wrapper that applies the indent style was only rendered in single-page mode. Both code paths now match: dropdown moves work, drag-into-section auto-assigns the sectionId, and dragging a section header carries its children with it on the same page. (#88)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureeUuQ4SynmfMaIwd1NZhIUdQk9Qg7DxfCKekVrIqSqs0vDAebIJ4hacbNi/jlDikk+KZ1a2BNwd+mIGiGZskETOIzcz5l+tQsT2+0gorPFzhXx+A0rzMIFpEm3cIN+N3us4RG05WXwKDtWClbtmJ/w6o8ZcJk9wEPbVQlOcv6ooT2JmRtvTcFpSxyLw4ViPPJjdpUdCixrXdad1qN56T9kDsz9voTlxWEmr3cdUTcG9Q4FxhkPo9yhsIO5GQtIqYjHVe+YDGcUJz8xGti/PfyQFCrDFllZrYOJeXP6VcYnE48WvrmvPuXQ7qpDgYWMjJsJInsuuJysL8tnQf/ySxy25zZy+Irt9FgUWR2w+fdQ6JYH9UXeUYuCFNucK0ca+EwooLaEO4RXwKhVcWYQBaPD2kldVHuD3fnv6iBUPma/xPLSxk3fdzcGXsEIcKwqsZrGs4D2Vf94NVvRKbBWRi7A5HnIBm/kGx90ZQGzFHLcIdGkaS3rU4mE5rzuhB4hKej1LQzaeoBR+ESdulVzzCXr6SvEwVbOZH/b46zxYQ7AzbAqpyOr7J77J3Uvzpz7Hj1Y0t63daVqjEOO87tQyKoTAvbPihmYrnbA/HerQhgyfP38VomWLpUS8/y10wx+s0sF7ewgy/PYew3DV33AORdQZEewY4Bzspo4+JzC0uFB1g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.2.0
Release Details
UpdatedMay 5, 2026, 1:40 p.m.
Changelog

Added

  • Bot protection that works behind NAT — Public form submissions are now protected by an ALTCHA-style proof-of-work challenge solved in the user's browser, replacing per-IP rate limiting as the primary anti-bot defense. Cost is paid per browser, so an organisation with hundreds of users behind a single NAT IP all submit without throttling. The challenge is invisible to legitimate users (~50–150 ms of work in a Web Worker), self-hosted (no third-party service, no external JS, no API keys, GDPR-clean), and adapts difficulty to the per-form submit rate so attackers pay more under load. The signature is bound to the form's file ID so a challenge issued for one form cannot be reused on another. Single-use replay protection via Nextcloud's distributed cache (Redis) with APCu fallback for single-server installs. (#76)

Changed

  • Anonymous submit rate limit raised from 100/hour to 25 000/hour — With ALTCHA now the primary defense, the per-IP limit becomes a wide safety net rather than the front line. The new ceiling comfortably accommodates large-organisation peaks (think 10 000 employees filling in a training evaluation in one hour) while still bounding pathological abuse if the cache backend goes down.

Fixed

  • Form description rendered as plain text on the public form — The form description on the public response page now renders as markdown instead of literal text with the raw #/* characters and collapsed newlines. Headings, lists, links, code, and blockquotes in the form description, section descriptions, and the in-editor markdown preview all render with proper visual styling. (#63)
  • "Form not found" / "Access forbidden" for logged-in respondents on restricted folders — When a public form had require login enabled and was stored in a Group Folder or Team Folder the respondent was not a member of, the submission failed because the authenticated submit path used a user-context file load. Authenticated respondents now use the same admin-bypass loader as anonymous submissions, so the share link plus token (and any allowed_users/allowed_groups rules) are the only gate — no folder ACL needed. (#77)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEgXx1k6T/jb0h31O0h5rzjkRhdCiLPnChW/hOo3JMOiATKU1BeP/KDCUw0rW9RpOhe5j7ySM8dogkKzsxJJvjNZCl92E7AeK5O0fDtALSSQnCW7P86vIUrB1IIt3RgwC9SEF2XLAF69prmf6JlH18Jqp4qMj6fw64GxrSh/mASu/FkmllqDoJBkml9jgJ578d7/ea7wEc4ugJVPKqVcENaVfYEaaprkAitesxpgArulem3djQLl28nnmAkoMZpXrnJZ3jr1zIFp6DSuCUpgnidtprxi2F8ncqglerVMeYXvohnBLzAP/yt+3LELcPyyDduursEkX0Of2rrjNRN9FGgtEE+OtzjW42pkbE5g0SvPS2s6FZR8dZukCcvvet7QE4CONVIDC2hDhNmCfqlGj3eaIkZzeiO8WLElqTX7LXEEB5oBBbiNUCgcelr3Lv0OZUb2/KtOlvASuR2hP2sLHDosmNpKnf83DpzfT8xCWz7BhthOxM0w/ErvfTpXspf/9+cJ8zExk+D9F38yoFGAf71m/ZDL0h363NZWb7tSl2mQtY2OF3NfBVicj5RFK6DnIZlD12UuvD/cj6dJcJYWThDT/OXrS3mvOMf2+FBHeLfi42ycGuElOMLqeVOo0PrOYE/O+H08IevLOq6JplXchq9PvlPXszN5g3fg3VqLeNuA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.5
Release Details
UpdatedMay 4, 2026, 4:21 p.m.
Changelog

Added

  • Markdown editor for descriptions — Form description and per-question/section descriptions now use a native Nextcloud-style markdown editor (EasyMDE) with a toolbar for bold, italic, headings, lists, links, images, and preview. Includes a custom drag handle to resize the editor vertically.

Changed

  • Form editor layout redesign — Top-level form actions (Edit/Preview tabs, Share, Results, and the Pages/Branding/Settings overflow menu) now live in a sticky page header at the top of the editor, instead of a horizontal bar that visually appeared to belong to the form description. Question and section creation moved to a dedicated "+ Add question" rail below the question list — the spot where the cursor naturally lands after editing the previous question.

Fixed

  • Conditional logic broke for multiple-choice answersshowIf evaluation now correctly handles array answers from multiple-choice/checkbox questions in both the frontend evaluator and PHP backend, instead of comparing the whole array against a single value. (#71)
  • CSV export of table answers showed internal column ids — Table-type answers in CSV exports now use the column labels from the form definition instead of internal column ids. (#70)
  • Orphaned fields persisted after question type change — Switching a question's type (e.g. from scale to text) now strips type-specific fields (options, scale bounds, rating, matrix, table, file, validation, date bounds) so the saved question matches its new type. (#69)
  • Newlines in answers broke CSV row alignment — Long-text answers containing newlines are now normalised to \r\n per RFC 4180 before being written to CSV, so spreadsheets parse rows correctly. (#65)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureTNODkyXkWcBDXqO4gs8raDC+CgQ/jQYD6wpAb4xj/yTwHRnv+VoA0emEpheTceqhy3gXPqEdX3lRZugqqHQ9fLi43xrdloAfG0p7y9lwjxm73ZhfYAEjHE+LAstRFWkxZgVqYcGUNG6dv8oFlip0xhgwEvH2RpGANcYmu9+7MBJpzU4TjLWAbkOLuFjFRahVFjWC2zmwDMK2X59qwfuRZhkUAPFz28eTsqEjP79p9ro7olkR1bBlySCTWpXEthLpwkJh4LrNC4lIIXM0aZoNlJJQniQbGIZQBIir9dkwHXorgJHGM87kQlI0IDDL//NsJ5cCcUcCuVDTQ9M0YSL0MUG6AjueUGkO1eEK/ESuwGjZe1wKzhqKi63jM2ACMTm6XAAl8v6rvORSvxIG6WPNIyLFnavxjhAmIQxX1e8nHqyZLL/PFLVeqOXYE+59Wp/rBSkhgSXOcYP6OwHMtaX/deac6H0KFQgtAdfa7bD6Wkp2TnN7loFyoqza2G5h0Sg25RZuzxYBwbCCkmflUtl0M80iyn6nwW7H19swostFBSaDyFrZX+lhTGQYsr7nKlio7BZtKdUjH4xbSsjJf4EGF8I/9GhdQytGpKQ/qy5i8FUYfiBmrx5BJg/oAHoER5Pp0oP0HQMWwv/1giNyXMp2dcuLWhP2hvAbB1IlBgI3ae4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.4
Release Details
UpdatedApril 24, 2026, 3:14 p.m.
Changelog

Fixed

  • Description textareas overlap question actions when resized — The question description and section description textareas in the form editor no longer have a resize handle, preventing them from growing over the per-question action buttons (edit/delete/drag) when dragged. Matches the existing behaviour of the top-level form description. (#62)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturep1UDsZKOD4hCwZY5bWgHJ1sTTRcCX+XrHdAlahJK5jV5EEDXag0tNIGqM4LIJOf7xHcn7rc3Z8TXxnFDoq73CXs4qBYETDCXhrmh8QrcRYKDLoSiZGQmktXdett83/EHN2Iwp5NIiR311QzukbAsFzG3wpZzDDbJ3qsmYv1w+K8mEye7C94JDmeuYrFsCk2LlnSIzNGy1yKDUmNqvPiHIAXIkp1ZDO9YoSiV6GavlNIqxsoa2BEREmgRKcUjxBuZZfz3YS76CHOVa5I28IapwspdZpzOB0nsLrgkSwWE0ljFK81X2OgYFlBTuV4ZTO+aan+69S0F/GHXQXmyi7udAmIGWge2kFim3Fz1ER+Q08lAATLJ1OaxkoL79kj3s32kO5U7d87tWaJKq321Rg9r8x0CgBG0iTUp/eCN9MRj2zdlTd4dLenLYDA4kbeXiSUZ1aBahzlVQ62X0eJLNhjxY2lz7ZhlmmTUtQ4luaxMlg4Yq854HSnzyXxtalC664EP53xMUSo5umFbE4EDAPHlfKaQwkGATg8ar6gocXvy28ht56jAWPgMISq4duRaV0/caEM7m3VwdlQihiN1zrpaP3mgmtHgdMw+ot4jYNr3MCbaEQO06L0zGNe1nLk0gawa482BU/Zej/t3uBWSiQEJM9e2IxF0R/VZGeCy96oHDDc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.3
Release Details
UpdatedApril 24, 2026, 6:53 a.m.
Changelog

Fixed

  • Webhook "Enabled" toggle unresponsive — The enable/disable switch in Share → Advanced Settings → Integrations now correctly reflects its state and persists changes. Previously the switch used a deprecated Vue prop API (:checked / @update:checked) which silently sent undefined to the backend, disabling webhooks without feedback. (#61)
  • Admin statistics no longer crash on user-backend errorsgetUserCount() now wraps callForAllUsers() in a try/catch and falls back to 1 if the user backend throws (e.g., LDAP timeout), keeping the admin stats page, license usage reporter, and telemetry job running.

Changed

  • License usage reports now include activeUsers30d — The daily license sync (/api/licenses/usage) now carries the same active-user metric that telemetry already reports, giving the license server full visibility of active instance usage.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureBsfsxecsMB2+i9+eq9JiyvP52vlLdV0MWJ3rBMLb88aKwbg2Nn51QOCW9htSIsOkmgpCUFGuXHyMm/lR3mFG3krH71WaUkBEEaoS7ySiUHq3Pl+8SQD22gt7wj6a+J/MTiZS7mObQtTYw3GzatusxyxgM/+1KaZwJqZxQ26CFY+pZXxxcSsfYLXnJIZB1zj4BY5rN09gfwM+Zw1PWXOJJz/Of5IeoFCDc2RdVE08zXQlfYVK3iHSb4naGwjTAPKwvmWFRpL6vCYj2E7qSykaK+2nK4av0myrYK8+ldNfi3Zh3bmkdXKYM2yDpcU9ijp0pCk1FY/apY329sr6HYBPKuqI0Ikss4YUVEBLaRNBA+DM6kVkAe5ihE1oKIsB/9Fmu6pPgQSxM9rYlw35xHgv5xcv3mP2ZiaVJds4vC7foRLobAfvUgje/eLoBELKBvAT7P2J4uF8n7F5XT3hoUciq638db8QIivn9HP83hqAhT8kY4mvXzkb2OJhGzumslcP9YDKfAD/fAPfJhDDDOSxTgSYJBw37RuG1eYMcGcvURw5Qk+7yU0eNtiWhr6zDVgu2YCoUK6ZRrbgJYNMZ0ur7Me4QU8+7AeUArbZIeajA1nCtqcPk9xmTAXCiNARtv0VZ8RdY1RZ5iVBOnK5+SbxHGBbQ3mZNZdKwzFAHhvsJOA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.2
Release Details
UpdatedApril 23, 2026, 9:02 a.m.
Changelog

Fixed

  • CSV export garbled German/special characters — CSV export now includes a UTF-8 BOM so Excel on Windows correctly recognises the encoding (#57)
  • Results chart legend shows internal option IDs — The chart legend now uses the same label mapping as the charts themselves (#58)
  • Unanswered questions blank in Results — Unanswered questions now show "Not answered" (translated) instead of a blank dash (#58)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureANC8GYEPpin/4ns3c7w+0sCffcPTLl1k+FArDTVECdld8uv6XX+32VP8CY4+Fz7iSF8MdPZ+A1+BoUmqXylSavw10zO/XbhGAU+TmjxyjwkJTE9cOTs876XBFP7lhOTqQv6C8sivKoTEc1N5YTY8gcyqO58hJgJML+4rqIJSfuUTBc85r75aBbQAMeTz/0AbVDsrimgRoS6HszEzj0J6XM/egGkg1wJQk9oXFB9ijTlZQUzjSPbRmONRjrcQEc9WfR+OKTFfhLAQNsr0bRKw/8jUksHTNRrxZ4tPsNfBX6mM6rHJfBardsGI+tSBZPvtjbj3Rp6akuxgLV84HzdUmsDPkvsK20AmPdPh3lotSNMYNSo/Qo4lPEzyJ30U6Zq8fcCBC6e9izKntJkUwPHXNcFtIuuVZiC8ZxpItE5k2tqXE7XbNJoDITZyVk6BVnFRUWXxh0IiChBnYHPEm7l2oAoJ6tvbkeKCIgSYNVK+FgBjehStT02YEk9uxkVjaeQNAn6OzclbE+LgjI2F5VjYZALk0QVmsKD0QFn3QyCG02sF/6fTzJPl+lP12+s4S47/WTIxNEJNLhPU+tuk7bF75BSUqqG3QGgIvzeFNBrEDKhSwA9g5Oa2YiWZEPRnq0ZYyL2rrXjHS5Nqo6K35AAd4xYq51vfpXOQywSfVFA867s=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.1
Release Details
UpdatedApril 23, 2026, 8:21 a.m.
Changelog

Added

  • External storage support — Forms stored on external storage mounts (SMB, SFTP, S3, local mounts) can now be loaded via public share links (#55)

Security

  • Updated fast-xml-parser from 5.5.7 to 5.7.1 (fixes malicious CDATA/comment sanitization and stack overflow on long tag expressions)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEiNCYJXtZ95soBULwBnHUYWQ2DhP3zeiwzU0RXYPEwvs0R9/ydEjCtwRud+c9PeNLeT1XMvAmP39radRc2OLgD2L12CSJaWj3IbYvSRVKAlnQFAwS44wDHmpuVf1dGq2Tr1Sfj7lFn+0ubYW5Xw1Pmqjft6X1ABtMW9sHCUQbdB3DwfL/EB0M5It+/iVDe4Z3OE5n7tiqhVe4vuFUxWOPqavDUqXS8MjWLMZB7SAJ8IXaF4kKG63qHZBfo3npKrTbbAsIZOvvy5rFzzD63brSd7i4QybX++QzMXSM/hYOTo9pGTMAgfmJzXCmDRn5s2M6lS8mKOOdLgsXMr8hZekJtuR74CZz83V7GyYXZEhe74D5KmiFhTajT8opzuwnQ3BLojEdlumIKzqKoRlwuMT2/28/Oz+S41OP4qmhRGx/Hztht+ml23/mJzIqzpZCulXsdb2U8j5c6Py38lDauvWE+Q4Xt3/yUjlFJVj3KxFQXTxOWUKzfsrU6Hn0T/wDwVX1XiRG2elCqAehOXdWuQn2w4dX9jcKQ0s3WTY41QtqAGKVAbYbQ5ROesX8+I8WLL2mIzkkDIvGtxz7Q423R1cA8bQzFNpK9sM6Cs6yP6Ro4sQtZY+qIAMTszuwHDUCglOgbMX8XVFd4kF1obfF2AupHWeoelvDEfxL4zqyCNHkTE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.0
Release Details
UpdatedApril 20, 2026, 2:09 p.m.
Changelog

Added

  • AI form generation — Generate forms from a description, an uploaded document (PDF/DOCX/ODT/text), or both, using Nextcloud's built-in TaskProcessing API. Async pattern identical to nextcloud/assistant: the request returns immediately with a task id, the frontend polls, and a background TaskSuccessfulEvent listener materialises the form and sends a Nextcloud notification even if the user closes the browser tab. Includes heuristic truncated-JSON repair for less capable LLMs.
  • AI conditional logic — The AI may add showIf conditions on generated questions when a follow-up is genuinely only relevant given a prior answer. Values are snapped to existing option values; forward references and circular dependencies are rejected by construction.
  • AI admin panel — New "AI" tab in FormVox admin settings with provider-availability status (live-detected task type), per-instance enable/disable toggle, max-questions-per-form slider (3-20), max source-document size slider (1-25 MB), and toggles for source-document upload and conditional logic features.
  • Scheduled opening (share_starts_at) — Share links can be scheduled to open in the future. Before the start time, visitors see a "This form is not yet open — opens at {date}" page; submissions/uploads are blocked server-side on all public endpoints.
  • Per-form branding logo uploads — Logo and image blocks in per-form branding now upload to .formvox-branding-{fileId}/ next to the .fvform file (mirrors the .formvox-uploads- pattern), travel along on form move, and are cleaned up on form delete (#53)
  • Result summary shows labels — Radio/choice questions in the Results summary chart and legend now show the option label instead of the internal id (#52)
  • Full translations (EN, NL, DE, FR) — 43 new user-facing strings for the AI flow, AI admin panel, scheduled opening and "not yet open" page are fully translated in all four supported languages

Fixed

  • Share link date pickers don't persist changes — Changing the expiration or opening date in the Share dialog now debounces and saves automatically instead of discarding the new value on reload
  • Notification icons missing on mobile/desktop clients — All FormVox notifications now emit an absolute icon URL (#54)

Changed

  • AI form generation is off by default until the admin enables it (unless a provider was already installed when the admin first visits the AI tab, in which case it's enabled automatically for convenience)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureQk7s2eNDcOC+qbqnbRWxqe63swdWDcu1YoTXk2BzNHTFVo7+JUP5+fsf4ZX2PYUVFcx/3n0/p1D+7C6vdtNUqxmAO9wKE3+MF+xjPMwyZrK2rJXVaaolGkfoVPr+PgiHlQYxd9Nh4F/YmkllR2uVTY1tN5QzDJas7ISwmPc1T/ArKlMsXQ0nlsKFhK3XEHGJ8TEWC06imVE8RKQcrn6G70/qwFYsdKopf/DjJEdhtcxTkd3UKLH6NwVILx1rktFfcd728U2HsvrS8LEBgLUd2zfUYJzfe4f3oI76KvzeYJIBOOje1Tkd59UbrrhJylZwWD3qxI3PgHiIh9mqgdCGFX9xSv6nIAjByIVHQod4hPgEfyzXNVvtovVtAaH0XKXU8PTOK38Gju0gHvtcQF7W1frK7ZaqjUudHOzweT87IO6Pnpdugg0TXXJqOSdNBn41cwjgIDkTaymrMGDw8Iaxfu0tE+nby/vlb4p1Yr8+wHbHnkVOy6WYT8SI2yhaUW7hYCTGJerJAkpwrH/3wWCurjF6eSjodyrU/eMkpb64GamAEYXhjK+1ErE6qvupetnJtoDgBTGaaVW384+pRUzUAOB0aYWqbxPL/BvxlcN0DdOg3yAP7vtFLCkx44/rjx0vBbZw7Pw7YwsUlvxntS8dc+NvajRd7lZwRMeZw7/2zGg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.2
Release Details
UpdatedApril 17, 2026, 2:59 p.m.
Changelog

Fixed

  • Telemetry error feedback: The "Send report now" button now shows the actual server error message (e.g., rate limit, connectivity issue) instead of silently failing

Security

  • Updated dompurify and follow-redirects dependencies to fix moderate security vulnerabilities
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturenWH3habsfSuicUPAYeMfpBHNnXo7QYa8/fAhRuYTh62gdaiNQArKCcTFCIevd260+kBMUoI2yj5aDoxq7vD6NriiUOi60FQkCd1KogxC51glVMyMm0MaCgbEcFZG0JIIZ9pAJEAu1rpoQwmkGRg5D0XaQDGUl7vkgZ/+OcUA7RA3pw60jEWueZiF+duvkhka2P3OTkGFzZodk6kX05SpD34ygRwNDeLiVwYy0E2A5mYWk2XN+ZLdMn0uK/6j8ch7xa1uecEl8deakE7jn72jeE+tOZ0qZBXcK1p/zVfHyrSSEny8xGTQ/JR+l4PT1pMbM2eMewJk6rKygGcPAHOK0nreGk+j15jMCPBTK7milwK+OvM3zGUSiLUr4Y+uSKNB3NQzmOQYCeH7T7DSG+AdjdXJUmYFjxeLt2hoFGPxR6lkAGvuRm4DwPfHHlPPetsmyGhsgL8ZYKX46l31RvtDYYYwmPeF8EF/UgPlTTm+KaRQoofAy16Hfna0NEwcqMviOGIDW3Nkty8vIPwM7a8XE59qokRnGGuYWkRR8UAg8tsTGelnAbd7bWiUVQOrjfonVCuRknVogJ9eemLB46TTVhGkZ610bj5WnIp7GzCeG9F5HZuZKpl2KB3a0YOqodbssB2rDBEbTYW5OX8GtaX+A349ZSd/iDSmNHO4iQNnZ5o=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.0
Release Details
UpdatedApril 13, 2026, 9:20 a.m.
Changelog

Added

  • Support tab in admin settings — New "Support" tab in the FormVox admin panel with subscription pricing, installation statistics, organization contact fields, and license key management
  • License key management — Admins can enter and activate a FVOX- subscription key, which is validated against the VoxCloud license server. The key is displayed masked and can be removed at any time
  • Installation statistics in Support tab — Shows total forms, total responses, and total users directly in the admin panel
  • License banner — An info banner appears at the top of the admin panel when the installation exceeds the free tier limits (25 forms or 50 users) and no valid subscription key is configured. A warning banner is shown when a subscription key is invalid or expired
  • Organization contact fields — Admins can optionally save an organization name and contact email to be associated with their subscription
  • Background license sync — A daily background job validates the license and reports usage to the VoxCloud license server, with per-instance jitter to spread server load
  • Telemetry section moved to Support tab — The anonymous usage statistics section has been moved from the Statistics tab to the Support tab for better discoverability
  • Full translations (EN, NL, DE, FR) — All Support tab strings are fully translated in all four supported languages

Changed

  • Statistics tab simplified — The "About FormVox" blurb and anonymous usage statistics section have been moved to the Support tab, keeping the Statistics tab focused on form and response counts
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureP2gopdnkFIlA23vbmBlweI6L9qwwLKioNUiltOry331cegOXVm1alaTtOG4AAZQE9VpgHBZ5VEBprxCk6vvuiLEHH/VgR+NbiG0xU4rTfPABfwBjyaABFhWWZPoGKpZ1lc5ZU6SYGqj6ucjpF4IwTWxsKln1MveRuIEccAYRBXSidPw1ukv7Ur6/Q2qv/BoAJo4YesXlgr7XOEZlu8Fn3dSaj3fLVG2zmh8pI/80tjmtn3588UP+ohyuSUUnMxqtUpQE0e5x+OuZjgvpLmOQQt7P1v1gsjA+sguWZb1kR3jq/Jqt8vN5TsI8gAKIYqq2DIArg6gnd2o5FSYNTgaaR6NJ9iNhua7XnHpFkc/xDXvKZqUpLwEpEhDlf0E/nTEPVl+nCZMZUsRex2mFta1TszXPA9nu62KQ997Ls6DwGOy//ad4XXRfbz59BQvdSOcOt9ZURBpEfFZs3KnvKHkGHrfwNE+8XtthPyhrQ1GtP1yxHH5nF8XMlLSQiwa8pWuf+xp/LpWu/oIuGryceg+C9zrFKiqI0SRwa8REtrZFHkApEH5gVCczanLcfluvaqRGEZ1ZrMuYpqLio7I3kkmdo4sW22AKhgYQeZMlTpyQlaW14hw9mQGtrGqCSHCab2y6jHESFtkR6JY1WSKhoxaxOQcMJXQREjApROtFijoHDkM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.4.0
Release Details
UpdatedApril 7, 2026, 2:58 p.m.
Changelog

Added

  • Sections / fieldsets — Group questions into collapsible sections with an optional title, description, and conditional display (showIf). Entire sections can be shown or hidden based on answers (#38)
  • Markdown in section descriptions — Section descriptions support Markdown including images (![](url))
  • Drag & drop into sections — Drag questions into a section; sectionId is auto-assigned based on position
  • "Move to section" menu item — Assign a question to a section via the ... menu
  • Specify notification recipients — Form owners can now select which users or groups receive a Nextcloud notification when a response is submitted (#46)

Fixed

  • Form not submitted for logged-in users — Forms with login requirement now correctly save responses without requiring edit-level share permissions (#43)
  • Scroll broken on public form — Added overscroll-behavior: auto to override Nextcloud's layout scroll capture, restoring mouse wheel scroll on Windows/Chrome/Edge (#44)
  • CSV export shows option IDs instead of labels — CSV export now outputs human-readable option names instead of internal IDs (#41)
  • Images embedded in ODT exports — Uploaded image files are now embedded directly in the ODT document (#45)

Changed

  • Toolbar layout — Editor toolbar splits into left (content actions) and right (view/share actions); labels hide when space is tight
  • "Add page" moved to ... menu — Keeps the toolbar compact when pages are enabled
  • odf-kit updated to v0.9.4 — Picks up latest fixes from upstream
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureDzTnWoXiqn8l00om8bW1J90Uu/E6uVvP73B5Xkir8WPIlGR51RYdQbCveelGg/ZR3L0GCoTuoJ5HpNm3uY6v2USyyrbQtClFU5ZBT9iRdg54KWOhsi/ubu8pmmPTsBEtZj5HUqHNjIE4WWtEANXSvoX/hZ6mrQl7VJBf+Dsrl4NVHPJGtLvBm18Wq6nqJ6moRsTQLfChnENSeDvxLDDXJA9zbnVSUksdTvx7gDhCU+t7sdbvYE6QgVVs3wQiju32TM+Ey6fMw2pBZ7fY0GfSF2gzU3czSMFKMFrGQGNj7287hBUJb1H2m3zfxYVVLXGxrJcJTMnWrVfoZpzq3qcwA9okRT4sBprsUVvL+PkA4S0ytHGf2C/c6oSSvbJVVku0Ragv1J88kk1Mx/woUaiT8kYerFuO9K2rRJ34IqKOnCjv8DGxYyjrJlfalUb7y1PhqUik5efZEPieOXfk3A2FwvwTIcXioa7oHCispAuajXcg0z5998nmv4CdzEjKuak/vMTS30zE+wQ6s9rBKgw1sCuslhVS5Vf3niWQOv3B/DZfGz19A/nP4IHFAA0QbACBaRkbPrkidSKCciV+OWaNq+WoZMgSBFol6TpAc2AiYuKdCDZjTgG8Z0XfZyhMYnUOHilah0I3ZttjsPbIPh/Ir79xJ8wpoySP3sxMTtmYczo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.9
Release Details
UpdatedMarch 26, 2026, 3:20 p.m.
Changelog

Added

  • ODT template export — Upload a custom ODT template with placeholders like {Q1}, {Q2}, {form_title}, etc. Responses are automatically filled into your template when exporting as ODT (#23)
  • Template auto-detection — "Export ODT" now automatically uses the uploaded template if one exists, removing the need for a separate export option
  • Template portability — ODT templates follow the form when moved between folders and are cleaned up when the form is deleted
  • Table question type — New "Table" question with configurable columns (text, number, date, dropdown) and dynamic rows. Ideal for expense declarations, item lists, and structured data collection (#35)
  • Notification on new responses — Form owners receive a Nextcloud notification when someone submits a response. Toggle on/off per form in Share settings
  • Wider form layout — Public form container increased from 700px to 960px for better readability

Fixed

  • TelemetryJob crash — Background job crashed with fetchAssociative() not found on Nextcloud's ResultAdapter. Changed to fetch() (#31)
  • External API missing pages/pageOrder — API response now includes pages and pageOrder fields (#27)
  • Required matrix not validated on page navigation — Users could skip to the next page without filling required matrix questions (#34)
  • Required matrix accepting one row — Matrix questions marked as required now require all rows to be answered (#25)
  • Horizontal scrolling blocked for wide matrix tables — Matrix tables now scroll horizontally within the form container (#28)
  • Multiple file uploads broken — File metadata was lost for multi-file uploads, showing only filenames instead of clickable links in results (#36)
  • Multi-file upload count incorrect — File count now shows total number of files, not number of responses
  • [object Object] in ODT export — Multi-file answers now display filenames correctly in ODT exports
  • Webhook creation failing — Fixed parameter binding for webhook creation endpoint
  • Form hard to read in dark mode — Public form templates had hardcoded light background colors that overrode dark mode CSS variables, making text unreadable (#39)

Changed

  • Presence endpoints moved to PresenceController — Collaborative editing presence heartbeat and editor list moved from ApiController to dedicated PresenceController for cleaner separation
  • FormDeletedListener extended — Now also cleans up ODT template folders when a form is deleted
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGH6DRDS5w+4R6rfA8rBo3kSIFAG05bjIREgWfDIDt4Y90nrmDC4I1IiCVEpKGAOAsysQ8Np/Kh5pqVn/bgZgopAdfinadLwoyBPqYiDkCzJZmm7vs7z6/7hmaIMWsGIT3JGOotuHSKOsUUVnOYuZUFXzCx8oOg+dik1zHGte+H2klZcYOJ4bo3x2xnSYkl6FR1UQWxx4Ng+fK3aVfs+Cmz4XvIxc1es3ciGLpeOlq0P358f5doqFVIx5RRnEZ4+rFYszO9EJMG/3YR4i7esh1z/wrYX2SOAwQesv9g6PNnwOOOU7a7mmOWsstt3iRmUOqrf83c9wl4j0EUhxxPMWWp0sY8wme+QT7Tizk5Xh/USWHz8+jRWJeIYfjukVk4krYnXGQv9cF97WSYTCAQJ1jpcY0Y/pmp9QFFZeexlJSy60xo4Cv98k1irLGZibjk2hkjFcWJzh0VrgRpynVB5cYuPEwdB6kPzyFLO9joSK8vg7LilCeH2Ah1u8yUbkCI/tootQqNuMbRwLQQ3QJr0o2cPZC0jXYPuJplf3ug+WUeD3WZxouboTV7x6clsDQRSwrNae2QEzCouFa/vSA9lR9TvcyJ8cfdErUmygEYwqHQ/rv8HtLgDmWrDnA8+fYR6vQrrFDqLraFDP5pWkost6MGnqzJRitceO/kA/38JEIvQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.8
Release Details
UpdatedMarch 13, 2026, 5:22 p.m.
Changelog

Fixed

  • Form submits on Enter key in multi-page forms - Pressing Enter in a text input triggered the browser's native form submit event, bypassing page navigation and submitting the form even on page 1 of a multi-page form. The submit handler now checks for remaining pages and navigates forward instead of submitting (#21)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGNkiMJGIKnQR0vX9Guh4GkUGa/uYR1w0RIAWKXmo24z02RTHUlmvBSTUlYc0BWz0Mp5l6o4TDMDR4H5EckmM+OrhtraluRxu0wCt7NIxRao/hVOdQjVeXenGjJKJsxpcJdjFTt3i34wAlNcuurewF0yF4vN1gSgnsq3POapllMUoaCREt07bLzb7i0+QHDsDVgs6uf0xn446Jnih57LbMspuoD6u92+4nNPdGTAbw5HeLeKa2tpMo2dxWc6jDwZK7Za1GUg3t8gP0U5qf2toDaTf7L2KQd01v0dBLzuDSg2QKdAC5QKFSHubRSW/SamUDelPulkB0JsAzsGW2PBciQiEgAzASsXYPaHvWPSjFyOoGa+707Rg9h+pDge3nBPwcaexwhbwQMjdjWn65vMHbTxqLNbNS8/JGpLCcrnOeRsqQUr1xlTPVyxC4tYewE6xZp7jkDOgWfUDNMqcgEh5Q2Kzn/IxaEgW4VuTg9j647VU6KqVww6kZVbCOoPcy74MsBSG7bs4UBYGThpQ0uc5RYUFqOUpUQZhITM8iNZp/8gqnOgFjUiEUvuCEP18mBsPr3SW7bxODUIjrLRIsQzi2vTZiHk8kYNe8o5pEc/Otdp3wNJqlPzqc7OaG0iT1exx9Ad4RmDDgPlC0rfcRk/UVJzWs2KkTyV6iLuL8ujn1X4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.7
Release Details
UpdatedMarch 13, 2026, 2:35 p.m.
Changelog

Fixed

  • Single choice / multiple choice / dropdown options have no value - Option values were never populated when creating questions in the editor (always empty string ""), making all options indistinguishable. Radio buttons, checkboxes, dropdowns, and conditional rules all failed because every option had the same empty value. Now generates a unique value (based on option ID) for each option. Existing forms with empty values are automatically migrated on load (#16, #18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFy0zI/ZLu1i4uixJGINESbnSdRYvFpm9++0NO/yL6X9cXqLSKlfdUiVPHMMBGu08UZjIx3QiNi4tDt4rslkBxR9bPGQtEvhMM9HvmM+DB9jtoLLUVsmLwnSahUM4NUCgNIkmpsMl7L9AGarftcOwtRTg4SINWi4isQWgliswP+7fvG4+m1cGKcgY/2uzhRzdkFMYP5yyXjxt81qr7ejr19q9Zo5E7d8QR3waA7XbDy3zaN8spgCrYvJxU5LY0zkD5edXgZgl1BaWkt44BLuioAjDMrBz5CDeTbtDG2ZTJPTuZC03RhWPWkC/PIeHFSi+ULRq5BqKGayse5lP9JZkk0SHGYhYwHm1ZEIiXB1aCUZBxjSVuLAtSsjprx9ul3FXqSg1YlsDi0yjo/djcFAtDz1lpPkpWheSq6ZuooPYwpKASEuPuItoYZpLdeN76TsJQ5gNFghCETB0dCod0otvAKZIlFW2T7D17J3Hqr9u+6jVidjIl84T7uYMMCAjH5A37DAlKbaFnYJw4+p24+UlnF2ddHIbp5SriQZOuqSlseFX9QxM6ENjuSb97pxdseApfeQkkfU9YiyD04hylaqHzUO9qZJu9BW7CZaXQtakQ6Ng7N+6ricMvLNBAqWs5dBetAdC1EaUh1y3nGuGXAeZc751+9mN4aRKL1spa7gehw8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.6
Release Details
UpdatedMarch 13, 2026, 12:57 p.m.
Changelog

Fixed

  • Translation .js runtime files not updated - The v0.3.5 release fixed placeholder names in .json files but not in the corresponding .js files that Nextcloud actually loads at runtime via OC.L10N.register(). All broken placeholder names are now also fixed in de.js, nl.js, and fr.js (#22)
  • Single choice / checkbox questions not selectable - Confirmed fix was present in source since v0.3.2 but may not have been correctly included in the v0.3.4 App Store tarball. This release ensures the correct compiled JavaScript is shipped (#18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGsNKD/zZO8q+PhEIna48W0VkliK/7j87UZOTEy7+v2KC8acYz8jpOJZA+hNkqyL9Lkj4nIhUc5HEO7tJCEKUtrZOvUO9la6HVrMihnU7X4y9yCttfBeqlxhKw9N3LoVoS1KZ1n8bCgxpPvZMqKKTMwM1tRmDsbENLv9RaKq3EEKIwufYRrzn5RwMY+EdF7j1ywScjqjxYYcd+7euIQi38ATMeuQLTKkpEU/SZSmtciuH4wdRidazcKf/9aceL4BhbgShC/216I9klQ1Y/LvNaiKaEf7wXeAlpWY5zBhaSzfFjRDLWuzXJKTXpJmP2sxk30a2PO5zZpOFpFIJJreonrkxrb2RPrOh24CTOm6hjnTh3PK7uIgXBmXunuWjduGBk6E19DkjkUdljloipkbrzNNhdukk8ppBemkLDFgSosEw8y8qOta7jsNxiiMnbAzs4CZlefS0o61g1Of3tb1rzrEfI0eaT6KmMpO+SPqjoDHTvAGHH2UdYR9cJKF1ZUq6Juh63oOk88zsuM/LvkP8NVzQGuRokdOo8cmTIaNAlpE2GVJMnqtjYunf9I3O9ivRQHubHkXtesJqn3GAt4cxX9fHYDqb7xULqUcsRRrXpTQivsNrVF6c+udvhySUczVdaZ+B6zsae3216I/bZV5cwLGtXAFSuz3psHEMvIiVZUI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.5
Release Details
UpdatedMarch 12, 2026, 5:31 p.m.
Changelog

Fixed

  • Form submits instead of going to next page on multi-page forms - Previous and Next buttons were missing native-type="button", causing the browser to treat them as submit buttons inside the form element. Clicking Next triggered both page navigation and form submission simultaneously (#21)
  • Translation placeholders not interpolated - Placeholder names in German, Dutch and French translations used translated names (e.g. {aktuell}, {huidig}, {courant}) instead of the original variable names. Vue's t() function only substitutes exact matches, so the raw placeholder text was shown instead of the actual value (#22)
  • Screenshot filenames with spaces - Renamed all screenshot files to use hyphens instead of spaces and updated info.xml URLs accordingly to improve compatibility
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturefiwy4f05zwUTsL/mo55TXaZGL/hFV7q1Yz5FrIO0yq/Std4g1k+r5725ISI8l1/kSQJYWEJnd1srbPvVD7PsBepvin04T2N+Dgac3j/gizz3BMba4U/Ix+qwOWGL1QGFBYuvnzTqpMKuZS23LwO65+hwMDporNCGDQa1o5ub7n0LthvLJ7q3xgRb0GsKCLHCV0jKBLOcPqYSIx3/Kckvd6CQYvHXudSeucheXwqb5xKhl0jFDA58g4G4axuEZ/vRzhFxsTTQZYOS49nTceAj/xl3HT6zYiCO0GfsUmqDrLmazpzH7E4TUePzrlCM04j9wyM4EchuXAqkj1NpazZx46OsMHl+t1/Q31ro7P1iYtrVLoMpjPFQa8bCR1VWrOjgnBPjw0gQWbhaOtGByyJg4udpT+I00+jUuKCiT398EUEonFRBhysf8eIENGNlRHNH/3yjJSLvm2S4iaoBABUWBSgZWhQvLI4Ep9jNoCeM8jcumOQWnMuE/HFyQB4QSNVevBaayo8VMv6Tj4Zl8PbnldAA2zHFc4EaPNek5OWIqLhEnKk01wC5zfsKFysDmOvsEfZfyvG0LaRApp+ioCM5+dsict7+LN4b86Ib7NOMJ+BQEF6fwWXN60KmptUl8OBCepOI9KyCE+MYqqzLUqh3+/P06yBw166eTUTD/kdxdxo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.4
Release Details
UpdatedMarch 12, 2026, 1:32 p.m.
Changelog

Added

  • Date/time range restrictions - Set minimum and maximum allowed values for Date, DateTime, and Time questions (#15)
  • Date/DateTime: NcDateTimePicker-based min/max selectors in question settings
  • Time: native time input for earliest/latest allowed time
  • Client-side and server-side validation with clear error messages
  • Date picker automatically restricts selectable dates to the allowed range
  • Markdown support in descriptions - Question descriptions now render Markdown formatting (#5, #6)
  • Bold, italic, links, images, lists, headings, and more
  • Images in descriptions are rendered inline with responsive sizing
  • External HTTPS images allowed via Content Security Policy
  • Links are auto-linked and clickable
  • Answer piping ({{Q1}}) still works alongside Markdown
  • TTS (text-to-speech) strips Markdown syntax for natural speech output
  • Condition editor date/time picker - Condition value inputs now auto-detect the question type and show the appropriate picker (date picker, datetime picker, or time input) instead of a plain text field

Fixed

  • Date comparison in conditions not working - "Greater than" and "Less than" operators on date questions always evaluated to false because date strings (e.g. 2026-03-12) were converted with Number() resulting in NaN. Now correctly compares date strings lexicographically (#19)
  • Question reordering not visible to respondents - Dragging questions to a new position in the editor was saved correctly, but the public form still displayed questions in their original creation order. Fixed by using the page's question ID order instead of the form's question array order (#20)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFrSf68Mci1D31suRUVNzg+pPPiKxkYfn9Ss5QgA0bJWTggh9x240M4+3KrF+MrfqolaiBGwGbpbE6qtD6pgjFc/nCV3yQbo8phgErx5kk9q5tA4qLK0SKG5C7dqPwub9Mi2BXxE9/tTDrAGyrAOo/CHQ0wZ54h7CM/qO9lU7aHUNTDrbXf9Wa3MUd2O3B0hqAShxnDVFuG1fNpW59r7xd4UfGG1nsU7BCH1ahUB4Ha0P/JdrlrhHRia590gZZ6oXvm0wofA3bDOi6ETMHeuPBIa8Z2zZH4j8OmADhqzZyekL9YtcbkP49ukmWUUP/KjQgs8AoPLefpPIDvuEAjJ+ArnktsWh2MwkaTlAEMMlifZro1/yRpzZyDXb5PcJS7JJ4Egu8htlRc0RQPJBjzTogUAZeenzDq9R1PvbAI8c2MnaWQ8kLGmzi+eBkbkEa6lj6Z/vZSlnkHQqpB+HfY1C6X7WGzqZDxgboiVi77tB9ASAphvPPTFU999ofpiv53bBd7t/aNHHu8u/V6oFj0NHyA1p2ZK8Cgs4LG5i4XK+TPn9zfnvXQFEDzJfrcAK+6Wa6UwR4p3jpO49R/k8Wh3AFKJ09l9bAPBu+FUlntYsq+tnKaGcQdJRwmdxWn+yOf/5I9WZ/aYfzjI9H+dMS8caMbChabJz0TSDErq3PHZBShM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.3
Release Details
UpdatedMarch 11, 2026, 6:24 a.m.
Changelog

Fixed

  • Public form scrolling broken on some Nextcloud setups - Contradictory CSS overflow: visible combined with overflow-x: hidden / overflow-y: auto caused scroll to break per CSS spec. Removed overflow: visible from all public templates (#17)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturefEKSadx+pOeuWOEx0FgzF2L1QVc2sRFmYT7t6eKVTQYknBB5xhu3lgYeQDD/2vhjGQy6YQZeBZpV/Sxm8DA54aYVdFFfAgiN5EnvBtWfZNm4hy2V8UjSFJqXJfmR5DQxFI6emX3qagKjHbqmcCP9chndr30RCgzomENXQKETzY+yIiyldWY0YUMQxTQAn9vPfMjPGGx97l679QtqcEnhvXkgbPCU4L5Z0pBk0OMAJidQMsyGQDc/5hXRNj5JWvvzEtXxqPBbjMNrtewICTsVEx4QMHUlEeoBIJi86jM7ERII/dNl0WYYp8TAJuW8qELiSD21vhe6yTOIZCP8XrZVuXQoC4iIHghAq0myn6rWfpt4E2lzbVjPjRSu4xKegeQ1InylrcfiwqVk97QfYYgY+cj0Kals5l9F65P0UMbU3qK1AezJhWyprQaq9/CCIpP+aFXMA8WYqtlslWKp2juyvNqsaZdmy0Raa72MSrK4e6FnhmikZWBMFoIP63sS272wJPr1yOGDpBQXbGWWlBZmNmzFGqj6MGqI6aE4wsFEmMAG3/yhoeJ9x9NtxxDslehs82o1ASuBCud6sXpzuWhBtNuEi/rgw2sDojY+sdKs/txftcbk7Sin++ExLKnqVeyGoa/Jdv89aUgxFm6uXCVn/6jyqyojgMFtTz14Ip0qz70=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.2
Release Details
UpdatedMarch 10, 2026, 7:20 p.m.
Changelog

Fixed

  • Single choice questions broken - All radio buttons were pre-selected and user selection didn't work. Fixed incorrect NcCheckboxRadioSwitch API usage: model-value now receives the selected value string instead of a boolean (#16)
  • Multiple choice questions broken - Clicking one checkbox selected all options. Fixed by passing an array as model-value with proper :name and :value props for NcCheckboxRadioSwitch's array management (#16)
  • Dropdown selection not registering - Dropdown questions showed validation errors even when answered. Root cause was the same NcCheckboxRadioSwitch misuse in the underlying component (#16)
  • Matrix radio buttons broken - Matrix question type had the same boolean vs string model-value issue (#16)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signatureyz98Hn5Q8sjMWsh3r/STylb8Gr89l+FyKqh1aqGeVv5pv30YipP7O1Ho4zEE6cXJgBLREMl/R32EJd5hVya56kVy2vhEESL4Miu0ElnC6Mkm+BZjOb0YrDwV4LJ86auCuS+Vh0QAeyHlNBzpdxfAHW0IeQo5jSAPRAkRNTBSuYacrINezW6o0fMscXUINTDHTeboIgZxa/bF2XWof2dIMTIOVEdLOJwc1PXTvNg1NSsg4LuxDFenCNrMOQQnDEvbDjbF8ERRPhwaiksu484OjL8EqREnlWYG3kLh4DKZq6fA+Iny/7znDg0kt4DwstwaPziCx0MfEbPXlP4A8T7Byb2YCkmUe/2FgB8i4BsviFT1EcvEF9jV2+A4pVY+Ud7Hvu7Ns/6SVHeqeG5s9V5ApJljo3bjrOixAnRKG1LTiz7+MbJhTX4soxP9WOCquAjNtXIbwG4YUz7vE7FIH4nAQV6+9PYzofhxktmCep7IqDp2FtvCj/Wx5irvo3EC80gxcSePncDLswlflI66P8g2VGC99GYXrnFx2UybcbATSEClo3ahAX3A+4faLYe8EV7QQSvhCWRbaRaNGxz/RnjReQO729kX4FG+o1pLWfNiTxEiARveoQ6GckWq3EC63DupTTNL9V2Ue5WPUFKAnui1UpIPRzPVx37+8EA2KMKjUEg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.1
Release Details
UpdatedMarch 6, 2026, 12:01 p.m.
Changelog

Fixed

  • Added missing translations for all 0.3.0 features (page routing, collaborative presence, draft autosave, QR code, accessibility) in NL, DE, FR
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturelEVUWpC9Qe7GphfENOubjL5H1piT7pdcg8tZaB2SWRUKsd6IrEv8vxW95fshNG7yCI8MRTNOkVQFcW+TVx877aRh8YXDd0I9IfDwLc/H8wQHhSUABZUBZnrDrAg9VqVTMEMpjTdJCDVyb3GNDbCqaY0hvEta6YAglxZtx6tptwWq1PSVXBzlQLIzpV8Bs5nmnLt2IoFkKTHSNLWGf5SWKL62/I/RcS1VYzTa4W5RI1+irZ709oGATMDZjgc+QDliyL3Lryk155pMypaGfQLRfNHej00OzFwSqAGFHA2x0u6NYD+FbmrlF0UYUhFR9El+2o6lA27KvtHVajs18yiIalAqEt3GJDjKdiSA6mioZLwWTufui0wv7lW+28v8PKUddl7uu+UJZFTaczv2E23x8mHHLWRybIt9D33pjT8dDb8tAF/sLqnlKvOm4fHkE0CQeUoJQ6WnlDjq2xyla8hrZ/+bnK5sYiLpV1DN9d79FwQkOV9wVJX0m3O/FGQnudnmmnx6JTM5oJ7lEoTqVnNh8C/XGZcZA1WUAyTyvvDJvssjRa2lJFGk0/opsnbRQDtZBDnL2xrhroK9NJquucWc7O+FifgFhVYLz5ILAOprGKsnUTCPAfaf0lyWlmvFwQ8BGMG2RCoAOP7lncDL3cAYORYIUtgIHJgb/KjvxxuaWK8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.11
Release Details
UpdatedFeb. 18, 2026, 1:24 p.m.
Changelog

Changed

  • Nextcloud 33 support - App now supports Nextcloud 28 through 33
  • Replaced deprecated IResult::fetch() with fetchAssociative() in StatisticsService
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturepj2pVxyGgN68FQKxKvx1c7236SGBbg27rILExPtROf2hK8AcuNPNISmg5NUS62eg3Ke/VsHWwcgd288FSyY9X6bhKiLlVYBMVx1PMEIGO6RIquK03cXhrcKP2uQAliwoMOKsZLgkD5yjlwQ0Bj1XbZ077wb3c/5343zmBWFbQtwTlZ+M1tv6q7Uy7riorsIiVG4ddL5MM3uVQOWozbOTUQjHaFt/e8WA1eF10tRI5omQobKbdqA+K77ffP4y4fZRJDUpZ6TLpoYY/B5HfgBGVzrBW+sMRWTSaflQkndm5fxj1dsGnXOTiyWPy9Us0ElWK6KjtpkUGiSmEcvvqLV8nXDTrrSQp5KLdPEfQDxShU4NVbePabHP7x0n5Jah4U0nyUFOisJmrX9F557/bN+Fx293nKd992O6GMPlpsgyC7Nrpo9Q+MFmEIH+/k67uYTUQ1HiHjrBl7t+4lSy/KVpG7BQPm6LDGrF6T42BskHixwPVLXLTkAy51CZHB6TxDPX0YXVVFh8+55cS6vVglIWfFx4+hY1NMwrbDPnI8ZEVMZOaB8Nu3MskQBnhL/lnMYsPEMR/j/0/ejFt3HlB7pkhSIZj+MCO8GaKVdsfI42hb/u41aIlMBgjkmcDVZy5xK5JZgrAOtljyyOi3NXHYSuAFVYpBC01vK0RnpvcjQtCVs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 32

FormVox 1.2.1
Release Details
UpdatedMay 12, 2026, 4:20 p.m.
Changelog

Changed

  • Pricing removed from admin Support tab — The Support tab no longer hardcodes subscription tiers and prices. A single "View pricing & plans" button now links to voxcloud.nl/pricing/#formvox where pricing is maintained. Reason: keeping prices in the app required a new App Store release for every price change (review time: days to weeks); the website can be updated instantly. The Support tab now focuses on installation state, organization details, and subscription-key management.
  • Telemetry transparency expanded — The "What we collect" list in the Anonymous Usage Statistics section now accurately reflects every field actually sent in the telemetry payload, including the organization name and contact email (only sent if filled in by the admin) and the new Extended Support flag (see below). The previous list omitted these fields.

Added

  • Extended Support / Enterprise flag in telemetry — The telemetry payload now includes hasExtendedSupport, sourced from Nextcloud's public OCP\Util::hasExtendedSupport() API (NC 17+). Returns false on any failure so a Community instance is never reported as Enterprise. The license key is sent alongside so the license server can cross-check the claim against an active subscription — the boolean alone is unauthenticated and could otherwise be spoofed. Required for the Nextcloud ISV partnership where bundled-license customers need automatic recognition.
  • Description links open in a new tab — Links in form, section and question descriptions now open in a new browser tab with rel="noopener noreferrer", so respondents don't lose their in-progress form when they click a reference link. (#87)

Removed

  • "What a subscription includes" checklist with green checkmarks — content moved to voxcloud.nl/pricing/#formvox.
  • Hardcoded pricing tiers (Free + €19/€59/€139/year + Contact us) — content moved to voxcloud.nl/pricing/#formvox.
  • Standalone "Learn more about FormVox" contact block at the bottom of the Support tab — replaced by an inline "Questions? info@voxcloud.nl" link next to the new pricing CTA.

Fixed

  • Submit failed on password-protected public forms — After entering the share password the user could open the form but every submit was rejected with "Password required" because the frontend never replays the password on subsequent requests. The authenticate flow now sets a signed, HMAC-protected formvox_pw_<fileId> cookie (1 h validity, SameSite=Lax) which the share-gate accepts as proof of password possession on submit and upload. (#82)
  • Date picker selected the day before in non-UTC time zones — Picking 17 May in CEST was serialised as 2026-05-16 because the previous implementation called toISOString() (UTC) on a Date constructed at local midnight. Date questions now serialise using local Y-M-D and parse YYYY-MM-DD strings into a local-midnight Date so the displayed date always matches the picked date. (#80, #89)
  • CSV export still fragmented in Excelfputcsv() used PHP's default \n record separator while in-cell newlines were normalised to \r\n, producing mixed line endings that some Excel versions interpreted as a new row inside a quoted cell. Both writes now use the explicit eol: "\r\n" argument so record terminators and in-cell newlines are consistent CRLF. (#83)
  • Question labels shoved sideways in Microsoft Edge — The flex container holding a question label and the TTS button could grow horizontally beyond its parent in Edge when the label was long. The label is now a shrinkable flex item (flex: 1 1 auto; min-width: 0) with overflow-wrap: break-word and the row allows wrapping, matching the layout other browsers already produced. (#84)
  • "Move to section" did nothing when Pages were enabled — The pages-mode draggable did not listen for the move-to-section event from the question overflow menu, and questions dragged under a section header did not become visually nested because the wrapper that applies the indent style was only rendered in single-page mode. Both code paths now match: dropdown moves work, drag-into-section auto-assigns the sectionId, and dragging a section header carries its children with it on the same page. (#88)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureeUuQ4SynmfMaIwd1NZhIUdQk9Qg7DxfCKekVrIqSqs0vDAebIJ4hacbNi/jlDikk+KZ1a2BNwd+mIGiGZskETOIzcz5l+tQsT2+0gorPFzhXx+A0rzMIFpEm3cIN+N3us4RG05WXwKDtWClbtmJ/w6o8ZcJk9wEPbVQlOcv6ooT2JmRtvTcFpSxyLw4ViPPJjdpUdCixrXdad1qN56T9kDsz9voTlxWEmr3cdUTcG9Q4FxhkPo9yhsIO5GQtIqYjHVe+YDGcUJz8xGti/PfyQFCrDFllZrYOJeXP6VcYnE48WvrmvPuXQ7qpDgYWMjJsJInsuuJysL8tnQf/ySxy25zZy+Irt9FgUWR2w+fdQ6JYH9UXeUYuCFNucK0ca+EwooLaEO4RXwKhVcWYQBaPD2kldVHuD3fnv6iBUPma/xPLSxk3fdzcGXsEIcKwqsZrGs4D2Vf94NVvRKbBWRi7A5HnIBm/kGx90ZQGzFHLcIdGkaS3rU4mE5rzuhB4hKej1LQzaeoBR+ESdulVzzCXr6SvEwVbOZH/b46zxYQ7AzbAqpyOr7J77J3Uvzpz7Hj1Y0t63daVqjEOO87tQyKoTAvbPihmYrnbA/HerQhgyfP38VomWLpUS8/y10wx+s0sF7ewgy/PYew3DV33AORdQZEewY4Bzspo4+JzC0uFB1g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.2.0
Release Details
UpdatedMay 5, 2026, 1:40 p.m.
Changelog

Added

  • Bot protection that works behind NAT — Public form submissions are now protected by an ALTCHA-style proof-of-work challenge solved in the user's browser, replacing per-IP rate limiting as the primary anti-bot defense. Cost is paid per browser, so an organisation with hundreds of users behind a single NAT IP all submit without throttling. The challenge is invisible to legitimate users (~50–150 ms of work in a Web Worker), self-hosted (no third-party service, no external JS, no API keys, GDPR-clean), and adapts difficulty to the per-form submit rate so attackers pay more under load. The signature is bound to the form's file ID so a challenge issued for one form cannot be reused on another. Single-use replay protection via Nextcloud's distributed cache (Redis) with APCu fallback for single-server installs. (#76)

Changed

  • Anonymous submit rate limit raised from 100/hour to 25 000/hour — With ALTCHA now the primary defense, the per-IP limit becomes a wide safety net rather than the front line. The new ceiling comfortably accommodates large-organisation peaks (think 10 000 employees filling in a training evaluation in one hour) while still bounding pathological abuse if the cache backend goes down.

Fixed

  • Form description rendered as plain text on the public form — The form description on the public response page now renders as markdown instead of literal text with the raw #/* characters and collapsed newlines. Headings, lists, links, code, and blockquotes in the form description, section descriptions, and the in-editor markdown preview all render with proper visual styling. (#63)
  • "Form not found" / "Access forbidden" for logged-in respondents on restricted folders — When a public form had require login enabled and was stored in a Group Folder or Team Folder the respondent was not a member of, the submission failed because the authenticated submit path used a user-context file load. Authenticated respondents now use the same admin-bypass loader as anonymous submissions, so the share link plus token (and any allowed_users/allowed_groups rules) are the only gate — no folder ACL needed. (#77)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEgXx1k6T/jb0h31O0h5rzjkRhdCiLPnChW/hOo3JMOiATKU1BeP/KDCUw0rW9RpOhe5j7ySM8dogkKzsxJJvjNZCl92E7AeK5O0fDtALSSQnCW7P86vIUrB1IIt3RgwC9SEF2XLAF69prmf6JlH18Jqp4qMj6fw64GxrSh/mASu/FkmllqDoJBkml9jgJ578d7/ea7wEc4ugJVPKqVcENaVfYEaaprkAitesxpgArulem3djQLl28nnmAkoMZpXrnJZ3jr1zIFp6DSuCUpgnidtprxi2F8ncqglerVMeYXvohnBLzAP/yt+3LELcPyyDduursEkX0Of2rrjNRN9FGgtEE+OtzjW42pkbE5g0SvPS2s6FZR8dZukCcvvet7QE4CONVIDC2hDhNmCfqlGj3eaIkZzeiO8WLElqTX7LXEEB5oBBbiNUCgcelr3Lv0OZUb2/KtOlvASuR2hP2sLHDosmNpKnf83DpzfT8xCWz7BhthOxM0w/ErvfTpXspf/9+cJ8zExk+D9F38yoFGAf71m/ZDL0h363NZWb7tSl2mQtY2OF3NfBVicj5RFK6DnIZlD12UuvD/cj6dJcJYWThDT/OXrS3mvOMf2+FBHeLfi42ycGuElOMLqeVOo0PrOYE/O+H08IevLOq6JplXchq9PvlPXszN5g3fg3VqLeNuA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.5
Release Details
UpdatedMay 4, 2026, 4:21 p.m.
Changelog

Added

  • Markdown editor for descriptions — Form description and per-question/section descriptions now use a native Nextcloud-style markdown editor (EasyMDE) with a toolbar for bold, italic, headings, lists, links, images, and preview. Includes a custom drag handle to resize the editor vertically.

Changed

  • Form editor layout redesign — Top-level form actions (Edit/Preview tabs, Share, Results, and the Pages/Branding/Settings overflow menu) now live in a sticky page header at the top of the editor, instead of a horizontal bar that visually appeared to belong to the form description. Question and section creation moved to a dedicated "+ Add question" rail below the question list — the spot where the cursor naturally lands after editing the previous question.

Fixed

  • Conditional logic broke for multiple-choice answersshowIf evaluation now correctly handles array answers from multiple-choice/checkbox questions in both the frontend evaluator and PHP backend, instead of comparing the whole array against a single value. (#71)
  • CSV export of table answers showed internal column ids — Table-type answers in CSV exports now use the column labels from the form definition instead of internal column ids. (#70)
  • Orphaned fields persisted after question type change — Switching a question's type (e.g. from scale to text) now strips type-specific fields (options, scale bounds, rating, matrix, table, file, validation, date bounds) so the saved question matches its new type. (#69)
  • Newlines in answers broke CSV row alignment — Long-text answers containing newlines are now normalised to \r\n per RFC 4180 before being written to CSV, so spreadsheets parse rows correctly. (#65)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureTNODkyXkWcBDXqO4gs8raDC+CgQ/jQYD6wpAb4xj/yTwHRnv+VoA0emEpheTceqhy3gXPqEdX3lRZugqqHQ9fLi43xrdloAfG0p7y9lwjxm73ZhfYAEjHE+LAstRFWkxZgVqYcGUNG6dv8oFlip0xhgwEvH2RpGANcYmu9+7MBJpzU4TjLWAbkOLuFjFRahVFjWC2zmwDMK2X59qwfuRZhkUAPFz28eTsqEjP79p9ro7olkR1bBlySCTWpXEthLpwkJh4LrNC4lIIXM0aZoNlJJQniQbGIZQBIir9dkwHXorgJHGM87kQlI0IDDL//NsJ5cCcUcCuVDTQ9M0YSL0MUG6AjueUGkO1eEK/ESuwGjZe1wKzhqKi63jM2ACMTm6XAAl8v6rvORSvxIG6WPNIyLFnavxjhAmIQxX1e8nHqyZLL/PFLVeqOXYE+59Wp/rBSkhgSXOcYP6OwHMtaX/deac6H0KFQgtAdfa7bD6Wkp2TnN7loFyoqza2G5h0Sg25RZuzxYBwbCCkmflUtl0M80iyn6nwW7H19swostFBSaDyFrZX+lhTGQYsr7nKlio7BZtKdUjH4xbSsjJf4EGF8I/9GhdQytGpKQ/qy5i8FUYfiBmrx5BJg/oAHoER5Pp0oP0HQMWwv/1giNyXMp2dcuLWhP2hvAbB1IlBgI3ae4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.4
Release Details
UpdatedApril 24, 2026, 3:14 p.m.
Changelog

Fixed

  • Description textareas overlap question actions when resized — The question description and section description textareas in the form editor no longer have a resize handle, preventing them from growing over the per-question action buttons (edit/delete/drag) when dragged. Matches the existing behaviour of the top-level form description. (#62)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturep1UDsZKOD4hCwZY5bWgHJ1sTTRcCX+XrHdAlahJK5jV5EEDXag0tNIGqM4LIJOf7xHcn7rc3Z8TXxnFDoq73CXs4qBYETDCXhrmh8QrcRYKDLoSiZGQmktXdett83/EHN2Iwp5NIiR311QzukbAsFzG3wpZzDDbJ3qsmYv1w+K8mEye7C94JDmeuYrFsCk2LlnSIzNGy1yKDUmNqvPiHIAXIkp1ZDO9YoSiV6GavlNIqxsoa2BEREmgRKcUjxBuZZfz3YS76CHOVa5I28IapwspdZpzOB0nsLrgkSwWE0ljFK81X2OgYFlBTuV4ZTO+aan+69S0F/GHXQXmyi7udAmIGWge2kFim3Fz1ER+Q08lAATLJ1OaxkoL79kj3s32kO5U7d87tWaJKq321Rg9r8x0CgBG0iTUp/eCN9MRj2zdlTd4dLenLYDA4kbeXiSUZ1aBahzlVQ62X0eJLNhjxY2lz7ZhlmmTUtQ4luaxMlg4Yq854HSnzyXxtalC664EP53xMUSo5umFbE4EDAPHlfKaQwkGATg8ar6gocXvy28ht56jAWPgMISq4duRaV0/caEM7m3VwdlQihiN1zrpaP3mgmtHgdMw+ot4jYNr3MCbaEQO06L0zGNe1nLk0gawa482BU/Zej/t3uBWSiQEJM9e2IxF0R/VZGeCy96oHDDc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.3
Release Details
UpdatedApril 24, 2026, 6:53 a.m.
Changelog

Fixed

  • Webhook "Enabled" toggle unresponsive — The enable/disable switch in Share → Advanced Settings → Integrations now correctly reflects its state and persists changes. Previously the switch used a deprecated Vue prop API (:checked / @update:checked) which silently sent undefined to the backend, disabling webhooks without feedback. (#61)
  • Admin statistics no longer crash on user-backend errorsgetUserCount() now wraps callForAllUsers() in a try/catch and falls back to 1 if the user backend throws (e.g., LDAP timeout), keeping the admin stats page, license usage reporter, and telemetry job running.

Changed

  • License usage reports now include activeUsers30d — The daily license sync (/api/licenses/usage) now carries the same active-user metric that telemetry already reports, giving the license server full visibility of active instance usage.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureBsfsxecsMB2+i9+eq9JiyvP52vlLdV0MWJ3rBMLb88aKwbg2Nn51QOCW9htSIsOkmgpCUFGuXHyMm/lR3mFG3krH71WaUkBEEaoS7ySiUHq3Pl+8SQD22gt7wj6a+J/MTiZS7mObQtTYw3GzatusxyxgM/+1KaZwJqZxQ26CFY+pZXxxcSsfYLXnJIZB1zj4BY5rN09gfwM+Zw1PWXOJJz/Of5IeoFCDc2RdVE08zXQlfYVK3iHSb4naGwjTAPKwvmWFRpL6vCYj2E7qSykaK+2nK4av0myrYK8+ldNfi3Zh3bmkdXKYM2yDpcU9ijp0pCk1FY/apY329sr6HYBPKuqI0Ikss4YUVEBLaRNBA+DM6kVkAe5ihE1oKIsB/9Fmu6pPgQSxM9rYlw35xHgv5xcv3mP2ZiaVJds4vC7foRLobAfvUgje/eLoBELKBvAT7P2J4uF8n7F5XT3hoUciq638db8QIivn9HP83hqAhT8kY4mvXzkb2OJhGzumslcP9YDKfAD/fAPfJhDDDOSxTgSYJBw37RuG1eYMcGcvURw5Qk+7yU0eNtiWhr6zDVgu2YCoUK6ZRrbgJYNMZ0ur7Me4QU8+7AeUArbZIeajA1nCtqcPk9xmTAXCiNARtv0VZ8RdY1RZ5iVBOnK5+SbxHGBbQ3mZNZdKwzFAHhvsJOA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.2
Release Details
UpdatedApril 23, 2026, 9:02 a.m.
Changelog

Fixed

  • CSV export garbled German/special characters — CSV export now includes a UTF-8 BOM so Excel on Windows correctly recognises the encoding (#57)
  • Results chart legend shows internal option IDs — The chart legend now uses the same label mapping as the charts themselves (#58)
  • Unanswered questions blank in Results — Unanswered questions now show "Not answered" (translated) instead of a blank dash (#58)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureANC8GYEPpin/4ns3c7w+0sCffcPTLl1k+FArDTVECdld8uv6XX+32VP8CY4+Fz7iSF8MdPZ+A1+BoUmqXylSavw10zO/XbhGAU+TmjxyjwkJTE9cOTs876XBFP7lhOTqQv6C8sivKoTEc1N5YTY8gcyqO58hJgJML+4rqIJSfuUTBc85r75aBbQAMeTz/0AbVDsrimgRoS6HszEzj0J6XM/egGkg1wJQk9oXFB9ijTlZQUzjSPbRmONRjrcQEc9WfR+OKTFfhLAQNsr0bRKw/8jUksHTNRrxZ4tPsNfBX6mM6rHJfBardsGI+tSBZPvtjbj3Rp6akuxgLV84HzdUmsDPkvsK20AmPdPh3lotSNMYNSo/Qo4lPEzyJ30U6Zq8fcCBC6e9izKntJkUwPHXNcFtIuuVZiC8ZxpItE5k2tqXE7XbNJoDITZyVk6BVnFRUWXxh0IiChBnYHPEm7l2oAoJ6tvbkeKCIgSYNVK+FgBjehStT02YEk9uxkVjaeQNAn6OzclbE+LgjI2F5VjYZALk0QVmsKD0QFn3QyCG02sF/6fTzJPl+lP12+s4S47/WTIxNEJNLhPU+tuk7bF75BSUqqG3QGgIvzeFNBrEDKhSwA9g5Oa2YiWZEPRnq0ZYyL2rrXjHS5Nqo6K35AAd4xYq51vfpXOQywSfVFA867s=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.1
Release Details
UpdatedApril 23, 2026, 8:21 a.m.
Changelog

Added

  • External storage support — Forms stored on external storage mounts (SMB, SFTP, S3, local mounts) can now be loaded via public share links (#55)

Security

  • Updated fast-xml-parser from 5.5.7 to 5.7.1 (fixes malicious CDATA/comment sanitization and stack overflow on long tag expressions)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEiNCYJXtZ95soBULwBnHUYWQ2DhP3zeiwzU0RXYPEwvs0R9/ydEjCtwRud+c9PeNLeT1XMvAmP39radRc2OLgD2L12CSJaWj3IbYvSRVKAlnQFAwS44wDHmpuVf1dGq2Tr1Sfj7lFn+0ubYW5Xw1Pmqjft6X1ABtMW9sHCUQbdB3DwfL/EB0M5It+/iVDe4Z3OE5n7tiqhVe4vuFUxWOPqavDUqXS8MjWLMZB7SAJ8IXaF4kKG63qHZBfo3npKrTbbAsIZOvvy5rFzzD63brSd7i4QybX++QzMXSM/hYOTo9pGTMAgfmJzXCmDRn5s2M6lS8mKOOdLgsXMr8hZekJtuR74CZz83V7GyYXZEhe74D5KmiFhTajT8opzuwnQ3BLojEdlumIKzqKoRlwuMT2/28/Oz+S41OP4qmhRGx/Hztht+ml23/mJzIqzpZCulXsdb2U8j5c6Py38lDauvWE+Q4Xt3/yUjlFJVj3KxFQXTxOWUKzfsrU6Hn0T/wDwVX1XiRG2elCqAehOXdWuQn2w4dX9jcKQ0s3WTY41QtqAGKVAbYbQ5ROesX8+I8WLL2mIzkkDIvGtxz7Q423R1cA8bQzFNpK9sM6Cs6yP6Ro4sQtZY+qIAMTszuwHDUCglOgbMX8XVFd4kF1obfF2AupHWeoelvDEfxL4zqyCNHkTE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.0
Release Details
UpdatedApril 20, 2026, 2:09 p.m.
Changelog

Added

  • AI form generation — Generate forms from a description, an uploaded document (PDF/DOCX/ODT/text), or both, using Nextcloud's built-in TaskProcessing API. Async pattern identical to nextcloud/assistant: the request returns immediately with a task id, the frontend polls, and a background TaskSuccessfulEvent listener materialises the form and sends a Nextcloud notification even if the user closes the browser tab. Includes heuristic truncated-JSON repair for less capable LLMs.
  • AI conditional logic — The AI may add showIf conditions on generated questions when a follow-up is genuinely only relevant given a prior answer. Values are snapped to existing option values; forward references and circular dependencies are rejected by construction.
  • AI admin panel — New "AI" tab in FormVox admin settings with provider-availability status (live-detected task type), per-instance enable/disable toggle, max-questions-per-form slider (3-20), max source-document size slider (1-25 MB), and toggles for source-document upload and conditional logic features.
  • Scheduled opening (share_starts_at) — Share links can be scheduled to open in the future. Before the start time, visitors see a "This form is not yet open — opens at {date}" page; submissions/uploads are blocked server-side on all public endpoints.
  • Per-form branding logo uploads — Logo and image blocks in per-form branding now upload to .formvox-branding-{fileId}/ next to the .fvform file (mirrors the .formvox-uploads- pattern), travel along on form move, and are cleaned up on form delete (#53)
  • Result summary shows labels — Radio/choice questions in the Results summary chart and legend now show the option label instead of the internal id (#52)
  • Full translations (EN, NL, DE, FR) — 43 new user-facing strings for the AI flow, AI admin panel, scheduled opening and "not yet open" page are fully translated in all four supported languages

Fixed

  • Share link date pickers don't persist changes — Changing the expiration or opening date in the Share dialog now debounces and saves automatically instead of discarding the new value on reload
  • Notification icons missing on mobile/desktop clients — All FormVox notifications now emit an absolute icon URL (#54)

Changed

  • AI form generation is off by default until the admin enables it (unless a provider was already installed when the admin first visits the AI tab, in which case it's enabled automatically for convenience)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureQk7s2eNDcOC+qbqnbRWxqe63swdWDcu1YoTXk2BzNHTFVo7+JUP5+fsf4ZX2PYUVFcx/3n0/p1D+7C6vdtNUqxmAO9wKE3+MF+xjPMwyZrK2rJXVaaolGkfoVPr+PgiHlQYxd9Nh4F/YmkllR2uVTY1tN5QzDJas7ISwmPc1T/ArKlMsXQ0nlsKFhK3XEHGJ8TEWC06imVE8RKQcrn6G70/qwFYsdKopf/DjJEdhtcxTkd3UKLH6NwVILx1rktFfcd728U2HsvrS8LEBgLUd2zfUYJzfe4f3oI76KvzeYJIBOOje1Tkd59UbrrhJylZwWD3qxI3PgHiIh9mqgdCGFX9xSv6nIAjByIVHQod4hPgEfyzXNVvtovVtAaH0XKXU8PTOK38Gju0gHvtcQF7W1frK7ZaqjUudHOzweT87IO6Pnpdugg0TXXJqOSdNBn41cwjgIDkTaymrMGDw8Iaxfu0tE+nby/vlb4p1Yr8+wHbHnkVOy6WYT8SI2yhaUW7hYCTGJerJAkpwrH/3wWCurjF6eSjodyrU/eMkpb64GamAEYXhjK+1ErE6qvupetnJtoDgBTGaaVW384+pRUzUAOB0aYWqbxPL/BvxlcN0DdOg3yAP7vtFLCkx44/rjx0vBbZw7Pw7YwsUlvxntS8dc+NvajRd7lZwRMeZw7/2zGg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.2
Release Details
UpdatedApril 17, 2026, 2:59 p.m.
Changelog

Fixed

  • Telemetry error feedback: The "Send report now" button now shows the actual server error message (e.g., rate limit, connectivity issue) instead of silently failing

Security

  • Updated dompurify and follow-redirects dependencies to fix moderate security vulnerabilities
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturenWH3habsfSuicUPAYeMfpBHNnXo7QYa8/fAhRuYTh62gdaiNQArKCcTFCIevd260+kBMUoI2yj5aDoxq7vD6NriiUOi60FQkCd1KogxC51glVMyMm0MaCgbEcFZG0JIIZ9pAJEAu1rpoQwmkGRg5D0XaQDGUl7vkgZ/+OcUA7RA3pw60jEWueZiF+duvkhka2P3OTkGFzZodk6kX05SpD34ygRwNDeLiVwYy0E2A5mYWk2XN+ZLdMn0uK/6j8ch7xa1uecEl8deakE7jn72jeE+tOZ0qZBXcK1p/zVfHyrSSEny8xGTQ/JR+l4PT1pMbM2eMewJk6rKygGcPAHOK0nreGk+j15jMCPBTK7milwK+OvM3zGUSiLUr4Y+uSKNB3NQzmOQYCeH7T7DSG+AdjdXJUmYFjxeLt2hoFGPxR6lkAGvuRm4DwPfHHlPPetsmyGhsgL8ZYKX46l31RvtDYYYwmPeF8EF/UgPlTTm+KaRQoofAy16Hfna0NEwcqMviOGIDW3Nkty8vIPwM7a8XE59qokRnGGuYWkRR8UAg8tsTGelnAbd7bWiUVQOrjfonVCuRknVogJ9eemLB46TTVhGkZ610bj5WnIp7GzCeG9F5HZuZKpl2KB3a0YOqodbssB2rDBEbTYW5OX8GtaX+A349ZSd/iDSmNHO4iQNnZ5o=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.0
Release Details
UpdatedApril 13, 2026, 9:20 a.m.
Changelog

Added

  • Support tab in admin settings — New "Support" tab in the FormVox admin panel with subscription pricing, installation statistics, organization contact fields, and license key management
  • License key management — Admins can enter and activate a FVOX- subscription key, which is validated against the VoxCloud license server. The key is displayed masked and can be removed at any time
  • Installation statistics in Support tab — Shows total forms, total responses, and total users directly in the admin panel
  • License banner — An info banner appears at the top of the admin panel when the installation exceeds the free tier limits (25 forms or 50 users) and no valid subscription key is configured. A warning banner is shown when a subscription key is invalid or expired
  • Organization contact fields — Admins can optionally save an organization name and contact email to be associated with their subscription
  • Background license sync — A daily background job validates the license and reports usage to the VoxCloud license server, with per-instance jitter to spread server load
  • Telemetry section moved to Support tab — The anonymous usage statistics section has been moved from the Statistics tab to the Support tab for better discoverability
  • Full translations (EN, NL, DE, FR) — All Support tab strings are fully translated in all four supported languages

Changed

  • Statistics tab simplified — The "About FormVox" blurb and anonymous usage statistics section have been moved to the Support tab, keeping the Statistics tab focused on form and response counts
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureP2gopdnkFIlA23vbmBlweI6L9qwwLKioNUiltOry331cegOXVm1alaTtOG4AAZQE9VpgHBZ5VEBprxCk6vvuiLEHH/VgR+NbiG0xU4rTfPABfwBjyaABFhWWZPoGKpZ1lc5ZU6SYGqj6ucjpF4IwTWxsKln1MveRuIEccAYRBXSidPw1ukv7Ur6/Q2qv/BoAJo4YesXlgr7XOEZlu8Fn3dSaj3fLVG2zmh8pI/80tjmtn3588UP+ohyuSUUnMxqtUpQE0e5x+OuZjgvpLmOQQt7P1v1gsjA+sguWZb1kR3jq/Jqt8vN5TsI8gAKIYqq2DIArg6gnd2o5FSYNTgaaR6NJ9iNhua7XnHpFkc/xDXvKZqUpLwEpEhDlf0E/nTEPVl+nCZMZUsRex2mFta1TszXPA9nu62KQ997Ls6DwGOy//ad4XXRfbz59BQvdSOcOt9ZURBpEfFZs3KnvKHkGHrfwNE+8XtthPyhrQ1GtP1yxHH5nF8XMlLSQiwa8pWuf+xp/LpWu/oIuGryceg+C9zrFKiqI0SRwa8REtrZFHkApEH5gVCczanLcfluvaqRGEZ1ZrMuYpqLio7I3kkmdo4sW22AKhgYQeZMlTpyQlaW14hw9mQGtrGqCSHCab2y6jHESFtkR6JY1WSKhoxaxOQcMJXQREjApROtFijoHDkM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.4.0
Release Details
UpdatedApril 7, 2026, 2:58 p.m.
Changelog

Added

  • Sections / fieldsets — Group questions into collapsible sections with an optional title, description, and conditional display (showIf). Entire sections can be shown or hidden based on answers (#38)
  • Markdown in section descriptions — Section descriptions support Markdown including images (![](url))
  • Drag & drop into sections — Drag questions into a section; sectionId is auto-assigned based on position
  • "Move to section" menu item — Assign a question to a section via the ... menu
  • Specify notification recipients — Form owners can now select which users or groups receive a Nextcloud notification when a response is submitted (#46)

Fixed

  • Form not submitted for logged-in users — Forms with login requirement now correctly save responses without requiring edit-level share permissions (#43)
  • Scroll broken on public form — Added overscroll-behavior: auto to override Nextcloud's layout scroll capture, restoring mouse wheel scroll on Windows/Chrome/Edge (#44)
  • CSV export shows option IDs instead of labels — CSV export now outputs human-readable option names instead of internal IDs (#41)
  • Images embedded in ODT exports — Uploaded image files are now embedded directly in the ODT document (#45)

Changed

  • Toolbar layout — Editor toolbar splits into left (content actions) and right (view/share actions); labels hide when space is tight
  • "Add page" moved to ... menu — Keeps the toolbar compact when pages are enabled
  • odf-kit updated to v0.9.4 — Picks up latest fixes from upstream
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureDzTnWoXiqn8l00om8bW1J90Uu/E6uVvP73B5Xkir8WPIlGR51RYdQbCveelGg/ZR3L0GCoTuoJ5HpNm3uY6v2USyyrbQtClFU5ZBT9iRdg54KWOhsi/ubu8pmmPTsBEtZj5HUqHNjIE4WWtEANXSvoX/hZ6mrQl7VJBf+Dsrl4NVHPJGtLvBm18Wq6nqJ6moRsTQLfChnENSeDvxLDDXJA9zbnVSUksdTvx7gDhCU+t7sdbvYE6QgVVs3wQiju32TM+Ey6fMw2pBZ7fY0GfSF2gzU3czSMFKMFrGQGNj7287hBUJb1H2m3zfxYVVLXGxrJcJTMnWrVfoZpzq3qcwA9okRT4sBprsUVvL+PkA4S0ytHGf2C/c6oSSvbJVVku0Ragv1J88kk1Mx/woUaiT8kYerFuO9K2rRJ34IqKOnCjv8DGxYyjrJlfalUb7y1PhqUik5efZEPieOXfk3A2FwvwTIcXioa7oHCispAuajXcg0z5998nmv4CdzEjKuak/vMTS30zE+wQ6s9rBKgw1sCuslhVS5Vf3niWQOv3B/DZfGz19A/nP4IHFAA0QbACBaRkbPrkidSKCciV+OWaNq+WoZMgSBFol6TpAc2AiYuKdCDZjTgG8Z0XfZyhMYnUOHilah0I3ZttjsPbIPh/Ir79xJ8wpoySP3sxMTtmYczo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.9
Release Details
UpdatedMarch 26, 2026, 3:20 p.m.
Changelog

Added

  • ODT template export — Upload a custom ODT template with placeholders like {Q1}, {Q2}, {form_title}, etc. Responses are automatically filled into your template when exporting as ODT (#23)
  • Template auto-detection — "Export ODT" now automatically uses the uploaded template if one exists, removing the need for a separate export option
  • Template portability — ODT templates follow the form when moved between folders and are cleaned up when the form is deleted
  • Table question type — New "Table" question with configurable columns (text, number, date, dropdown) and dynamic rows. Ideal for expense declarations, item lists, and structured data collection (#35)
  • Notification on new responses — Form owners receive a Nextcloud notification when someone submits a response. Toggle on/off per form in Share settings
  • Wider form layout — Public form container increased from 700px to 960px for better readability

Fixed

  • TelemetryJob crash — Background job crashed with fetchAssociative() not found on Nextcloud's ResultAdapter. Changed to fetch() (#31)
  • External API missing pages/pageOrder — API response now includes pages and pageOrder fields (#27)
  • Required matrix not validated on page navigation — Users could skip to the next page without filling required matrix questions (#34)
  • Required matrix accepting one row — Matrix questions marked as required now require all rows to be answered (#25)
  • Horizontal scrolling blocked for wide matrix tables — Matrix tables now scroll horizontally within the form container (#28)
  • Multiple file uploads broken — File metadata was lost for multi-file uploads, showing only filenames instead of clickable links in results (#36)
  • Multi-file upload count incorrect — File count now shows total number of files, not number of responses
  • [object Object] in ODT export — Multi-file answers now display filenames correctly in ODT exports
  • Webhook creation failing — Fixed parameter binding for webhook creation endpoint
  • Form hard to read in dark mode — Public form templates had hardcoded light background colors that overrode dark mode CSS variables, making text unreadable (#39)

Changed

  • Presence endpoints moved to PresenceController — Collaborative editing presence heartbeat and editor list moved from ApiController to dedicated PresenceController for cleaner separation
  • FormDeletedListener extended — Now also cleans up ODT template folders when a form is deleted
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGH6DRDS5w+4R6rfA8rBo3kSIFAG05bjIREgWfDIDt4Y90nrmDC4I1IiCVEpKGAOAsysQ8Np/Kh5pqVn/bgZgopAdfinadLwoyBPqYiDkCzJZmm7vs7z6/7hmaIMWsGIT3JGOotuHSKOsUUVnOYuZUFXzCx8oOg+dik1zHGte+H2klZcYOJ4bo3x2xnSYkl6FR1UQWxx4Ng+fK3aVfs+Cmz4XvIxc1es3ciGLpeOlq0P358f5doqFVIx5RRnEZ4+rFYszO9EJMG/3YR4i7esh1z/wrYX2SOAwQesv9g6PNnwOOOU7a7mmOWsstt3iRmUOqrf83c9wl4j0EUhxxPMWWp0sY8wme+QT7Tizk5Xh/USWHz8+jRWJeIYfjukVk4krYnXGQv9cF97WSYTCAQJ1jpcY0Y/pmp9QFFZeexlJSy60xo4Cv98k1irLGZibjk2hkjFcWJzh0VrgRpynVB5cYuPEwdB6kPzyFLO9joSK8vg7LilCeH2Ah1u8yUbkCI/tootQqNuMbRwLQQ3QJr0o2cPZC0jXYPuJplf3ug+WUeD3WZxouboTV7x6clsDQRSwrNae2QEzCouFa/vSA9lR9TvcyJ8cfdErUmygEYwqHQ/rv8HtLgDmWrDnA8+fYR6vQrrFDqLraFDP5pWkost6MGnqzJRitceO/kA/38JEIvQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.8
Release Details
UpdatedMarch 13, 2026, 5:22 p.m.
Changelog

Fixed

  • Form submits on Enter key in multi-page forms - Pressing Enter in a text input triggered the browser's native form submit event, bypassing page navigation and submitting the form even on page 1 of a multi-page form. The submit handler now checks for remaining pages and navigates forward instead of submitting (#21)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGNkiMJGIKnQR0vX9Guh4GkUGa/uYR1w0RIAWKXmo24z02RTHUlmvBSTUlYc0BWz0Mp5l6o4TDMDR4H5EckmM+OrhtraluRxu0wCt7NIxRao/hVOdQjVeXenGjJKJsxpcJdjFTt3i34wAlNcuurewF0yF4vN1gSgnsq3POapllMUoaCREt07bLzb7i0+QHDsDVgs6uf0xn446Jnih57LbMspuoD6u92+4nNPdGTAbw5HeLeKa2tpMo2dxWc6jDwZK7Za1GUg3t8gP0U5qf2toDaTf7L2KQd01v0dBLzuDSg2QKdAC5QKFSHubRSW/SamUDelPulkB0JsAzsGW2PBciQiEgAzASsXYPaHvWPSjFyOoGa+707Rg9h+pDge3nBPwcaexwhbwQMjdjWn65vMHbTxqLNbNS8/JGpLCcrnOeRsqQUr1xlTPVyxC4tYewE6xZp7jkDOgWfUDNMqcgEh5Q2Kzn/IxaEgW4VuTg9j647VU6KqVww6kZVbCOoPcy74MsBSG7bs4UBYGThpQ0uc5RYUFqOUpUQZhITM8iNZp/8gqnOgFjUiEUvuCEP18mBsPr3SW7bxODUIjrLRIsQzi2vTZiHk8kYNe8o5pEc/Otdp3wNJqlPzqc7OaG0iT1exx9Ad4RmDDgPlC0rfcRk/UVJzWs2KkTyV6iLuL8ujn1X4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.7
Release Details
UpdatedMarch 13, 2026, 2:35 p.m.
Changelog

Fixed

  • Single choice / multiple choice / dropdown options have no value - Option values were never populated when creating questions in the editor (always empty string ""), making all options indistinguishable. Radio buttons, checkboxes, dropdowns, and conditional rules all failed because every option had the same empty value. Now generates a unique value (based on option ID) for each option. Existing forms with empty values are automatically migrated on load (#16, #18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFy0zI/ZLu1i4uixJGINESbnSdRYvFpm9++0NO/yL6X9cXqLSKlfdUiVPHMMBGu08UZjIx3QiNi4tDt4rslkBxR9bPGQtEvhMM9HvmM+DB9jtoLLUVsmLwnSahUM4NUCgNIkmpsMl7L9AGarftcOwtRTg4SINWi4isQWgliswP+7fvG4+m1cGKcgY/2uzhRzdkFMYP5yyXjxt81qr7ejr19q9Zo5E7d8QR3waA7XbDy3zaN8spgCrYvJxU5LY0zkD5edXgZgl1BaWkt44BLuioAjDMrBz5CDeTbtDG2ZTJPTuZC03RhWPWkC/PIeHFSi+ULRq5BqKGayse5lP9JZkk0SHGYhYwHm1ZEIiXB1aCUZBxjSVuLAtSsjprx9ul3FXqSg1YlsDi0yjo/djcFAtDz1lpPkpWheSq6ZuooPYwpKASEuPuItoYZpLdeN76TsJQ5gNFghCETB0dCod0otvAKZIlFW2T7D17J3Hqr9u+6jVidjIl84T7uYMMCAjH5A37DAlKbaFnYJw4+p24+UlnF2ddHIbp5SriQZOuqSlseFX9QxM6ENjuSb97pxdseApfeQkkfU9YiyD04hylaqHzUO9qZJu9BW7CZaXQtakQ6Ng7N+6ricMvLNBAqWs5dBetAdC1EaUh1y3nGuGXAeZc751+9mN4aRKL1spa7gehw8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.6
Release Details
UpdatedMarch 13, 2026, 12:57 p.m.
Changelog

Fixed

  • Translation .js runtime files not updated - The v0.3.5 release fixed placeholder names in .json files but not in the corresponding .js files that Nextcloud actually loads at runtime via OC.L10N.register(). All broken placeholder names are now also fixed in de.js, nl.js, and fr.js (#22)
  • Single choice / checkbox questions not selectable - Confirmed fix was present in source since v0.3.2 but may not have been correctly included in the v0.3.4 App Store tarball. This release ensures the correct compiled JavaScript is shipped (#18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGsNKD/zZO8q+PhEIna48W0VkliK/7j87UZOTEy7+v2KC8acYz8jpOJZA+hNkqyL9Lkj4nIhUc5HEO7tJCEKUtrZOvUO9la6HVrMihnU7X4y9yCttfBeqlxhKw9N3LoVoS1KZ1n8bCgxpPvZMqKKTMwM1tRmDsbENLv9RaKq3EEKIwufYRrzn5RwMY+EdF7j1ywScjqjxYYcd+7euIQi38ATMeuQLTKkpEU/SZSmtciuH4wdRidazcKf/9aceL4BhbgShC/216I9klQ1Y/LvNaiKaEf7wXeAlpWY5zBhaSzfFjRDLWuzXJKTXpJmP2sxk30a2PO5zZpOFpFIJJreonrkxrb2RPrOh24CTOm6hjnTh3PK7uIgXBmXunuWjduGBk6E19DkjkUdljloipkbrzNNhdukk8ppBemkLDFgSosEw8y8qOta7jsNxiiMnbAzs4CZlefS0o61g1Of3tb1rzrEfI0eaT6KmMpO+SPqjoDHTvAGHH2UdYR9cJKF1ZUq6Juh63oOk88zsuM/LvkP8NVzQGuRokdOo8cmTIaNAlpE2GVJMnqtjYunf9I3O9ivRQHubHkXtesJqn3GAt4cxX9fHYDqb7xULqUcsRRrXpTQivsNrVF6c+udvhySUczVdaZ+B6zsae3216I/bZV5cwLGtXAFSuz3psHEMvIiVZUI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.5
Release Details
UpdatedMarch 12, 2026, 5:31 p.m.
Changelog

Fixed

  • Form submits instead of going to next page on multi-page forms - Previous and Next buttons were missing native-type="button", causing the browser to treat them as submit buttons inside the form element. Clicking Next triggered both page navigation and form submission simultaneously (#21)
  • Translation placeholders not interpolated - Placeholder names in German, Dutch and French translations used translated names (e.g. {aktuell}, {huidig}, {courant}) instead of the original variable names. Vue's t() function only substitutes exact matches, so the raw placeholder text was shown instead of the actual value (#22)
  • Screenshot filenames with spaces - Renamed all screenshot files to use hyphens instead of spaces and updated info.xml URLs accordingly to improve compatibility
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturefiwy4f05zwUTsL/mo55TXaZGL/hFV7q1Yz5FrIO0yq/Std4g1k+r5725ISI8l1/kSQJYWEJnd1srbPvVD7PsBepvin04T2N+Dgac3j/gizz3BMba4U/Ix+qwOWGL1QGFBYuvnzTqpMKuZS23LwO65+hwMDporNCGDQa1o5ub7n0LthvLJ7q3xgRb0GsKCLHCV0jKBLOcPqYSIx3/Kckvd6CQYvHXudSeucheXwqb5xKhl0jFDA58g4G4axuEZ/vRzhFxsTTQZYOS49nTceAj/xl3HT6zYiCO0GfsUmqDrLmazpzH7E4TUePzrlCM04j9wyM4EchuXAqkj1NpazZx46OsMHl+t1/Q31ro7P1iYtrVLoMpjPFQa8bCR1VWrOjgnBPjw0gQWbhaOtGByyJg4udpT+I00+jUuKCiT398EUEonFRBhysf8eIENGNlRHNH/3yjJSLvm2S4iaoBABUWBSgZWhQvLI4Ep9jNoCeM8jcumOQWnMuE/HFyQB4QSNVevBaayo8VMv6Tj4Zl8PbnldAA2zHFc4EaPNek5OWIqLhEnKk01wC5zfsKFysDmOvsEfZfyvG0LaRApp+ioCM5+dsict7+LN4b86Ib7NOMJ+BQEF6fwWXN60KmptUl8OBCepOI9KyCE+MYqqzLUqh3+/P06yBw166eTUTD/kdxdxo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.4
Release Details
UpdatedMarch 12, 2026, 1:32 p.m.
Changelog

Added

  • Date/time range restrictions - Set minimum and maximum allowed values for Date, DateTime, and Time questions (#15)
  • Date/DateTime: NcDateTimePicker-based min/max selectors in question settings
  • Time: native time input for earliest/latest allowed time
  • Client-side and server-side validation with clear error messages
  • Date picker automatically restricts selectable dates to the allowed range
  • Markdown support in descriptions - Question descriptions now render Markdown formatting (#5, #6)
  • Bold, italic, links, images, lists, headings, and more
  • Images in descriptions are rendered inline with responsive sizing
  • External HTTPS images allowed via Content Security Policy
  • Links are auto-linked and clickable
  • Answer piping ({{Q1}}) still works alongside Markdown
  • TTS (text-to-speech) strips Markdown syntax for natural speech output
  • Condition editor date/time picker - Condition value inputs now auto-detect the question type and show the appropriate picker (date picker, datetime picker, or time input) instead of a plain text field

Fixed

  • Date comparison in conditions not working - "Greater than" and "Less than" operators on date questions always evaluated to false because date strings (e.g. 2026-03-12) were converted with Number() resulting in NaN. Now correctly compares date strings lexicographically (#19)
  • Question reordering not visible to respondents - Dragging questions to a new position in the editor was saved correctly, but the public form still displayed questions in their original creation order. Fixed by using the page's question ID order instead of the form's question array order (#20)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFrSf68Mci1D31suRUVNzg+pPPiKxkYfn9Ss5QgA0bJWTggh9x240M4+3KrF+MrfqolaiBGwGbpbE6qtD6pgjFc/nCV3yQbo8phgErx5kk9q5tA4qLK0SKG5C7dqPwub9Mi2BXxE9/tTDrAGyrAOo/CHQ0wZ54h7CM/qO9lU7aHUNTDrbXf9Wa3MUd2O3B0hqAShxnDVFuG1fNpW59r7xd4UfGG1nsU7BCH1ahUB4Ha0P/JdrlrhHRia590gZZ6oXvm0wofA3bDOi6ETMHeuPBIa8Z2zZH4j8OmADhqzZyekL9YtcbkP49ukmWUUP/KjQgs8AoPLefpPIDvuEAjJ+ArnktsWh2MwkaTlAEMMlifZro1/yRpzZyDXb5PcJS7JJ4Egu8htlRc0RQPJBjzTogUAZeenzDq9R1PvbAI8c2MnaWQ8kLGmzi+eBkbkEa6lj6Z/vZSlnkHQqpB+HfY1C6X7WGzqZDxgboiVi77tB9ASAphvPPTFU999ofpiv53bBd7t/aNHHu8u/V6oFj0NHyA1p2ZK8Cgs4LG5i4XK+TPn9zfnvXQFEDzJfrcAK+6Wa6UwR4p3jpO49R/k8Wh3AFKJ09l9bAPBu+FUlntYsq+tnKaGcQdJRwmdxWn+yOf/5I9WZ/aYfzjI9H+dMS8caMbChabJz0TSDErq3PHZBShM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.3
Release Details
UpdatedMarch 11, 2026, 6:24 a.m.
Changelog

Fixed

  • Public form scrolling broken on some Nextcloud setups - Contradictory CSS overflow: visible combined with overflow-x: hidden / overflow-y: auto caused scroll to break per CSS spec. Removed overflow: visible from all public templates (#17)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturefEKSadx+pOeuWOEx0FgzF2L1QVc2sRFmYT7t6eKVTQYknBB5xhu3lgYeQDD/2vhjGQy6YQZeBZpV/Sxm8DA54aYVdFFfAgiN5EnvBtWfZNm4hy2V8UjSFJqXJfmR5DQxFI6emX3qagKjHbqmcCP9chndr30RCgzomENXQKETzY+yIiyldWY0YUMQxTQAn9vPfMjPGGx97l679QtqcEnhvXkgbPCU4L5Z0pBk0OMAJidQMsyGQDc/5hXRNj5JWvvzEtXxqPBbjMNrtewICTsVEx4QMHUlEeoBIJi86jM7ERII/dNl0WYYp8TAJuW8qELiSD21vhe6yTOIZCP8XrZVuXQoC4iIHghAq0myn6rWfpt4E2lzbVjPjRSu4xKegeQ1InylrcfiwqVk97QfYYgY+cj0Kals5l9F65P0UMbU3qK1AezJhWyprQaq9/CCIpP+aFXMA8WYqtlslWKp2juyvNqsaZdmy0Raa72MSrK4e6FnhmikZWBMFoIP63sS272wJPr1yOGDpBQXbGWWlBZmNmzFGqj6MGqI6aE4wsFEmMAG3/yhoeJ9x9NtxxDslehs82o1ASuBCud6sXpzuWhBtNuEi/rgw2sDojY+sdKs/txftcbk7Sin++ExLKnqVeyGoa/Jdv89aUgxFm6uXCVn/6jyqyojgMFtTz14Ip0qz70=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.2
Release Details
UpdatedMarch 10, 2026, 7:20 p.m.
Changelog

Fixed

  • Single choice questions broken - All radio buttons were pre-selected and user selection didn't work. Fixed incorrect NcCheckboxRadioSwitch API usage: model-value now receives the selected value string instead of a boolean (#16)
  • Multiple choice questions broken - Clicking one checkbox selected all options. Fixed by passing an array as model-value with proper :name and :value props for NcCheckboxRadioSwitch's array management (#16)
  • Dropdown selection not registering - Dropdown questions showed validation errors even when answered. Root cause was the same NcCheckboxRadioSwitch misuse in the underlying component (#16)
  • Matrix radio buttons broken - Matrix question type had the same boolean vs string model-value issue (#16)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signatureyz98Hn5Q8sjMWsh3r/STylb8Gr89l+FyKqh1aqGeVv5pv30YipP7O1Ho4zEE6cXJgBLREMl/R32EJd5hVya56kVy2vhEESL4Miu0ElnC6Mkm+BZjOb0YrDwV4LJ86auCuS+Vh0QAeyHlNBzpdxfAHW0IeQo5jSAPRAkRNTBSuYacrINezW6o0fMscXUINTDHTeboIgZxa/bF2XWof2dIMTIOVEdLOJwc1PXTvNg1NSsg4LuxDFenCNrMOQQnDEvbDjbF8ERRPhwaiksu484OjL8EqREnlWYG3kLh4DKZq6fA+Iny/7znDg0kt4DwstwaPziCx0MfEbPXlP4A8T7Byb2YCkmUe/2FgB8i4BsviFT1EcvEF9jV2+A4pVY+Ud7Hvu7Ns/6SVHeqeG5s9V5ApJljo3bjrOixAnRKG1LTiz7+MbJhTX4soxP9WOCquAjNtXIbwG4YUz7vE7FIH4nAQV6+9PYzofhxktmCep7IqDp2FtvCj/Wx5irvo3EC80gxcSePncDLswlflI66P8g2VGC99GYXrnFx2UybcbATSEClo3ahAX3A+4faLYe8EV7QQSvhCWRbaRaNGxz/RnjReQO729kX4FG+o1pLWfNiTxEiARveoQ6GckWq3EC63DupTTNL9V2Ue5WPUFKAnui1UpIPRzPVx37+8EA2KMKjUEg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.1
Release Details
UpdatedMarch 6, 2026, 12:01 p.m.
Changelog

Fixed

  • Added missing translations for all 0.3.0 features (page routing, collaborative presence, draft autosave, QR code, accessibility) in NL, DE, FR
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturelEVUWpC9Qe7GphfENOubjL5H1piT7pdcg8tZaB2SWRUKsd6IrEv8vxW95fshNG7yCI8MRTNOkVQFcW+TVx877aRh8YXDd0I9IfDwLc/H8wQHhSUABZUBZnrDrAg9VqVTMEMpjTdJCDVyb3GNDbCqaY0hvEta6YAglxZtx6tptwWq1PSVXBzlQLIzpV8Bs5nmnLt2IoFkKTHSNLWGf5SWKL62/I/RcS1VYzTa4W5RI1+irZ709oGATMDZjgc+QDliyL3Lryk155pMypaGfQLRfNHej00OzFwSqAGFHA2x0u6NYD+FbmrlF0UYUhFR9El+2o6lA27KvtHVajs18yiIalAqEt3GJDjKdiSA6mioZLwWTufui0wv7lW+28v8PKUddl7uu+UJZFTaczv2E23x8mHHLWRybIt9D33pjT8dDb8tAF/sLqnlKvOm4fHkE0CQeUoJQ6WnlDjq2xyla8hrZ/+bnK5sYiLpV1DN9d79FwQkOV9wVJX0m3O/FGQnudnmmnx6JTM5oJ7lEoTqVnNh8C/XGZcZA1WUAyTyvvDJvssjRa2lJFGk0/opsnbRQDtZBDnL2xrhroK9NJquucWc7O+FifgFhVYLz5ILAOprGKsnUTCPAfaf0lyWlmvFwQ8BGMG2RCoAOP7lncDL3cAYORYIUtgIHJgb/KjvxxuaWK8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.11
Release Details
UpdatedFeb. 18, 2026, 1:24 p.m.
Changelog

Changed

  • Nextcloud 33 support - App now supports Nextcloud 28 through 33
  • Replaced deprecated IResult::fetch() with fetchAssociative() in StatisticsService
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturepj2pVxyGgN68FQKxKvx1c7236SGBbg27rILExPtROf2hK8AcuNPNISmg5NUS62eg3Ke/VsHWwcgd288FSyY9X6bhKiLlVYBMVx1PMEIGO6RIquK03cXhrcKP2uQAliwoMOKsZLgkD5yjlwQ0Bj1XbZ077wb3c/5343zmBWFbQtwTlZ+M1tv6q7Uy7riorsIiVG4ddL5MM3uVQOWozbOTUQjHaFt/e8WA1eF10tRI5omQobKbdqA+K77ffP4y4fZRJDUpZ6TLpoYY/B5HfgBGVzrBW+sMRWTSaflQkndm5fxj1dsGnXOTiyWPy9Us0ElWK6KjtpkUGiSmEcvvqLV8nXDTrrSQp5KLdPEfQDxShU4NVbePabHP7x0n5Jah4U0nyUFOisJmrX9F557/bN+Fx293nKd992O6GMPlpsgyC7Nrpo9Q+MFmEIH+/k67uYTUQ1HiHjrBl7t+4lSy/KVpG7BQPm6LDGrF6T42BskHixwPVLXLTkAy51CZHB6TxDPX0YXVVFh8+55cS6vVglIWfFx4+hY1NMwrbDPnI8ZEVMZOaB8Nu3MskQBnhL/lnMYsPEMR/j/0/ejFt3HlB7pkhSIZj+MCO8GaKVdsfI42hb/u41aIlMBgjkmcDVZy5xK5JZgrAOtljyyOi3NXHYSuAFVYpBC01vK0RnpvcjQtCVs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.10
Release Details
UpdatedFeb. 11, 2026, 11:41 a.m.
Changelog

Added

  • Accessibility (a11y) improvements for public form response pages
  • Text-to-Speech (TTS) - Speaker icon per question to read question text, description, and answer options aloud using the Web Speech API
  • Toggle behavior: click to start reading, click again to stop
  • Language automatically detected from Nextcloud user locale
  • Visual feedback on speaker button while reading (color change)
  • ARIA attributes on all question types for screen reader support
  • role="group" with aria-labelledby on every question
  • aria-required, aria-invalid, aria-describedby on all input fields
  • role="radiogroup" for single choice, scale, and rating questions
  • role="alert" on validation error messages
  • aria-live="polite" on page indicator and submission status
  • aria-live="assertive" on form error messages
  • aria-label on file upload zone, remove buttons, and matrix radio buttons
  • scope="col" / scope="row" on matrix table headers
  • Keyboard navigation for custom controls
  • Arrow keys (left/right/up/down) to navigate scale and star rating buttons
  • Home/End keys for first/last option
  • Enter/Space to activate file upload zone
  • Roving tabindex (WAI-ARIA radiogroup pattern) on scale and rating
  • Focus management
  • On validation error: scroll to and focus first question with error
  • On page navigation: focus first question on new page
  • After submission: focus thank-you page for screen reader announcement
  • TTS automatically stops on page navigation and form submission
  • Skip link - "Skip to form questions" link (visible on Tab focus) to bypass headers
  • Per-question inline validation errors alongside global error banner
  • Screen reader-only status announcements for submission progress
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturehiico8sT2nFtIBbugEJCh0mtYVlay9iXrypCE6SdEehLcb06zqxaaRRV1wer6DFZVlpEaGi3qnWQu512jWZ6v18DW170EltnjVHFhmXPW+Fx4WasefOa/8MMQg1bkZ+8y77Hmll7pchCrhG5LtzSNcIQDAtczM1S2TVQ9dw7JdrtZPqI76JN+P+2pdex+oHaJ0zYAKZL1WU9Ygmdzsb50QSaJkMW9GXuR/Ow14uSfZBdwp3q+LzxD/x6W4tz2VsD0GXIFam68sMaNmnZBCK0FkwkjSP79zQI4decD6qilaDGDL40lWWN7muH5udYpPi8Xf4Eu/sppALufrcPepA1Hktns1IZ0pIjyf91la5sc37NbG+K7Jw+LKLbqegaJrcwiORS+3rcmDcrNrRYxmyyy8KWIW7t+sw5oD9+dItl3XiUKCDL8bfcVxTnci/1of+vZ5KzyxbAzA2mAOhV+cMuKm+5RX6vNIjUbYhqIrQpTjeDbdmc3R/2hltUFk5bOBdG9+qnUc/bAp5aOdSVU3mvgt0eW8uqGpu7B5tsF78STgexiHPuZ35YsXIR/Zbl19zGAtyA/lfC7TYSgOIION8vaRE3MjlgUr/aldDMtjB8q6oue5KsLBcKBWMCUKcomeZ5zWG6XLq7j+GkD4L8+Py4GI1HvlrPWpZ0fROTG5fLGzg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.9
Release Details
UpdatedFeb. 6, 2026, 1:21 p.m.
Changelog

Added

  • Question color coding - Assign colors to individual questions for visual organization
  • 7 color options (blue, green, orange, red, purple, cyan, brown)
  • Color indicator in question header with dropdown picker
  • Colored left border on questions in editor and public forms
  • Custom regex validation per question with custom error messages
  • Define validation patterns (e.g., postal codes, license plates, phone numbers)
  • Custom error messages when validation fails
  • Real-time validation feedback on form submission
  • Response limits - Set maximum number of responses per form
  • Custom "form closed" message when limit is reached
  • Live counter showing current vs max responses

Changed

  • Share dialog reorganization
  • Response settings and Link settings are now always visible (not collapsed)
  • Embed code, API & Webhooks, and Responses moved to collapsible "Advanced" section
  • Cleaner, more intuitive settings layout

Fixed

  • Scroll issues on public forms caused by password manager browser extensions
  • Fixed for LastPass, Bitwarden, 1Password, and similar extensions
  • Added CSS workarounds for extension-injected elements
  • Improved scroll compatibility for Nextcloud 28+ public page layout
  • Nextcloud 33 compatibility - Fixed deprecated OC_App::getAppPath() call
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturerIF5qS38JiuDBtmQEKuf3x5L8wtIMHDBYN6IIhaUTWhliFinBAu8YtyJC0lu/sN4zvZxK3ILE1+g3KRjLc/g28ZhK25O6Lnl3D6NtfAP68fVIwUibU1SHSyJV+jrsK0NpmwgH3qNnMWNKnVKfAuxHje12zQgZJEiG4/5fN4bhaAFNn/pXBKfLtAbRrwyVtDBCPm1YrruruolO7MWt65vKbOUgtnTUZRrwwLb8ygKHVVEhYSbptstvUPkaR2rp4y1E0xoa30hz6k37PLYitjCZ6+H9cdGNyyALn6dWrVikW/R43wQPATsDnbBpU7FfFpRtZnwrizttFbcwYxnI+PD1uiGkNdP/fl8QXADqcEXqI2otRYEpbr4xJtB/gpVbduGFWtZU3nopdYBg6xFpjbKhSMkWKZZFfixM/WKbZdWeZoQ23tuPUMNC74Cl1//s1TC433gYmryYh3ZFTyTCjhwt+vHH8MUpRTOAUsOLV1UFk4ey4Llhy/qFOlp2z0o5ST61/XdaWBO0tSFsjUMsK8xmBo5Y10H1BfOx4jOBMi/QF18c2GBd/HIK1IC0uAE6dAzOpLSy+oEhZEdfRTmN+Py+G22/VmHr1PxUpd/t/r8yLT48uT7oQoDwWsGBhw77DhVaDRM3m7wMe36VAfJSWIKvcOSEt/q09Tk4BlX0O6YN30=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.8
Release Details
UpdatedFeb. 2, 2026, 12:39 p.m.
Changelog

Added

  • Microsoft Forms Import - Import forms directly from Microsoft Forms
  • OAuth integration with Microsoft Entra ID (Azure AD)
  • Import form structure including all question types
  • Import existing responses
  • Support for multi-page forms (sections)
  • Support for Likert/Matrix questions
  • Admin settings for Azure app registration configuration
  • Per-user Microsoft account connection
  • Question type mapping: Choice, Text, Rating, Date, Likert, Ranking, NPS, File upload
  • New "Import" card in template gallery (visible when MS Forms is configured)
  • Import wizard with form selection, preview, and progress tracking

Changed

  • Admin settings now include "Integrations" tab for Microsoft Forms configuration
  • Improved documentation for Azure app registration setup with required API permissions

Fixed

  • PreviewProvider regex pattern fix (preg_match delimiter error)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureiQSbO+QhAacmAZ0f0XCyecq/v+L31Q/fOwbV6RkX3DUq5ObV/y3odSGq6nCKT3AmCyP7JRN/i96KYAkvJUyTyhmp6P9CJv6IxuFar6g8FkoWz1cXj5wLoDsdZosPhhtUePNrGn0EW9wihkcZVvaTxDpCNgf5HXtVFp9odpDXWOOZrakxyMoSD1koc7CmkkrYCGN95I5470K0gn+IkdkZLrq5hKztiJIt170wSeJax1HIWKBkZ5ngw7nO3UJzPXq0GVfdgWtUbm62TKAv1KwVwcxsvwvGwed9ox1F7LIS8JVRnjSzlq6NSWODO0YENg0xWzdDQXcdwE05vt0zZL92h7wvS7oMgr4CHyOczU8+oIcJRJ/L2idwcvw36QThb4NAOzen093WlFdwMFLqPibYKtf1Vr4FmfHRbtFYe1+6YP/Yuezmn3GrTi/hJqgiyOoRtiGv/WZyZlAV9V4p4o5tsAsij/LrqX6urKPoCRBU0Xv+7xI1rZI/gqMqXDmYgPEmLvVzimaxvHQsC42JT0Gk7HOgnrUYgOVRXuFYTTnJEFZ33MaNoXywCNPf/AjEMTYYKPjq77fQy0rFHtcE3GmXaNMzkGbHx58hUZIsrCwlZp1Iz1rMP8T9f/TvrN58J8Ij80OHJfxIAbESzQhe7k0EewOkcJRuI58UHhhI2iMaRWs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.7
Release Details
UpdatedJan. 30, 2026, 10:56 a.m.
Changelog

Added

  • External API for programmatic access from third-party systems
  • API key authentication with bcrypt-hashed storage
  • Configurable permissions per key (read_form, read_responses, write_responses, delete_responses)
  • CRUD operations on form responses
  • API keys automatically stripped when downloading .fvform via WebDAV
  • Webhooks for real-time notifications
  • Events: response.created, response.updated, response.deleted
  • HMAC-SHA256 signed payloads for security
  • Configurable per-form with enable/disable toggle
  • New "API & Integrations" section in Share dialog for managing API keys and webhooks
  • Comprehensive External API & Webhooks documentation in docs/architecture/external-api.md

Fixed

  • Admin settings page no longer blocks on statistics loading (statistics are now fetched async)
  • Consistent app icon (app-dark.svg now matches app.svg structure)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturej4WG42Wxm8UBPQq0I9NBJ1SJusy2ORqxBWubfd68QVERrk7kPEwlQVNegb8C5SVRed4cgkwk4o/B8O0SYchfcun0H/29EZaxnLsBXtR8k1h5s+Y80XmE50SjAQ78nwXR0IIM5DeUgkg5fAzJeJ4u6nxQH7YjEdvTCmAWmUe2vFkOBtiA9NIY744nMX4fJ+BxTDk7QGnkXeFPAkA14NDN71/9+bWsvKGu0WPcBpa1CPikUzUKj7Wk/OIOoAaE6/XvP4/pucwzJ4tukZ3xAdvtWPOmX28LSZZknutF/KvffqSv19q8+Fp4dAjsWo2Klk1PLxHM971hr7g2WsUsoYtHC3wmQlmq4d/n6Ug9gk/CdmnjbR2k06ruKsnt/+okphvAJ2Hz6hdCsiBJTHI62jNT+gnAxR0edndaQ3HSxPV+lzMuVeDzP7b+a2UvLKjNWeZQI7D6ms8+Sv80L8CPb5pDOFyWOu2ovZPmYjkXFJjdXjARuOupp39fdlH+TU1RnULR1BIagSZFG6rcxLXiqBGJA5mFzGzOsoNyyZ9uFDdLe3B1X7pkkqQ2z/3KaeAZmpenv8dWTjhDM4BjUuSKZzT2b4bAtN6VCu13OLw1BF4yWmXREw3VSc5Qvz73YeQek7TL7VI6tecHn/06NaaPrHKKOhn9uVPQJg3V4qDTOLr9Z8Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.6
Release Details
UpdatedJan. 28, 2026, 4:18 p.m.
Changelog

Added

  • File upload question type with configurable allowed file types and size limits
  • Download all uploads as ZIP from Results view
  • DAV plugin to strip sensitive data from .fvform files on download (responses, settings, tokens)
  • Form embedding: embed forms in external websites (SharePoint, intranets, etc.) via iframe
  • Embed code generator in Share dialog with responsive width and height options
  • Admin setting to restrict embedding to specific domains (Settings tab)

Changed

  • Editor toolbar redesign: Preview, Share, Results buttons now prominent; less-used options in dropdown
  • Editor header redesign: cleaner look with underline focus states
  • Question cards redesign: hover effects, focus states, modernere look
  • Description fields now use multi-line textarea instead of single-line input
  • Improved spacing and visual hierarchy throughout editor
  • Required questions now clearly marked with red asterisk and "(required)" label on public forms

Fixed

  • Hide .fvform files now properly hidden from sync clients while remaining visible in web interface
  • Uploaded files are now deleted when their response is deleted
  • Icon vertical alignment in dropdown menus
  • Suppress @nextcloud/vue appName/appVersion warnings in console
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureOI4r+UI2nwnpIFLKL9RijGU8qVDcsdN+RmHoXeh4wsH/FffjM0k/EfUGfIG44uHsLJZw7ScCByRN82zS4zks9omVmvIi4C0C92BVgwh1swpHz7P1+KuyPZEdj1OfwW/WtbOxjwn/x3tk9WyUN6T6qP1URBItFJgssJ+fHjQax/5SfVQLRapjaSp0bZ+Rzv2r2bMm9/gjhdLT7PkGPgG1QCYqsbkLznZC5rN2uFwO+sqMu/ss41Mo5nymiiIyTnJ/mQp/MyeTqd+1QjsiJ+Xt0ulqIhQ+2hkzsFCdVlj6h4DKoJ67IH8JcuBx52Uf/yE9HvQRQMGDMgg6VYgAg0+Oi2X5BDiaRgE8pZ1x/A74a4Ydsh8uaO9ZmHQJqjJU0lLPmwGE2BGswPTwKpCMnJJqT0B0xXAMaSI5yqzLvoIe4vtp2v5wfw2NDkVVQRBAmXKtndBADgpaZqkIp5zaImvxQimBHPOyO8IcTfWFCDU3iMCc6J2QxrgtXmQaTn4+JhDjCY3ePBzVxGbdHKkoYgE+Q3c3FsOMufBKKoEdPVE/BZ0BaynJcJEzF8hhDEgo/I4EDuotDgZY5XZegsjYUOQT/CwOOZEVJDJ2zKsXpogTcKSDHmmf9Dwv1//tRA6KDK3HPiBJM4YUVQSB9raiNTB55O/qbAOmU1aEOiZN0TeG2e8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 31

FormVox 1.2.1
Release Details
UpdatedMay 12, 2026, 4:20 p.m.
Changelog

Changed

  • Pricing removed from admin Support tab — The Support tab no longer hardcodes subscription tiers and prices. A single "View pricing & plans" button now links to voxcloud.nl/pricing/#formvox where pricing is maintained. Reason: keeping prices in the app required a new App Store release for every price change (review time: days to weeks); the website can be updated instantly. The Support tab now focuses on installation state, organization details, and subscription-key management.
  • Telemetry transparency expanded — The "What we collect" list in the Anonymous Usage Statistics section now accurately reflects every field actually sent in the telemetry payload, including the organization name and contact email (only sent if filled in by the admin) and the new Extended Support flag (see below). The previous list omitted these fields.

Added

  • Extended Support / Enterprise flag in telemetry — The telemetry payload now includes hasExtendedSupport, sourced from Nextcloud's public OCP\Util::hasExtendedSupport() API (NC 17+). Returns false on any failure so a Community instance is never reported as Enterprise. The license key is sent alongside so the license server can cross-check the claim against an active subscription — the boolean alone is unauthenticated and could otherwise be spoofed. Required for the Nextcloud ISV partnership where bundled-license customers need automatic recognition.
  • Description links open in a new tab — Links in form, section and question descriptions now open in a new browser tab with rel="noopener noreferrer", so respondents don't lose their in-progress form when they click a reference link. (#87)

Removed

  • "What a subscription includes" checklist with green checkmarks — content moved to voxcloud.nl/pricing/#formvox.
  • Hardcoded pricing tiers (Free + €19/€59/€139/year + Contact us) — content moved to voxcloud.nl/pricing/#formvox.
  • Standalone "Learn more about FormVox" contact block at the bottom of the Support tab — replaced by an inline "Questions? info@voxcloud.nl" link next to the new pricing CTA.

Fixed

  • Submit failed on password-protected public forms — After entering the share password the user could open the form but every submit was rejected with "Password required" because the frontend never replays the password on subsequent requests. The authenticate flow now sets a signed, HMAC-protected formvox_pw_<fileId> cookie (1 h validity, SameSite=Lax) which the share-gate accepts as proof of password possession on submit and upload. (#82)
  • Date picker selected the day before in non-UTC time zones — Picking 17 May in CEST was serialised as 2026-05-16 because the previous implementation called toISOString() (UTC) on a Date constructed at local midnight. Date questions now serialise using local Y-M-D and parse YYYY-MM-DD strings into a local-midnight Date so the displayed date always matches the picked date. (#80, #89)
  • CSV export still fragmented in Excelfputcsv() used PHP's default \n record separator while in-cell newlines were normalised to \r\n, producing mixed line endings that some Excel versions interpreted as a new row inside a quoted cell. Both writes now use the explicit eol: "\r\n" argument so record terminators and in-cell newlines are consistent CRLF. (#83)
  • Question labels shoved sideways in Microsoft Edge — The flex container holding a question label and the TTS button could grow horizontally beyond its parent in Edge when the label was long. The label is now a shrinkable flex item (flex: 1 1 auto; min-width: 0) with overflow-wrap: break-word and the row allows wrapping, matching the layout other browsers already produced. (#84)
  • "Move to section" did nothing when Pages were enabled — The pages-mode draggable did not listen for the move-to-section event from the question overflow menu, and questions dragged under a section header did not become visually nested because the wrapper that applies the indent style was only rendered in single-page mode. Both code paths now match: dropdown moves work, drag-into-section auto-assigns the sectionId, and dragging a section header carries its children with it on the same page. (#88)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureeUuQ4SynmfMaIwd1NZhIUdQk9Qg7DxfCKekVrIqSqs0vDAebIJ4hacbNi/jlDikk+KZ1a2BNwd+mIGiGZskETOIzcz5l+tQsT2+0gorPFzhXx+A0rzMIFpEm3cIN+N3us4RG05WXwKDtWClbtmJ/w6o8ZcJk9wEPbVQlOcv6ooT2JmRtvTcFpSxyLw4ViPPJjdpUdCixrXdad1qN56T9kDsz9voTlxWEmr3cdUTcG9Q4FxhkPo9yhsIO5GQtIqYjHVe+YDGcUJz8xGti/PfyQFCrDFllZrYOJeXP6VcYnE48WvrmvPuXQ7qpDgYWMjJsJInsuuJysL8tnQf/ySxy25zZy+Irt9FgUWR2w+fdQ6JYH9UXeUYuCFNucK0ca+EwooLaEO4RXwKhVcWYQBaPD2kldVHuD3fnv6iBUPma/xPLSxk3fdzcGXsEIcKwqsZrGs4D2Vf94NVvRKbBWRi7A5HnIBm/kGx90ZQGzFHLcIdGkaS3rU4mE5rzuhB4hKej1LQzaeoBR+ESdulVzzCXr6SvEwVbOZH/b46zxYQ7AzbAqpyOr7J77J3Uvzpz7Hj1Y0t63daVqjEOO87tQyKoTAvbPihmYrnbA/HerQhgyfP38VomWLpUS8/y10wx+s0sF7ewgy/PYew3DV33AORdQZEewY4Bzspo4+JzC0uFB1g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.2.0
Release Details
UpdatedMay 5, 2026, 1:40 p.m.
Changelog

Added

  • Bot protection that works behind NAT — Public form submissions are now protected by an ALTCHA-style proof-of-work challenge solved in the user's browser, replacing per-IP rate limiting as the primary anti-bot defense. Cost is paid per browser, so an organisation with hundreds of users behind a single NAT IP all submit without throttling. The challenge is invisible to legitimate users (~50–150 ms of work in a Web Worker), self-hosted (no third-party service, no external JS, no API keys, GDPR-clean), and adapts difficulty to the per-form submit rate so attackers pay more under load. The signature is bound to the form's file ID so a challenge issued for one form cannot be reused on another. Single-use replay protection via Nextcloud's distributed cache (Redis) with APCu fallback for single-server installs. (#76)

Changed

  • Anonymous submit rate limit raised from 100/hour to 25 000/hour — With ALTCHA now the primary defense, the per-IP limit becomes a wide safety net rather than the front line. The new ceiling comfortably accommodates large-organisation peaks (think 10 000 employees filling in a training evaluation in one hour) while still bounding pathological abuse if the cache backend goes down.

Fixed

  • Form description rendered as plain text on the public form — The form description on the public response page now renders as markdown instead of literal text with the raw #/* characters and collapsed newlines. Headings, lists, links, code, and blockquotes in the form description, section descriptions, and the in-editor markdown preview all render with proper visual styling. (#63)
  • "Form not found" / "Access forbidden" for logged-in respondents on restricted folders — When a public form had require login enabled and was stored in a Group Folder or Team Folder the respondent was not a member of, the submission failed because the authenticated submit path used a user-context file load. Authenticated respondents now use the same admin-bypass loader as anonymous submissions, so the share link plus token (and any allowed_users/allowed_groups rules) are the only gate — no folder ACL needed. (#77)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEgXx1k6T/jb0h31O0h5rzjkRhdCiLPnChW/hOo3JMOiATKU1BeP/KDCUw0rW9RpOhe5j7ySM8dogkKzsxJJvjNZCl92E7AeK5O0fDtALSSQnCW7P86vIUrB1IIt3RgwC9SEF2XLAF69prmf6JlH18Jqp4qMj6fw64GxrSh/mASu/FkmllqDoJBkml9jgJ578d7/ea7wEc4ugJVPKqVcENaVfYEaaprkAitesxpgArulem3djQLl28nnmAkoMZpXrnJZ3jr1zIFp6DSuCUpgnidtprxi2F8ncqglerVMeYXvohnBLzAP/yt+3LELcPyyDduursEkX0Of2rrjNRN9FGgtEE+OtzjW42pkbE5g0SvPS2s6FZR8dZukCcvvet7QE4CONVIDC2hDhNmCfqlGj3eaIkZzeiO8WLElqTX7LXEEB5oBBbiNUCgcelr3Lv0OZUb2/KtOlvASuR2hP2sLHDosmNpKnf83DpzfT8xCWz7BhthOxM0w/ErvfTpXspf/9+cJ8zExk+D9F38yoFGAf71m/ZDL0h363NZWb7tSl2mQtY2OF3NfBVicj5RFK6DnIZlD12UuvD/cj6dJcJYWThDT/OXrS3mvOMf2+FBHeLfi42ycGuElOMLqeVOo0PrOYE/O+H08IevLOq6JplXchq9PvlPXszN5g3fg3VqLeNuA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.5
Release Details
UpdatedMay 4, 2026, 4:21 p.m.
Changelog

Added

  • Markdown editor for descriptions — Form description and per-question/section descriptions now use a native Nextcloud-style markdown editor (EasyMDE) with a toolbar for bold, italic, headings, lists, links, images, and preview. Includes a custom drag handle to resize the editor vertically.

Changed

  • Form editor layout redesign — Top-level form actions (Edit/Preview tabs, Share, Results, and the Pages/Branding/Settings overflow menu) now live in a sticky page header at the top of the editor, instead of a horizontal bar that visually appeared to belong to the form description. Question and section creation moved to a dedicated "+ Add question" rail below the question list — the spot where the cursor naturally lands after editing the previous question.

Fixed

  • Conditional logic broke for multiple-choice answersshowIf evaluation now correctly handles array answers from multiple-choice/checkbox questions in both the frontend evaluator and PHP backend, instead of comparing the whole array against a single value. (#71)
  • CSV export of table answers showed internal column ids — Table-type answers in CSV exports now use the column labels from the form definition instead of internal column ids. (#70)
  • Orphaned fields persisted after question type change — Switching a question's type (e.g. from scale to text) now strips type-specific fields (options, scale bounds, rating, matrix, table, file, validation, date bounds) so the saved question matches its new type. (#69)
  • Newlines in answers broke CSV row alignment — Long-text answers containing newlines are now normalised to \r\n per RFC 4180 before being written to CSV, so spreadsheets parse rows correctly. (#65)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureTNODkyXkWcBDXqO4gs8raDC+CgQ/jQYD6wpAb4xj/yTwHRnv+VoA0emEpheTceqhy3gXPqEdX3lRZugqqHQ9fLi43xrdloAfG0p7y9lwjxm73ZhfYAEjHE+LAstRFWkxZgVqYcGUNG6dv8oFlip0xhgwEvH2RpGANcYmu9+7MBJpzU4TjLWAbkOLuFjFRahVFjWC2zmwDMK2X59qwfuRZhkUAPFz28eTsqEjP79p9ro7olkR1bBlySCTWpXEthLpwkJh4LrNC4lIIXM0aZoNlJJQniQbGIZQBIir9dkwHXorgJHGM87kQlI0IDDL//NsJ5cCcUcCuVDTQ9M0YSL0MUG6AjueUGkO1eEK/ESuwGjZe1wKzhqKi63jM2ACMTm6XAAl8v6rvORSvxIG6WPNIyLFnavxjhAmIQxX1e8nHqyZLL/PFLVeqOXYE+59Wp/rBSkhgSXOcYP6OwHMtaX/deac6H0KFQgtAdfa7bD6Wkp2TnN7loFyoqza2G5h0Sg25RZuzxYBwbCCkmflUtl0M80iyn6nwW7H19swostFBSaDyFrZX+lhTGQYsr7nKlio7BZtKdUjH4xbSsjJf4EGF8I/9GhdQytGpKQ/qy5i8FUYfiBmrx5BJg/oAHoER5Pp0oP0HQMWwv/1giNyXMp2dcuLWhP2hvAbB1IlBgI3ae4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.4
Release Details
UpdatedApril 24, 2026, 3:14 p.m.
Changelog

Fixed

  • Description textareas overlap question actions when resized — The question description and section description textareas in the form editor no longer have a resize handle, preventing them from growing over the per-question action buttons (edit/delete/drag) when dragged. Matches the existing behaviour of the top-level form description. (#62)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturep1UDsZKOD4hCwZY5bWgHJ1sTTRcCX+XrHdAlahJK5jV5EEDXag0tNIGqM4LIJOf7xHcn7rc3Z8TXxnFDoq73CXs4qBYETDCXhrmh8QrcRYKDLoSiZGQmktXdett83/EHN2Iwp5NIiR311QzukbAsFzG3wpZzDDbJ3qsmYv1w+K8mEye7C94JDmeuYrFsCk2LlnSIzNGy1yKDUmNqvPiHIAXIkp1ZDO9YoSiV6GavlNIqxsoa2BEREmgRKcUjxBuZZfz3YS76CHOVa5I28IapwspdZpzOB0nsLrgkSwWE0ljFK81X2OgYFlBTuV4ZTO+aan+69S0F/GHXQXmyi7udAmIGWge2kFim3Fz1ER+Q08lAATLJ1OaxkoL79kj3s32kO5U7d87tWaJKq321Rg9r8x0CgBG0iTUp/eCN9MRj2zdlTd4dLenLYDA4kbeXiSUZ1aBahzlVQ62X0eJLNhjxY2lz7ZhlmmTUtQ4luaxMlg4Yq854HSnzyXxtalC664EP53xMUSo5umFbE4EDAPHlfKaQwkGATg8ar6gocXvy28ht56jAWPgMISq4duRaV0/caEM7m3VwdlQihiN1zrpaP3mgmtHgdMw+ot4jYNr3MCbaEQO06L0zGNe1nLk0gawa482BU/Zej/t3uBWSiQEJM9e2IxF0R/VZGeCy96oHDDc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.3
Release Details
UpdatedApril 24, 2026, 6:53 a.m.
Changelog

Fixed

  • Webhook "Enabled" toggle unresponsive — The enable/disable switch in Share → Advanced Settings → Integrations now correctly reflects its state and persists changes. Previously the switch used a deprecated Vue prop API (:checked / @update:checked) which silently sent undefined to the backend, disabling webhooks without feedback. (#61)
  • Admin statistics no longer crash on user-backend errorsgetUserCount() now wraps callForAllUsers() in a try/catch and falls back to 1 if the user backend throws (e.g., LDAP timeout), keeping the admin stats page, license usage reporter, and telemetry job running.

Changed

  • License usage reports now include activeUsers30d — The daily license sync (/api/licenses/usage) now carries the same active-user metric that telemetry already reports, giving the license server full visibility of active instance usage.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureBsfsxecsMB2+i9+eq9JiyvP52vlLdV0MWJ3rBMLb88aKwbg2Nn51QOCW9htSIsOkmgpCUFGuXHyMm/lR3mFG3krH71WaUkBEEaoS7ySiUHq3Pl+8SQD22gt7wj6a+J/MTiZS7mObQtTYw3GzatusxyxgM/+1KaZwJqZxQ26CFY+pZXxxcSsfYLXnJIZB1zj4BY5rN09gfwM+Zw1PWXOJJz/Of5IeoFCDc2RdVE08zXQlfYVK3iHSb4naGwjTAPKwvmWFRpL6vCYj2E7qSykaK+2nK4av0myrYK8+ldNfi3Zh3bmkdXKYM2yDpcU9ijp0pCk1FY/apY329sr6HYBPKuqI0Ikss4YUVEBLaRNBA+DM6kVkAe5ihE1oKIsB/9Fmu6pPgQSxM9rYlw35xHgv5xcv3mP2ZiaVJds4vC7foRLobAfvUgje/eLoBELKBvAT7P2J4uF8n7F5XT3hoUciq638db8QIivn9HP83hqAhT8kY4mvXzkb2OJhGzumslcP9YDKfAD/fAPfJhDDDOSxTgSYJBw37RuG1eYMcGcvURw5Qk+7yU0eNtiWhr6zDVgu2YCoUK6ZRrbgJYNMZ0ur7Me4QU8+7AeUArbZIeajA1nCtqcPk9xmTAXCiNARtv0VZ8RdY1RZ5iVBOnK5+SbxHGBbQ3mZNZdKwzFAHhvsJOA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.2
Release Details
UpdatedApril 23, 2026, 9:02 a.m.
Changelog

Fixed

  • CSV export garbled German/special characters — CSV export now includes a UTF-8 BOM so Excel on Windows correctly recognises the encoding (#57)
  • Results chart legend shows internal option IDs — The chart legend now uses the same label mapping as the charts themselves (#58)
  • Unanswered questions blank in Results — Unanswered questions now show "Not answered" (translated) instead of a blank dash (#58)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureANC8GYEPpin/4ns3c7w+0sCffcPTLl1k+FArDTVECdld8uv6XX+32VP8CY4+Fz7iSF8MdPZ+A1+BoUmqXylSavw10zO/XbhGAU+TmjxyjwkJTE9cOTs876XBFP7lhOTqQv6C8sivKoTEc1N5YTY8gcyqO58hJgJML+4rqIJSfuUTBc85r75aBbQAMeTz/0AbVDsrimgRoS6HszEzj0J6XM/egGkg1wJQk9oXFB9ijTlZQUzjSPbRmONRjrcQEc9WfR+OKTFfhLAQNsr0bRKw/8jUksHTNRrxZ4tPsNfBX6mM6rHJfBardsGI+tSBZPvtjbj3Rp6akuxgLV84HzdUmsDPkvsK20AmPdPh3lotSNMYNSo/Qo4lPEzyJ30U6Zq8fcCBC6e9izKntJkUwPHXNcFtIuuVZiC8ZxpItE5k2tqXE7XbNJoDITZyVk6BVnFRUWXxh0IiChBnYHPEm7l2oAoJ6tvbkeKCIgSYNVK+FgBjehStT02YEk9uxkVjaeQNAn6OzclbE+LgjI2F5VjYZALk0QVmsKD0QFn3QyCG02sF/6fTzJPl+lP12+s4S47/WTIxNEJNLhPU+tuk7bF75BSUqqG3QGgIvzeFNBrEDKhSwA9g5Oa2YiWZEPRnq0ZYyL2rrXjHS5Nqo6K35AAd4xYq51vfpXOQywSfVFA867s=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.1
Release Details
UpdatedApril 23, 2026, 8:21 a.m.
Changelog

Added

  • External storage support — Forms stored on external storage mounts (SMB, SFTP, S3, local mounts) can now be loaded via public share links (#55)

Security

  • Updated fast-xml-parser from 5.5.7 to 5.7.1 (fixes malicious CDATA/comment sanitization and stack overflow on long tag expressions)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEiNCYJXtZ95soBULwBnHUYWQ2DhP3zeiwzU0RXYPEwvs0R9/ydEjCtwRud+c9PeNLeT1XMvAmP39radRc2OLgD2L12CSJaWj3IbYvSRVKAlnQFAwS44wDHmpuVf1dGq2Tr1Sfj7lFn+0ubYW5Xw1Pmqjft6X1ABtMW9sHCUQbdB3DwfL/EB0M5It+/iVDe4Z3OE5n7tiqhVe4vuFUxWOPqavDUqXS8MjWLMZB7SAJ8IXaF4kKG63qHZBfo3npKrTbbAsIZOvvy5rFzzD63brSd7i4QybX++QzMXSM/hYOTo9pGTMAgfmJzXCmDRn5s2M6lS8mKOOdLgsXMr8hZekJtuR74CZz83V7GyYXZEhe74D5KmiFhTajT8opzuwnQ3BLojEdlumIKzqKoRlwuMT2/28/Oz+S41OP4qmhRGx/Hztht+ml23/mJzIqzpZCulXsdb2U8j5c6Py38lDauvWE+Q4Xt3/yUjlFJVj3KxFQXTxOWUKzfsrU6Hn0T/wDwVX1XiRG2elCqAehOXdWuQn2w4dX9jcKQ0s3WTY41QtqAGKVAbYbQ5ROesX8+I8WLL2mIzkkDIvGtxz7Q423R1cA8bQzFNpK9sM6Cs6yP6Ro4sQtZY+qIAMTszuwHDUCglOgbMX8XVFd4kF1obfF2AupHWeoelvDEfxL4zqyCNHkTE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.0
Release Details
UpdatedApril 20, 2026, 2:09 p.m.
Changelog

Added

  • AI form generation — Generate forms from a description, an uploaded document (PDF/DOCX/ODT/text), or both, using Nextcloud's built-in TaskProcessing API. Async pattern identical to nextcloud/assistant: the request returns immediately with a task id, the frontend polls, and a background TaskSuccessfulEvent listener materialises the form and sends a Nextcloud notification even if the user closes the browser tab. Includes heuristic truncated-JSON repair for less capable LLMs.
  • AI conditional logic — The AI may add showIf conditions on generated questions when a follow-up is genuinely only relevant given a prior answer. Values are snapped to existing option values; forward references and circular dependencies are rejected by construction.
  • AI admin panel — New "AI" tab in FormVox admin settings with provider-availability status (live-detected task type), per-instance enable/disable toggle, max-questions-per-form slider (3-20), max source-document size slider (1-25 MB), and toggles for source-document upload and conditional logic features.
  • Scheduled opening (share_starts_at) — Share links can be scheduled to open in the future. Before the start time, visitors see a "This form is not yet open — opens at {date}" page; submissions/uploads are blocked server-side on all public endpoints.
  • Per-form branding logo uploads — Logo and image blocks in per-form branding now upload to .formvox-branding-{fileId}/ next to the .fvform file (mirrors the .formvox-uploads- pattern), travel along on form move, and are cleaned up on form delete (#53)
  • Result summary shows labels — Radio/choice questions in the Results summary chart and legend now show the option label instead of the internal id (#52)
  • Full translations (EN, NL, DE, FR) — 43 new user-facing strings for the AI flow, AI admin panel, scheduled opening and "not yet open" page are fully translated in all four supported languages

Fixed

  • Share link date pickers don't persist changes — Changing the expiration or opening date in the Share dialog now debounces and saves automatically instead of discarding the new value on reload
  • Notification icons missing on mobile/desktop clients — All FormVox notifications now emit an absolute icon URL (#54)

Changed

  • AI form generation is off by default until the admin enables it (unless a provider was already installed when the admin first visits the AI tab, in which case it's enabled automatically for convenience)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureQk7s2eNDcOC+qbqnbRWxqe63swdWDcu1YoTXk2BzNHTFVo7+JUP5+fsf4ZX2PYUVFcx/3n0/p1D+7C6vdtNUqxmAO9wKE3+MF+xjPMwyZrK2rJXVaaolGkfoVPr+PgiHlQYxd9Nh4F/YmkllR2uVTY1tN5QzDJas7ISwmPc1T/ArKlMsXQ0nlsKFhK3XEHGJ8TEWC06imVE8RKQcrn6G70/qwFYsdKopf/DjJEdhtcxTkd3UKLH6NwVILx1rktFfcd728U2HsvrS8LEBgLUd2zfUYJzfe4f3oI76KvzeYJIBOOje1Tkd59UbrrhJylZwWD3qxI3PgHiIh9mqgdCGFX9xSv6nIAjByIVHQod4hPgEfyzXNVvtovVtAaH0XKXU8PTOK38Gju0gHvtcQF7W1frK7ZaqjUudHOzweT87IO6Pnpdugg0TXXJqOSdNBn41cwjgIDkTaymrMGDw8Iaxfu0tE+nby/vlb4p1Yr8+wHbHnkVOy6WYT8SI2yhaUW7hYCTGJerJAkpwrH/3wWCurjF6eSjodyrU/eMkpb64GamAEYXhjK+1ErE6qvupetnJtoDgBTGaaVW384+pRUzUAOB0aYWqbxPL/BvxlcN0DdOg3yAP7vtFLCkx44/rjx0vBbZw7Pw7YwsUlvxntS8dc+NvajRd7lZwRMeZw7/2zGg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.2
Release Details
UpdatedApril 17, 2026, 2:59 p.m.
Changelog

Fixed

  • Telemetry error feedback: The "Send report now" button now shows the actual server error message (e.g., rate limit, connectivity issue) instead of silently failing

Security

  • Updated dompurify and follow-redirects dependencies to fix moderate security vulnerabilities
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturenWH3habsfSuicUPAYeMfpBHNnXo7QYa8/fAhRuYTh62gdaiNQArKCcTFCIevd260+kBMUoI2yj5aDoxq7vD6NriiUOi60FQkCd1KogxC51glVMyMm0MaCgbEcFZG0JIIZ9pAJEAu1rpoQwmkGRg5D0XaQDGUl7vkgZ/+OcUA7RA3pw60jEWueZiF+duvkhka2P3OTkGFzZodk6kX05SpD34ygRwNDeLiVwYy0E2A5mYWk2XN+ZLdMn0uK/6j8ch7xa1uecEl8deakE7jn72jeE+tOZ0qZBXcK1p/zVfHyrSSEny8xGTQ/JR+l4PT1pMbM2eMewJk6rKygGcPAHOK0nreGk+j15jMCPBTK7milwK+OvM3zGUSiLUr4Y+uSKNB3NQzmOQYCeH7T7DSG+AdjdXJUmYFjxeLt2hoFGPxR6lkAGvuRm4DwPfHHlPPetsmyGhsgL8ZYKX46l31RvtDYYYwmPeF8EF/UgPlTTm+KaRQoofAy16Hfna0NEwcqMviOGIDW3Nkty8vIPwM7a8XE59qokRnGGuYWkRR8UAg8tsTGelnAbd7bWiUVQOrjfonVCuRknVogJ9eemLB46TTVhGkZ610bj5WnIp7GzCeG9F5HZuZKpl2KB3a0YOqodbssB2rDBEbTYW5OX8GtaX+A349ZSd/iDSmNHO4iQNnZ5o=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.0
Release Details
UpdatedApril 13, 2026, 9:20 a.m.
Changelog

Added

  • Support tab in admin settings — New "Support" tab in the FormVox admin panel with subscription pricing, installation statistics, organization contact fields, and license key management
  • License key management — Admins can enter and activate a FVOX- subscription key, which is validated against the VoxCloud license server. The key is displayed masked and can be removed at any time
  • Installation statistics in Support tab — Shows total forms, total responses, and total users directly in the admin panel
  • License banner — An info banner appears at the top of the admin panel when the installation exceeds the free tier limits (25 forms or 50 users) and no valid subscription key is configured. A warning banner is shown when a subscription key is invalid or expired
  • Organization contact fields — Admins can optionally save an organization name and contact email to be associated with their subscription
  • Background license sync — A daily background job validates the license and reports usage to the VoxCloud license server, with per-instance jitter to spread server load
  • Telemetry section moved to Support tab — The anonymous usage statistics section has been moved from the Statistics tab to the Support tab for better discoverability
  • Full translations (EN, NL, DE, FR) — All Support tab strings are fully translated in all four supported languages

Changed

  • Statistics tab simplified — The "About FormVox" blurb and anonymous usage statistics section have been moved to the Support tab, keeping the Statistics tab focused on form and response counts
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureP2gopdnkFIlA23vbmBlweI6L9qwwLKioNUiltOry331cegOXVm1alaTtOG4AAZQE9VpgHBZ5VEBprxCk6vvuiLEHH/VgR+NbiG0xU4rTfPABfwBjyaABFhWWZPoGKpZ1lc5ZU6SYGqj6ucjpF4IwTWxsKln1MveRuIEccAYRBXSidPw1ukv7Ur6/Q2qv/BoAJo4YesXlgr7XOEZlu8Fn3dSaj3fLVG2zmh8pI/80tjmtn3588UP+ohyuSUUnMxqtUpQE0e5x+OuZjgvpLmOQQt7P1v1gsjA+sguWZb1kR3jq/Jqt8vN5TsI8gAKIYqq2DIArg6gnd2o5FSYNTgaaR6NJ9iNhua7XnHpFkc/xDXvKZqUpLwEpEhDlf0E/nTEPVl+nCZMZUsRex2mFta1TszXPA9nu62KQ997Ls6DwGOy//ad4XXRfbz59BQvdSOcOt9ZURBpEfFZs3KnvKHkGHrfwNE+8XtthPyhrQ1GtP1yxHH5nF8XMlLSQiwa8pWuf+xp/LpWu/oIuGryceg+C9zrFKiqI0SRwa8REtrZFHkApEH5gVCczanLcfluvaqRGEZ1ZrMuYpqLio7I3kkmdo4sW22AKhgYQeZMlTpyQlaW14hw9mQGtrGqCSHCab2y6jHESFtkR6JY1WSKhoxaxOQcMJXQREjApROtFijoHDkM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.4.0
Release Details
UpdatedApril 7, 2026, 2:58 p.m.
Changelog

Added

  • Sections / fieldsets — Group questions into collapsible sections with an optional title, description, and conditional display (showIf). Entire sections can be shown or hidden based on answers (#38)
  • Markdown in section descriptions — Section descriptions support Markdown including images (![](url))
  • Drag & drop into sections — Drag questions into a section; sectionId is auto-assigned based on position
  • "Move to section" menu item — Assign a question to a section via the ... menu
  • Specify notification recipients — Form owners can now select which users or groups receive a Nextcloud notification when a response is submitted (#46)

Fixed

  • Form not submitted for logged-in users — Forms with login requirement now correctly save responses without requiring edit-level share permissions (#43)
  • Scroll broken on public form — Added overscroll-behavior: auto to override Nextcloud's layout scroll capture, restoring mouse wheel scroll on Windows/Chrome/Edge (#44)
  • CSV export shows option IDs instead of labels — CSV export now outputs human-readable option names instead of internal IDs (#41)
  • Images embedded in ODT exports — Uploaded image files are now embedded directly in the ODT document (#45)

Changed

  • Toolbar layout — Editor toolbar splits into left (content actions) and right (view/share actions); labels hide when space is tight
  • "Add page" moved to ... menu — Keeps the toolbar compact when pages are enabled
  • odf-kit updated to v0.9.4 — Picks up latest fixes from upstream
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureDzTnWoXiqn8l00om8bW1J90Uu/E6uVvP73B5Xkir8WPIlGR51RYdQbCveelGg/ZR3L0GCoTuoJ5HpNm3uY6v2USyyrbQtClFU5ZBT9iRdg54KWOhsi/ubu8pmmPTsBEtZj5HUqHNjIE4WWtEANXSvoX/hZ6mrQl7VJBf+Dsrl4NVHPJGtLvBm18Wq6nqJ6moRsTQLfChnENSeDvxLDDXJA9zbnVSUksdTvx7gDhCU+t7sdbvYE6QgVVs3wQiju32TM+Ey6fMw2pBZ7fY0GfSF2gzU3czSMFKMFrGQGNj7287hBUJb1H2m3zfxYVVLXGxrJcJTMnWrVfoZpzq3qcwA9okRT4sBprsUVvL+PkA4S0ytHGf2C/c6oSSvbJVVku0Ragv1J88kk1Mx/woUaiT8kYerFuO9K2rRJ34IqKOnCjv8DGxYyjrJlfalUb7y1PhqUik5efZEPieOXfk3A2FwvwTIcXioa7oHCispAuajXcg0z5998nmv4CdzEjKuak/vMTS30zE+wQ6s9rBKgw1sCuslhVS5Vf3niWQOv3B/DZfGz19A/nP4IHFAA0QbACBaRkbPrkidSKCciV+OWaNq+WoZMgSBFol6TpAc2AiYuKdCDZjTgG8Z0XfZyhMYnUOHilah0I3ZttjsPbIPh/Ir79xJ8wpoySP3sxMTtmYczo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.9
Release Details
UpdatedMarch 26, 2026, 3:20 p.m.
Changelog

Added

  • ODT template export — Upload a custom ODT template with placeholders like {Q1}, {Q2}, {form_title}, etc. Responses are automatically filled into your template when exporting as ODT (#23)
  • Template auto-detection — "Export ODT" now automatically uses the uploaded template if one exists, removing the need for a separate export option
  • Template portability — ODT templates follow the form when moved between folders and are cleaned up when the form is deleted
  • Table question type — New "Table" question with configurable columns (text, number, date, dropdown) and dynamic rows. Ideal for expense declarations, item lists, and structured data collection (#35)
  • Notification on new responses — Form owners receive a Nextcloud notification when someone submits a response. Toggle on/off per form in Share settings
  • Wider form layout — Public form container increased from 700px to 960px for better readability

Fixed

  • TelemetryJob crash — Background job crashed with fetchAssociative() not found on Nextcloud's ResultAdapter. Changed to fetch() (#31)
  • External API missing pages/pageOrder — API response now includes pages and pageOrder fields (#27)
  • Required matrix not validated on page navigation — Users could skip to the next page without filling required matrix questions (#34)
  • Required matrix accepting one row — Matrix questions marked as required now require all rows to be answered (#25)
  • Horizontal scrolling blocked for wide matrix tables — Matrix tables now scroll horizontally within the form container (#28)
  • Multiple file uploads broken — File metadata was lost for multi-file uploads, showing only filenames instead of clickable links in results (#36)
  • Multi-file upload count incorrect — File count now shows total number of files, not number of responses
  • [object Object] in ODT export — Multi-file answers now display filenames correctly in ODT exports
  • Webhook creation failing — Fixed parameter binding for webhook creation endpoint
  • Form hard to read in dark mode — Public form templates had hardcoded light background colors that overrode dark mode CSS variables, making text unreadable (#39)

Changed

  • Presence endpoints moved to PresenceController — Collaborative editing presence heartbeat and editor list moved from ApiController to dedicated PresenceController for cleaner separation
  • FormDeletedListener extended — Now also cleans up ODT template folders when a form is deleted
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGH6DRDS5w+4R6rfA8rBo3kSIFAG05bjIREgWfDIDt4Y90nrmDC4I1IiCVEpKGAOAsysQ8Np/Kh5pqVn/bgZgopAdfinadLwoyBPqYiDkCzJZmm7vs7z6/7hmaIMWsGIT3JGOotuHSKOsUUVnOYuZUFXzCx8oOg+dik1zHGte+H2klZcYOJ4bo3x2xnSYkl6FR1UQWxx4Ng+fK3aVfs+Cmz4XvIxc1es3ciGLpeOlq0P358f5doqFVIx5RRnEZ4+rFYszO9EJMG/3YR4i7esh1z/wrYX2SOAwQesv9g6PNnwOOOU7a7mmOWsstt3iRmUOqrf83c9wl4j0EUhxxPMWWp0sY8wme+QT7Tizk5Xh/USWHz8+jRWJeIYfjukVk4krYnXGQv9cF97WSYTCAQJ1jpcY0Y/pmp9QFFZeexlJSy60xo4Cv98k1irLGZibjk2hkjFcWJzh0VrgRpynVB5cYuPEwdB6kPzyFLO9joSK8vg7LilCeH2Ah1u8yUbkCI/tootQqNuMbRwLQQ3QJr0o2cPZC0jXYPuJplf3ug+WUeD3WZxouboTV7x6clsDQRSwrNae2QEzCouFa/vSA9lR9TvcyJ8cfdErUmygEYwqHQ/rv8HtLgDmWrDnA8+fYR6vQrrFDqLraFDP5pWkost6MGnqzJRitceO/kA/38JEIvQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.8
Release Details
UpdatedMarch 13, 2026, 5:22 p.m.
Changelog

Fixed

  • Form submits on Enter key in multi-page forms - Pressing Enter in a text input triggered the browser's native form submit event, bypassing page navigation and submitting the form even on page 1 of a multi-page form. The submit handler now checks for remaining pages and navigates forward instead of submitting (#21)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGNkiMJGIKnQR0vX9Guh4GkUGa/uYR1w0RIAWKXmo24z02RTHUlmvBSTUlYc0BWz0Mp5l6o4TDMDR4H5EckmM+OrhtraluRxu0wCt7NIxRao/hVOdQjVeXenGjJKJsxpcJdjFTt3i34wAlNcuurewF0yF4vN1gSgnsq3POapllMUoaCREt07bLzb7i0+QHDsDVgs6uf0xn446Jnih57LbMspuoD6u92+4nNPdGTAbw5HeLeKa2tpMo2dxWc6jDwZK7Za1GUg3t8gP0U5qf2toDaTf7L2KQd01v0dBLzuDSg2QKdAC5QKFSHubRSW/SamUDelPulkB0JsAzsGW2PBciQiEgAzASsXYPaHvWPSjFyOoGa+707Rg9h+pDge3nBPwcaexwhbwQMjdjWn65vMHbTxqLNbNS8/JGpLCcrnOeRsqQUr1xlTPVyxC4tYewE6xZp7jkDOgWfUDNMqcgEh5Q2Kzn/IxaEgW4VuTg9j647VU6KqVww6kZVbCOoPcy74MsBSG7bs4UBYGThpQ0uc5RYUFqOUpUQZhITM8iNZp/8gqnOgFjUiEUvuCEP18mBsPr3SW7bxODUIjrLRIsQzi2vTZiHk8kYNe8o5pEc/Otdp3wNJqlPzqc7OaG0iT1exx9Ad4RmDDgPlC0rfcRk/UVJzWs2KkTyV6iLuL8ujn1X4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.7
Release Details
UpdatedMarch 13, 2026, 2:35 p.m.
Changelog

Fixed

  • Single choice / multiple choice / dropdown options have no value - Option values were never populated when creating questions in the editor (always empty string ""), making all options indistinguishable. Radio buttons, checkboxes, dropdowns, and conditional rules all failed because every option had the same empty value. Now generates a unique value (based on option ID) for each option. Existing forms with empty values are automatically migrated on load (#16, #18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFy0zI/ZLu1i4uixJGINESbnSdRYvFpm9++0NO/yL6X9cXqLSKlfdUiVPHMMBGu08UZjIx3QiNi4tDt4rslkBxR9bPGQtEvhMM9HvmM+DB9jtoLLUVsmLwnSahUM4NUCgNIkmpsMl7L9AGarftcOwtRTg4SINWi4isQWgliswP+7fvG4+m1cGKcgY/2uzhRzdkFMYP5yyXjxt81qr7ejr19q9Zo5E7d8QR3waA7XbDy3zaN8spgCrYvJxU5LY0zkD5edXgZgl1BaWkt44BLuioAjDMrBz5CDeTbtDG2ZTJPTuZC03RhWPWkC/PIeHFSi+ULRq5BqKGayse5lP9JZkk0SHGYhYwHm1ZEIiXB1aCUZBxjSVuLAtSsjprx9ul3FXqSg1YlsDi0yjo/djcFAtDz1lpPkpWheSq6ZuooPYwpKASEuPuItoYZpLdeN76TsJQ5gNFghCETB0dCod0otvAKZIlFW2T7D17J3Hqr9u+6jVidjIl84T7uYMMCAjH5A37DAlKbaFnYJw4+p24+UlnF2ddHIbp5SriQZOuqSlseFX9QxM6ENjuSb97pxdseApfeQkkfU9YiyD04hylaqHzUO9qZJu9BW7CZaXQtakQ6Ng7N+6ricMvLNBAqWs5dBetAdC1EaUh1y3nGuGXAeZc751+9mN4aRKL1spa7gehw8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.6
Release Details
UpdatedMarch 13, 2026, 12:57 p.m.
Changelog

Fixed

  • Translation .js runtime files not updated - The v0.3.5 release fixed placeholder names in .json files but not in the corresponding .js files that Nextcloud actually loads at runtime via OC.L10N.register(). All broken placeholder names are now also fixed in de.js, nl.js, and fr.js (#22)
  • Single choice / checkbox questions not selectable - Confirmed fix was present in source since v0.3.2 but may not have been correctly included in the v0.3.4 App Store tarball. This release ensures the correct compiled JavaScript is shipped (#18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGsNKD/zZO8q+PhEIna48W0VkliK/7j87UZOTEy7+v2KC8acYz8jpOJZA+hNkqyL9Lkj4nIhUc5HEO7tJCEKUtrZOvUO9la6HVrMihnU7X4y9yCttfBeqlxhKw9N3LoVoS1KZ1n8bCgxpPvZMqKKTMwM1tRmDsbENLv9RaKq3EEKIwufYRrzn5RwMY+EdF7j1ywScjqjxYYcd+7euIQi38ATMeuQLTKkpEU/SZSmtciuH4wdRidazcKf/9aceL4BhbgShC/216I9klQ1Y/LvNaiKaEf7wXeAlpWY5zBhaSzfFjRDLWuzXJKTXpJmP2sxk30a2PO5zZpOFpFIJJreonrkxrb2RPrOh24CTOm6hjnTh3PK7uIgXBmXunuWjduGBk6E19DkjkUdljloipkbrzNNhdukk8ppBemkLDFgSosEw8y8qOta7jsNxiiMnbAzs4CZlefS0o61g1Of3tb1rzrEfI0eaT6KmMpO+SPqjoDHTvAGHH2UdYR9cJKF1ZUq6Juh63oOk88zsuM/LvkP8NVzQGuRokdOo8cmTIaNAlpE2GVJMnqtjYunf9I3O9ivRQHubHkXtesJqn3GAt4cxX9fHYDqb7xULqUcsRRrXpTQivsNrVF6c+udvhySUczVdaZ+B6zsae3216I/bZV5cwLGtXAFSuz3psHEMvIiVZUI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.5
Release Details
UpdatedMarch 12, 2026, 5:31 p.m.
Changelog

Fixed

  • Form submits instead of going to next page on multi-page forms - Previous and Next buttons were missing native-type="button", causing the browser to treat them as submit buttons inside the form element. Clicking Next triggered both page navigation and form submission simultaneously (#21)
  • Translation placeholders not interpolated - Placeholder names in German, Dutch and French translations used translated names (e.g. {aktuell}, {huidig}, {courant}) instead of the original variable names. Vue's t() function only substitutes exact matches, so the raw placeholder text was shown instead of the actual value (#22)
  • Screenshot filenames with spaces - Renamed all screenshot files to use hyphens instead of spaces and updated info.xml URLs accordingly to improve compatibility
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturefiwy4f05zwUTsL/mo55TXaZGL/hFV7q1Yz5FrIO0yq/Std4g1k+r5725ISI8l1/kSQJYWEJnd1srbPvVD7PsBepvin04T2N+Dgac3j/gizz3BMba4U/Ix+qwOWGL1QGFBYuvnzTqpMKuZS23LwO65+hwMDporNCGDQa1o5ub7n0LthvLJ7q3xgRb0GsKCLHCV0jKBLOcPqYSIx3/Kckvd6CQYvHXudSeucheXwqb5xKhl0jFDA58g4G4axuEZ/vRzhFxsTTQZYOS49nTceAj/xl3HT6zYiCO0GfsUmqDrLmazpzH7E4TUePzrlCM04j9wyM4EchuXAqkj1NpazZx46OsMHl+t1/Q31ro7P1iYtrVLoMpjPFQa8bCR1VWrOjgnBPjw0gQWbhaOtGByyJg4udpT+I00+jUuKCiT398EUEonFRBhysf8eIENGNlRHNH/3yjJSLvm2S4iaoBABUWBSgZWhQvLI4Ep9jNoCeM8jcumOQWnMuE/HFyQB4QSNVevBaayo8VMv6Tj4Zl8PbnldAA2zHFc4EaPNek5OWIqLhEnKk01wC5zfsKFysDmOvsEfZfyvG0LaRApp+ioCM5+dsict7+LN4b86Ib7NOMJ+BQEF6fwWXN60KmptUl8OBCepOI9KyCE+MYqqzLUqh3+/P06yBw166eTUTD/kdxdxo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.4
Release Details
UpdatedMarch 12, 2026, 1:32 p.m.
Changelog

Added

  • Date/time range restrictions - Set minimum and maximum allowed values for Date, DateTime, and Time questions (#15)
  • Date/DateTime: NcDateTimePicker-based min/max selectors in question settings
  • Time: native time input for earliest/latest allowed time
  • Client-side and server-side validation with clear error messages
  • Date picker automatically restricts selectable dates to the allowed range
  • Markdown support in descriptions - Question descriptions now render Markdown formatting (#5, #6)
  • Bold, italic, links, images, lists, headings, and more
  • Images in descriptions are rendered inline with responsive sizing
  • External HTTPS images allowed via Content Security Policy
  • Links are auto-linked and clickable
  • Answer piping ({{Q1}}) still works alongside Markdown
  • TTS (text-to-speech) strips Markdown syntax for natural speech output
  • Condition editor date/time picker - Condition value inputs now auto-detect the question type and show the appropriate picker (date picker, datetime picker, or time input) instead of a plain text field

Fixed

  • Date comparison in conditions not working - "Greater than" and "Less than" operators on date questions always evaluated to false because date strings (e.g. 2026-03-12) were converted with Number() resulting in NaN. Now correctly compares date strings lexicographically (#19)
  • Question reordering not visible to respondents - Dragging questions to a new position in the editor was saved correctly, but the public form still displayed questions in their original creation order. Fixed by using the page's question ID order instead of the form's question array order (#20)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFrSf68Mci1D31suRUVNzg+pPPiKxkYfn9Ss5QgA0bJWTggh9x240M4+3KrF+MrfqolaiBGwGbpbE6qtD6pgjFc/nCV3yQbo8phgErx5kk9q5tA4qLK0SKG5C7dqPwub9Mi2BXxE9/tTDrAGyrAOo/CHQ0wZ54h7CM/qO9lU7aHUNTDrbXf9Wa3MUd2O3B0hqAShxnDVFuG1fNpW59r7xd4UfGG1nsU7BCH1ahUB4Ha0P/JdrlrhHRia590gZZ6oXvm0wofA3bDOi6ETMHeuPBIa8Z2zZH4j8OmADhqzZyekL9YtcbkP49ukmWUUP/KjQgs8AoPLefpPIDvuEAjJ+ArnktsWh2MwkaTlAEMMlifZro1/yRpzZyDXb5PcJS7JJ4Egu8htlRc0RQPJBjzTogUAZeenzDq9R1PvbAI8c2MnaWQ8kLGmzi+eBkbkEa6lj6Z/vZSlnkHQqpB+HfY1C6X7WGzqZDxgboiVi77tB9ASAphvPPTFU999ofpiv53bBd7t/aNHHu8u/V6oFj0NHyA1p2ZK8Cgs4LG5i4XK+TPn9zfnvXQFEDzJfrcAK+6Wa6UwR4p3jpO49R/k8Wh3AFKJ09l9bAPBu+FUlntYsq+tnKaGcQdJRwmdxWn+yOf/5I9WZ/aYfzjI9H+dMS8caMbChabJz0TSDErq3PHZBShM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.3
Release Details
UpdatedMarch 11, 2026, 6:24 a.m.
Changelog

Fixed

  • Public form scrolling broken on some Nextcloud setups - Contradictory CSS overflow: visible combined with overflow-x: hidden / overflow-y: auto caused scroll to break per CSS spec. Removed overflow: visible from all public templates (#17)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturefEKSadx+pOeuWOEx0FgzF2L1QVc2sRFmYT7t6eKVTQYknBB5xhu3lgYeQDD/2vhjGQy6YQZeBZpV/Sxm8DA54aYVdFFfAgiN5EnvBtWfZNm4hy2V8UjSFJqXJfmR5DQxFI6emX3qagKjHbqmcCP9chndr30RCgzomENXQKETzY+yIiyldWY0YUMQxTQAn9vPfMjPGGx97l679QtqcEnhvXkgbPCU4L5Z0pBk0OMAJidQMsyGQDc/5hXRNj5JWvvzEtXxqPBbjMNrtewICTsVEx4QMHUlEeoBIJi86jM7ERII/dNl0WYYp8TAJuW8qELiSD21vhe6yTOIZCP8XrZVuXQoC4iIHghAq0myn6rWfpt4E2lzbVjPjRSu4xKegeQ1InylrcfiwqVk97QfYYgY+cj0Kals5l9F65P0UMbU3qK1AezJhWyprQaq9/CCIpP+aFXMA8WYqtlslWKp2juyvNqsaZdmy0Raa72MSrK4e6FnhmikZWBMFoIP63sS272wJPr1yOGDpBQXbGWWlBZmNmzFGqj6MGqI6aE4wsFEmMAG3/yhoeJ9x9NtxxDslehs82o1ASuBCud6sXpzuWhBtNuEi/rgw2sDojY+sdKs/txftcbk7Sin++ExLKnqVeyGoa/Jdv89aUgxFm6uXCVn/6jyqyojgMFtTz14Ip0qz70=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.2
Release Details
UpdatedMarch 10, 2026, 7:20 p.m.
Changelog

Fixed

  • Single choice questions broken - All radio buttons were pre-selected and user selection didn't work. Fixed incorrect NcCheckboxRadioSwitch API usage: model-value now receives the selected value string instead of a boolean (#16)
  • Multiple choice questions broken - Clicking one checkbox selected all options. Fixed by passing an array as model-value with proper :name and :value props for NcCheckboxRadioSwitch's array management (#16)
  • Dropdown selection not registering - Dropdown questions showed validation errors even when answered. Root cause was the same NcCheckboxRadioSwitch misuse in the underlying component (#16)
  • Matrix radio buttons broken - Matrix question type had the same boolean vs string model-value issue (#16)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signatureyz98Hn5Q8sjMWsh3r/STylb8Gr89l+FyKqh1aqGeVv5pv30YipP7O1Ho4zEE6cXJgBLREMl/R32EJd5hVya56kVy2vhEESL4Miu0ElnC6Mkm+BZjOb0YrDwV4LJ86auCuS+Vh0QAeyHlNBzpdxfAHW0IeQo5jSAPRAkRNTBSuYacrINezW6o0fMscXUINTDHTeboIgZxa/bF2XWof2dIMTIOVEdLOJwc1PXTvNg1NSsg4LuxDFenCNrMOQQnDEvbDjbF8ERRPhwaiksu484OjL8EqREnlWYG3kLh4DKZq6fA+Iny/7znDg0kt4DwstwaPziCx0MfEbPXlP4A8T7Byb2YCkmUe/2FgB8i4BsviFT1EcvEF9jV2+A4pVY+Ud7Hvu7Ns/6SVHeqeG5s9V5ApJljo3bjrOixAnRKG1LTiz7+MbJhTX4soxP9WOCquAjNtXIbwG4YUz7vE7FIH4nAQV6+9PYzofhxktmCep7IqDp2FtvCj/Wx5irvo3EC80gxcSePncDLswlflI66P8g2VGC99GYXrnFx2UybcbATSEClo3ahAX3A+4faLYe8EV7QQSvhCWRbaRaNGxz/RnjReQO729kX4FG+o1pLWfNiTxEiARveoQ6GckWq3EC63DupTTNL9V2Ue5WPUFKAnui1UpIPRzPVx37+8EA2KMKjUEg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.1
Release Details
UpdatedMarch 6, 2026, 12:01 p.m.
Changelog

Fixed

  • Added missing translations for all 0.3.0 features (page routing, collaborative presence, draft autosave, QR code, accessibility) in NL, DE, FR
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturelEVUWpC9Qe7GphfENOubjL5H1piT7pdcg8tZaB2SWRUKsd6IrEv8vxW95fshNG7yCI8MRTNOkVQFcW+TVx877aRh8YXDd0I9IfDwLc/H8wQHhSUABZUBZnrDrAg9VqVTMEMpjTdJCDVyb3GNDbCqaY0hvEta6YAglxZtx6tptwWq1PSVXBzlQLIzpV8Bs5nmnLt2IoFkKTHSNLWGf5SWKL62/I/RcS1VYzTa4W5RI1+irZ709oGATMDZjgc+QDliyL3Lryk155pMypaGfQLRfNHej00OzFwSqAGFHA2x0u6NYD+FbmrlF0UYUhFR9El+2o6lA27KvtHVajs18yiIalAqEt3GJDjKdiSA6mioZLwWTufui0wv7lW+28v8PKUddl7uu+UJZFTaczv2E23x8mHHLWRybIt9D33pjT8dDb8tAF/sLqnlKvOm4fHkE0CQeUoJQ6WnlDjq2xyla8hrZ/+bnK5sYiLpV1DN9d79FwQkOV9wVJX0m3O/FGQnudnmmnx6JTM5oJ7lEoTqVnNh8C/XGZcZA1WUAyTyvvDJvssjRa2lJFGk0/opsnbRQDtZBDnL2xrhroK9NJquucWc7O+FifgFhVYLz5ILAOprGKsnUTCPAfaf0lyWlmvFwQ8BGMG2RCoAOP7lncDL3cAYORYIUtgIHJgb/KjvxxuaWK8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.11
Release Details
UpdatedFeb. 18, 2026, 1:24 p.m.
Changelog

Changed

  • Nextcloud 33 support - App now supports Nextcloud 28 through 33
  • Replaced deprecated IResult::fetch() with fetchAssociative() in StatisticsService
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturepj2pVxyGgN68FQKxKvx1c7236SGBbg27rILExPtROf2hK8AcuNPNISmg5NUS62eg3Ke/VsHWwcgd288FSyY9X6bhKiLlVYBMVx1PMEIGO6RIquK03cXhrcKP2uQAliwoMOKsZLgkD5yjlwQ0Bj1XbZ077wb3c/5343zmBWFbQtwTlZ+M1tv6q7Uy7riorsIiVG4ddL5MM3uVQOWozbOTUQjHaFt/e8WA1eF10tRI5omQobKbdqA+K77ffP4y4fZRJDUpZ6TLpoYY/B5HfgBGVzrBW+sMRWTSaflQkndm5fxj1dsGnXOTiyWPy9Us0ElWK6KjtpkUGiSmEcvvqLV8nXDTrrSQp5KLdPEfQDxShU4NVbePabHP7x0n5Jah4U0nyUFOisJmrX9F557/bN+Fx293nKd992O6GMPlpsgyC7Nrpo9Q+MFmEIH+/k67uYTUQ1HiHjrBl7t+4lSy/KVpG7BQPm6LDGrF6T42BskHixwPVLXLTkAy51CZHB6TxDPX0YXVVFh8+55cS6vVglIWfFx4+hY1NMwrbDPnI8ZEVMZOaB8Nu3MskQBnhL/lnMYsPEMR/j/0/ejFt3HlB7pkhSIZj+MCO8GaKVdsfI42hb/u41aIlMBgjkmcDVZy5xK5JZgrAOtljyyOi3NXHYSuAFVYpBC01vK0RnpvcjQtCVs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.10
Release Details
UpdatedFeb. 11, 2026, 11:41 a.m.
Changelog

Added

  • Accessibility (a11y) improvements for public form response pages
  • Text-to-Speech (TTS) - Speaker icon per question to read question text, description, and answer options aloud using the Web Speech API
  • Toggle behavior: click to start reading, click again to stop
  • Language automatically detected from Nextcloud user locale
  • Visual feedback on speaker button while reading (color change)
  • ARIA attributes on all question types for screen reader support
  • role="group" with aria-labelledby on every question
  • aria-required, aria-invalid, aria-describedby on all input fields
  • role="radiogroup" for single choice, scale, and rating questions
  • role="alert" on validation error messages
  • aria-live="polite" on page indicator and submission status
  • aria-live="assertive" on form error messages
  • aria-label on file upload zone, remove buttons, and matrix radio buttons
  • scope="col" / scope="row" on matrix table headers
  • Keyboard navigation for custom controls
  • Arrow keys (left/right/up/down) to navigate scale and star rating buttons
  • Home/End keys for first/last option
  • Enter/Space to activate file upload zone
  • Roving tabindex (WAI-ARIA radiogroup pattern) on scale and rating
  • Focus management
  • On validation error: scroll to and focus first question with error
  • On page navigation: focus first question on new page
  • After submission: focus thank-you page for screen reader announcement
  • TTS automatically stops on page navigation and form submission
  • Skip link - "Skip to form questions" link (visible on Tab focus) to bypass headers
  • Per-question inline validation errors alongside global error banner
  • Screen reader-only status announcements for submission progress
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturehiico8sT2nFtIBbugEJCh0mtYVlay9iXrypCE6SdEehLcb06zqxaaRRV1wer6DFZVlpEaGi3qnWQu512jWZ6v18DW170EltnjVHFhmXPW+Fx4WasefOa/8MMQg1bkZ+8y77Hmll7pchCrhG5LtzSNcIQDAtczM1S2TVQ9dw7JdrtZPqI76JN+P+2pdex+oHaJ0zYAKZL1WU9Ygmdzsb50QSaJkMW9GXuR/Ow14uSfZBdwp3q+LzxD/x6W4tz2VsD0GXIFam68sMaNmnZBCK0FkwkjSP79zQI4decD6qilaDGDL40lWWN7muH5udYpPi8Xf4Eu/sppALufrcPepA1Hktns1IZ0pIjyf91la5sc37NbG+K7Jw+LKLbqegaJrcwiORS+3rcmDcrNrRYxmyyy8KWIW7t+sw5oD9+dItl3XiUKCDL8bfcVxTnci/1of+vZ5KzyxbAzA2mAOhV+cMuKm+5RX6vNIjUbYhqIrQpTjeDbdmc3R/2hltUFk5bOBdG9+qnUc/bAp5aOdSVU3mvgt0eW8uqGpu7B5tsF78STgexiHPuZ35YsXIR/Zbl19zGAtyA/lfC7TYSgOIION8vaRE3MjlgUr/aldDMtjB8q6oue5KsLBcKBWMCUKcomeZ5zWG6XLq7j+GkD4L8+Py4GI1HvlrPWpZ0fROTG5fLGzg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.9
Release Details
UpdatedFeb. 6, 2026, 1:21 p.m.
Changelog

Added

  • Question color coding - Assign colors to individual questions for visual organization
  • 7 color options (blue, green, orange, red, purple, cyan, brown)
  • Color indicator in question header with dropdown picker
  • Colored left border on questions in editor and public forms
  • Custom regex validation per question with custom error messages
  • Define validation patterns (e.g., postal codes, license plates, phone numbers)
  • Custom error messages when validation fails
  • Real-time validation feedback on form submission
  • Response limits - Set maximum number of responses per form
  • Custom "form closed" message when limit is reached
  • Live counter showing current vs max responses

Changed

  • Share dialog reorganization
  • Response settings and Link settings are now always visible (not collapsed)
  • Embed code, API & Webhooks, and Responses moved to collapsible "Advanced" section
  • Cleaner, more intuitive settings layout

Fixed

  • Scroll issues on public forms caused by password manager browser extensions
  • Fixed for LastPass, Bitwarden, 1Password, and similar extensions
  • Added CSS workarounds for extension-injected elements
  • Improved scroll compatibility for Nextcloud 28+ public page layout
  • Nextcloud 33 compatibility - Fixed deprecated OC_App::getAppPath() call
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturerIF5qS38JiuDBtmQEKuf3x5L8wtIMHDBYN6IIhaUTWhliFinBAu8YtyJC0lu/sN4zvZxK3ILE1+g3KRjLc/g28ZhK25O6Lnl3D6NtfAP68fVIwUibU1SHSyJV+jrsK0NpmwgH3qNnMWNKnVKfAuxHje12zQgZJEiG4/5fN4bhaAFNn/pXBKfLtAbRrwyVtDBCPm1YrruruolO7MWt65vKbOUgtnTUZRrwwLb8ygKHVVEhYSbptstvUPkaR2rp4y1E0xoa30hz6k37PLYitjCZ6+H9cdGNyyALn6dWrVikW/R43wQPATsDnbBpU7FfFpRtZnwrizttFbcwYxnI+PD1uiGkNdP/fl8QXADqcEXqI2otRYEpbr4xJtB/gpVbduGFWtZU3nopdYBg6xFpjbKhSMkWKZZFfixM/WKbZdWeZoQ23tuPUMNC74Cl1//s1TC433gYmryYh3ZFTyTCjhwt+vHH8MUpRTOAUsOLV1UFk4ey4Llhy/qFOlp2z0o5ST61/XdaWBO0tSFsjUMsK8xmBo5Y10H1BfOx4jOBMi/QF18c2GBd/HIK1IC0uAE6dAzOpLSy+oEhZEdfRTmN+Py+G22/VmHr1PxUpd/t/r8yLT48uT7oQoDwWsGBhw77DhVaDRM3m7wMe36VAfJSWIKvcOSEt/q09Tk4BlX0O6YN30=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.8
Release Details
UpdatedFeb. 2, 2026, 12:39 p.m.
Changelog

Added

  • Microsoft Forms Import - Import forms directly from Microsoft Forms
  • OAuth integration with Microsoft Entra ID (Azure AD)
  • Import form structure including all question types
  • Import existing responses
  • Support for multi-page forms (sections)
  • Support for Likert/Matrix questions
  • Admin settings for Azure app registration configuration
  • Per-user Microsoft account connection
  • Question type mapping: Choice, Text, Rating, Date, Likert, Ranking, NPS, File upload
  • New "Import" card in template gallery (visible when MS Forms is configured)
  • Import wizard with form selection, preview, and progress tracking

Changed

  • Admin settings now include "Integrations" tab for Microsoft Forms configuration
  • Improved documentation for Azure app registration setup with required API permissions

Fixed

  • PreviewProvider regex pattern fix (preg_match delimiter error)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureiQSbO+QhAacmAZ0f0XCyecq/v+L31Q/fOwbV6RkX3DUq5ObV/y3odSGq6nCKT3AmCyP7JRN/i96KYAkvJUyTyhmp6P9CJv6IxuFar6g8FkoWz1cXj5wLoDsdZosPhhtUePNrGn0EW9wihkcZVvaTxDpCNgf5HXtVFp9odpDXWOOZrakxyMoSD1koc7CmkkrYCGN95I5470K0gn+IkdkZLrq5hKztiJIt170wSeJax1HIWKBkZ5ngw7nO3UJzPXq0GVfdgWtUbm62TKAv1KwVwcxsvwvGwed9ox1F7LIS8JVRnjSzlq6NSWODO0YENg0xWzdDQXcdwE05vt0zZL92h7wvS7oMgr4CHyOczU8+oIcJRJ/L2idwcvw36QThb4NAOzen093WlFdwMFLqPibYKtf1Vr4FmfHRbtFYe1+6YP/Yuezmn3GrTi/hJqgiyOoRtiGv/WZyZlAV9V4p4o5tsAsij/LrqX6urKPoCRBU0Xv+7xI1rZI/gqMqXDmYgPEmLvVzimaxvHQsC42JT0Gk7HOgnrUYgOVRXuFYTTnJEFZ33MaNoXywCNPf/AjEMTYYKPjq77fQy0rFHtcE3GmXaNMzkGbHx58hUZIsrCwlZp1Iz1rMP8T9f/TvrN58J8Ij80OHJfxIAbESzQhe7k0EewOkcJRuI58UHhhI2iMaRWs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.7
Release Details
UpdatedJan. 30, 2026, 10:56 a.m.
Changelog

Added

  • External API for programmatic access from third-party systems
  • API key authentication with bcrypt-hashed storage
  • Configurable permissions per key (read_form, read_responses, write_responses, delete_responses)
  • CRUD operations on form responses
  • API keys automatically stripped when downloading .fvform via WebDAV
  • Webhooks for real-time notifications
  • Events: response.created, response.updated, response.deleted
  • HMAC-SHA256 signed payloads for security
  • Configurable per-form with enable/disable toggle
  • New "API & Integrations" section in Share dialog for managing API keys and webhooks
  • Comprehensive External API & Webhooks documentation in docs/architecture/external-api.md

Fixed

  • Admin settings page no longer blocks on statistics loading (statistics are now fetched async)
  • Consistent app icon (app-dark.svg now matches app.svg structure)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturej4WG42Wxm8UBPQq0I9NBJ1SJusy2ORqxBWubfd68QVERrk7kPEwlQVNegb8C5SVRed4cgkwk4o/B8O0SYchfcun0H/29EZaxnLsBXtR8k1h5s+Y80XmE50SjAQ78nwXR0IIM5DeUgkg5fAzJeJ4u6nxQH7YjEdvTCmAWmUe2vFkOBtiA9NIY744nMX4fJ+BxTDk7QGnkXeFPAkA14NDN71/9+bWsvKGu0WPcBpa1CPikUzUKj7Wk/OIOoAaE6/XvP4/pucwzJ4tukZ3xAdvtWPOmX28LSZZknutF/KvffqSv19q8+Fp4dAjsWo2Klk1PLxHM971hr7g2WsUsoYtHC3wmQlmq4d/n6Ug9gk/CdmnjbR2k06ruKsnt/+okphvAJ2Hz6hdCsiBJTHI62jNT+gnAxR0edndaQ3HSxPV+lzMuVeDzP7b+a2UvLKjNWeZQI7D6ms8+Sv80L8CPb5pDOFyWOu2ovZPmYjkXFJjdXjARuOupp39fdlH+TU1RnULR1BIagSZFG6rcxLXiqBGJA5mFzGzOsoNyyZ9uFDdLe3B1X7pkkqQ2z/3KaeAZmpenv8dWTjhDM4BjUuSKZzT2b4bAtN6VCu13OLw1BF4yWmXREw3VSc5Qvz73YeQek7TL7VI6tecHn/06NaaPrHKKOhn9uVPQJg3V4qDTOLr9Z8Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.6
Release Details
UpdatedJan. 28, 2026, 4:18 p.m.
Changelog

Added

  • File upload question type with configurable allowed file types and size limits
  • Download all uploads as ZIP from Results view
  • DAV plugin to strip sensitive data from .fvform files on download (responses, settings, tokens)
  • Form embedding: embed forms in external websites (SharePoint, intranets, etc.) via iframe
  • Embed code generator in Share dialog with responsive width and height options
  • Admin setting to restrict embedding to specific domains (Settings tab)

Changed

  • Editor toolbar redesign: Preview, Share, Results buttons now prominent; less-used options in dropdown
  • Editor header redesign: cleaner look with underline focus states
  • Question cards redesign: hover effects, focus states, modernere look
  • Description fields now use multi-line textarea instead of single-line input
  • Improved spacing and visual hierarchy throughout editor
  • Required questions now clearly marked with red asterisk and "(required)" label on public forms

Fixed

  • Hide .fvform files now properly hidden from sync clients while remaining visible in web interface
  • Uploaded files are now deleted when their response is deleted
  • Icon vertical alignment in dropdown menus
  • Suppress @nextcloud/vue appName/appVersion warnings in console
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureOI4r+UI2nwnpIFLKL9RijGU8qVDcsdN+RmHoXeh4wsH/FffjM0k/EfUGfIG44uHsLJZw7ScCByRN82zS4zks9omVmvIi4C0C92BVgwh1swpHz7P1+KuyPZEdj1OfwW/WtbOxjwn/x3tk9WyUN6T6qP1URBItFJgssJ+fHjQax/5SfVQLRapjaSp0bZ+Rzv2r2bMm9/gjhdLT7PkGPgG1QCYqsbkLznZC5rN2uFwO+sqMu/ss41Mo5nymiiIyTnJ/mQp/MyeTqd+1QjsiJ+Xt0ulqIhQ+2hkzsFCdVlj6h4DKoJ67IH8JcuBx52Uf/yE9HvQRQMGDMgg6VYgAg0+Oi2X5BDiaRgE8pZ1x/A74a4Ydsh8uaO9ZmHQJqjJU0lLPmwGE2BGswPTwKpCMnJJqT0B0xXAMaSI5yqzLvoIe4vtp2v5wfw2NDkVVQRBAmXKtndBADgpaZqkIp5zaImvxQimBHPOyO8IcTfWFCDU3iMCc6J2QxrgtXmQaTn4+JhDjCY3ePBzVxGbdHKkoYgE+Q3c3FsOMufBKKoEdPVE/BZ0BaynJcJEzF8hhDEgo/I4EDuotDgZY5XZegsjYUOQT/CwOOZEVJDJ2zKsXpogTcKSDHmmf9Dwv1//tRA6KDK3HPiBJM4YUVQSB9raiNTB55O/qbAOmU1aEOiZN0TeG2e8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 30

FormVox 1.2.1
Release Details
UpdatedMay 12, 2026, 4:20 p.m.
Changelog

Changed

  • Pricing removed from admin Support tab — The Support tab no longer hardcodes subscription tiers and prices. A single "View pricing & plans" button now links to voxcloud.nl/pricing/#formvox where pricing is maintained. Reason: keeping prices in the app required a new App Store release for every price change (review time: days to weeks); the website can be updated instantly. The Support tab now focuses on installation state, organization details, and subscription-key management.
  • Telemetry transparency expanded — The "What we collect" list in the Anonymous Usage Statistics section now accurately reflects every field actually sent in the telemetry payload, including the organization name and contact email (only sent if filled in by the admin) and the new Extended Support flag (see below). The previous list omitted these fields.

Added

  • Extended Support / Enterprise flag in telemetry — The telemetry payload now includes hasExtendedSupport, sourced from Nextcloud's public OCP\Util::hasExtendedSupport() API (NC 17+). Returns false on any failure so a Community instance is never reported as Enterprise. The license key is sent alongside so the license server can cross-check the claim against an active subscription — the boolean alone is unauthenticated and could otherwise be spoofed. Required for the Nextcloud ISV partnership where bundled-license customers need automatic recognition.
  • Description links open in a new tab — Links in form, section and question descriptions now open in a new browser tab with rel="noopener noreferrer", so respondents don't lose their in-progress form when they click a reference link. (#87)

Removed

  • "What a subscription includes" checklist with green checkmarks — content moved to voxcloud.nl/pricing/#formvox.
  • Hardcoded pricing tiers (Free + €19/€59/€139/year + Contact us) — content moved to voxcloud.nl/pricing/#formvox.
  • Standalone "Learn more about FormVox" contact block at the bottom of the Support tab — replaced by an inline "Questions? info@voxcloud.nl" link next to the new pricing CTA.

Fixed

  • Submit failed on password-protected public forms — After entering the share password the user could open the form but every submit was rejected with "Password required" because the frontend never replays the password on subsequent requests. The authenticate flow now sets a signed, HMAC-protected formvox_pw_<fileId> cookie (1 h validity, SameSite=Lax) which the share-gate accepts as proof of password possession on submit and upload. (#82)
  • Date picker selected the day before in non-UTC time zones — Picking 17 May in CEST was serialised as 2026-05-16 because the previous implementation called toISOString() (UTC) on a Date constructed at local midnight. Date questions now serialise using local Y-M-D and parse YYYY-MM-DD strings into a local-midnight Date so the displayed date always matches the picked date. (#80, #89)
  • CSV export still fragmented in Excelfputcsv() used PHP's default \n record separator while in-cell newlines were normalised to \r\n, producing mixed line endings that some Excel versions interpreted as a new row inside a quoted cell. Both writes now use the explicit eol: "\r\n" argument so record terminators and in-cell newlines are consistent CRLF. (#83)
  • Question labels shoved sideways in Microsoft Edge — The flex container holding a question label and the TTS button could grow horizontally beyond its parent in Edge when the label was long. The label is now a shrinkable flex item (flex: 1 1 auto; min-width: 0) with overflow-wrap: break-word and the row allows wrapping, matching the layout other browsers already produced. (#84)
  • "Move to section" did nothing when Pages were enabled — The pages-mode draggable did not listen for the move-to-section event from the question overflow menu, and questions dragged under a section header did not become visually nested because the wrapper that applies the indent style was only rendered in single-page mode. Both code paths now match: dropdown moves work, drag-into-section auto-assigns the sectionId, and dragging a section header carries its children with it on the same page. (#88)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureeUuQ4SynmfMaIwd1NZhIUdQk9Qg7DxfCKekVrIqSqs0vDAebIJ4hacbNi/jlDikk+KZ1a2BNwd+mIGiGZskETOIzcz5l+tQsT2+0gorPFzhXx+A0rzMIFpEm3cIN+N3us4RG05WXwKDtWClbtmJ/w6o8ZcJk9wEPbVQlOcv6ooT2JmRtvTcFpSxyLw4ViPPJjdpUdCixrXdad1qN56T9kDsz9voTlxWEmr3cdUTcG9Q4FxhkPo9yhsIO5GQtIqYjHVe+YDGcUJz8xGti/PfyQFCrDFllZrYOJeXP6VcYnE48WvrmvPuXQ7qpDgYWMjJsJInsuuJysL8tnQf/ySxy25zZy+Irt9FgUWR2w+fdQ6JYH9UXeUYuCFNucK0ca+EwooLaEO4RXwKhVcWYQBaPD2kldVHuD3fnv6iBUPma/xPLSxk3fdzcGXsEIcKwqsZrGs4D2Vf94NVvRKbBWRi7A5HnIBm/kGx90ZQGzFHLcIdGkaS3rU4mE5rzuhB4hKej1LQzaeoBR+ESdulVzzCXr6SvEwVbOZH/b46zxYQ7AzbAqpyOr7J77J3Uvzpz7Hj1Y0t63daVqjEOO87tQyKoTAvbPihmYrnbA/HerQhgyfP38VomWLpUS8/y10wx+s0sF7ewgy/PYew3DV33AORdQZEewY4Bzspo4+JzC0uFB1g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.2.0
Release Details
UpdatedMay 5, 2026, 1:40 p.m.
Changelog

Added

  • Bot protection that works behind NAT — Public form submissions are now protected by an ALTCHA-style proof-of-work challenge solved in the user's browser, replacing per-IP rate limiting as the primary anti-bot defense. Cost is paid per browser, so an organisation with hundreds of users behind a single NAT IP all submit without throttling. The challenge is invisible to legitimate users (~50–150 ms of work in a Web Worker), self-hosted (no third-party service, no external JS, no API keys, GDPR-clean), and adapts difficulty to the per-form submit rate so attackers pay more under load. The signature is bound to the form's file ID so a challenge issued for one form cannot be reused on another. Single-use replay protection via Nextcloud's distributed cache (Redis) with APCu fallback for single-server installs. (#76)

Changed

  • Anonymous submit rate limit raised from 100/hour to 25 000/hour — With ALTCHA now the primary defense, the per-IP limit becomes a wide safety net rather than the front line. The new ceiling comfortably accommodates large-organisation peaks (think 10 000 employees filling in a training evaluation in one hour) while still bounding pathological abuse if the cache backend goes down.

Fixed

  • Form description rendered as plain text on the public form — The form description on the public response page now renders as markdown instead of literal text with the raw #/* characters and collapsed newlines. Headings, lists, links, code, and blockquotes in the form description, section descriptions, and the in-editor markdown preview all render with proper visual styling. (#63)
  • "Form not found" / "Access forbidden" for logged-in respondents on restricted folders — When a public form had require login enabled and was stored in a Group Folder or Team Folder the respondent was not a member of, the submission failed because the authenticated submit path used a user-context file load. Authenticated respondents now use the same admin-bypass loader as anonymous submissions, so the share link plus token (and any allowed_users/allowed_groups rules) are the only gate — no folder ACL needed. (#77)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEgXx1k6T/jb0h31O0h5rzjkRhdCiLPnChW/hOo3JMOiATKU1BeP/KDCUw0rW9RpOhe5j7ySM8dogkKzsxJJvjNZCl92E7AeK5O0fDtALSSQnCW7P86vIUrB1IIt3RgwC9SEF2XLAF69prmf6JlH18Jqp4qMj6fw64GxrSh/mASu/FkmllqDoJBkml9jgJ578d7/ea7wEc4ugJVPKqVcENaVfYEaaprkAitesxpgArulem3djQLl28nnmAkoMZpXrnJZ3jr1zIFp6DSuCUpgnidtprxi2F8ncqglerVMeYXvohnBLzAP/yt+3LELcPyyDduursEkX0Of2rrjNRN9FGgtEE+OtzjW42pkbE5g0SvPS2s6FZR8dZukCcvvet7QE4CONVIDC2hDhNmCfqlGj3eaIkZzeiO8WLElqTX7LXEEB5oBBbiNUCgcelr3Lv0OZUb2/KtOlvASuR2hP2sLHDosmNpKnf83DpzfT8xCWz7BhthOxM0w/ErvfTpXspf/9+cJ8zExk+D9F38yoFGAf71m/ZDL0h363NZWb7tSl2mQtY2OF3NfBVicj5RFK6DnIZlD12UuvD/cj6dJcJYWThDT/OXrS3mvOMf2+FBHeLfi42ycGuElOMLqeVOo0PrOYE/O+H08IevLOq6JplXchq9PvlPXszN5g3fg3VqLeNuA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.5
Release Details
UpdatedMay 4, 2026, 4:21 p.m.
Changelog

Added

  • Markdown editor for descriptions — Form description and per-question/section descriptions now use a native Nextcloud-style markdown editor (EasyMDE) with a toolbar for bold, italic, headings, lists, links, images, and preview. Includes a custom drag handle to resize the editor vertically.

Changed

  • Form editor layout redesign — Top-level form actions (Edit/Preview tabs, Share, Results, and the Pages/Branding/Settings overflow menu) now live in a sticky page header at the top of the editor, instead of a horizontal bar that visually appeared to belong to the form description. Question and section creation moved to a dedicated "+ Add question" rail below the question list — the spot where the cursor naturally lands after editing the previous question.

Fixed

  • Conditional logic broke for multiple-choice answersshowIf evaluation now correctly handles array answers from multiple-choice/checkbox questions in both the frontend evaluator and PHP backend, instead of comparing the whole array against a single value. (#71)
  • CSV export of table answers showed internal column ids — Table-type answers in CSV exports now use the column labels from the form definition instead of internal column ids. (#70)
  • Orphaned fields persisted after question type change — Switching a question's type (e.g. from scale to text) now strips type-specific fields (options, scale bounds, rating, matrix, table, file, validation, date bounds) so the saved question matches its new type. (#69)
  • Newlines in answers broke CSV row alignment — Long-text answers containing newlines are now normalised to \r\n per RFC 4180 before being written to CSV, so spreadsheets parse rows correctly. (#65)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureTNODkyXkWcBDXqO4gs8raDC+CgQ/jQYD6wpAb4xj/yTwHRnv+VoA0emEpheTceqhy3gXPqEdX3lRZugqqHQ9fLi43xrdloAfG0p7y9lwjxm73ZhfYAEjHE+LAstRFWkxZgVqYcGUNG6dv8oFlip0xhgwEvH2RpGANcYmu9+7MBJpzU4TjLWAbkOLuFjFRahVFjWC2zmwDMK2X59qwfuRZhkUAPFz28eTsqEjP79p9ro7olkR1bBlySCTWpXEthLpwkJh4LrNC4lIIXM0aZoNlJJQniQbGIZQBIir9dkwHXorgJHGM87kQlI0IDDL//NsJ5cCcUcCuVDTQ9M0YSL0MUG6AjueUGkO1eEK/ESuwGjZe1wKzhqKi63jM2ACMTm6XAAl8v6rvORSvxIG6WPNIyLFnavxjhAmIQxX1e8nHqyZLL/PFLVeqOXYE+59Wp/rBSkhgSXOcYP6OwHMtaX/deac6H0KFQgtAdfa7bD6Wkp2TnN7loFyoqza2G5h0Sg25RZuzxYBwbCCkmflUtl0M80iyn6nwW7H19swostFBSaDyFrZX+lhTGQYsr7nKlio7BZtKdUjH4xbSsjJf4EGF8I/9GhdQytGpKQ/qy5i8FUYfiBmrx5BJg/oAHoER5Pp0oP0HQMWwv/1giNyXMp2dcuLWhP2hvAbB1IlBgI3ae4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.4
Release Details
UpdatedApril 24, 2026, 3:14 p.m.
Changelog

Fixed

  • Description textareas overlap question actions when resized — The question description and section description textareas in the form editor no longer have a resize handle, preventing them from growing over the per-question action buttons (edit/delete/drag) when dragged. Matches the existing behaviour of the top-level form description. (#62)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturep1UDsZKOD4hCwZY5bWgHJ1sTTRcCX+XrHdAlahJK5jV5EEDXag0tNIGqM4LIJOf7xHcn7rc3Z8TXxnFDoq73CXs4qBYETDCXhrmh8QrcRYKDLoSiZGQmktXdett83/EHN2Iwp5NIiR311QzukbAsFzG3wpZzDDbJ3qsmYv1w+K8mEye7C94JDmeuYrFsCk2LlnSIzNGy1yKDUmNqvPiHIAXIkp1ZDO9YoSiV6GavlNIqxsoa2BEREmgRKcUjxBuZZfz3YS76CHOVa5I28IapwspdZpzOB0nsLrgkSwWE0ljFK81X2OgYFlBTuV4ZTO+aan+69S0F/GHXQXmyi7udAmIGWge2kFim3Fz1ER+Q08lAATLJ1OaxkoL79kj3s32kO5U7d87tWaJKq321Rg9r8x0CgBG0iTUp/eCN9MRj2zdlTd4dLenLYDA4kbeXiSUZ1aBahzlVQ62X0eJLNhjxY2lz7ZhlmmTUtQ4luaxMlg4Yq854HSnzyXxtalC664EP53xMUSo5umFbE4EDAPHlfKaQwkGATg8ar6gocXvy28ht56jAWPgMISq4duRaV0/caEM7m3VwdlQihiN1zrpaP3mgmtHgdMw+ot4jYNr3MCbaEQO06L0zGNe1nLk0gawa482BU/Zej/t3uBWSiQEJM9e2IxF0R/VZGeCy96oHDDc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.3
Release Details
UpdatedApril 24, 2026, 6:53 a.m.
Changelog

Fixed

  • Webhook "Enabled" toggle unresponsive — The enable/disable switch in Share → Advanced Settings → Integrations now correctly reflects its state and persists changes. Previously the switch used a deprecated Vue prop API (:checked / @update:checked) which silently sent undefined to the backend, disabling webhooks without feedback. (#61)
  • Admin statistics no longer crash on user-backend errorsgetUserCount() now wraps callForAllUsers() in a try/catch and falls back to 1 if the user backend throws (e.g., LDAP timeout), keeping the admin stats page, license usage reporter, and telemetry job running.

Changed

  • License usage reports now include activeUsers30d — The daily license sync (/api/licenses/usage) now carries the same active-user metric that telemetry already reports, giving the license server full visibility of active instance usage.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureBsfsxecsMB2+i9+eq9JiyvP52vlLdV0MWJ3rBMLb88aKwbg2Nn51QOCW9htSIsOkmgpCUFGuXHyMm/lR3mFG3krH71WaUkBEEaoS7ySiUHq3Pl+8SQD22gt7wj6a+J/MTiZS7mObQtTYw3GzatusxyxgM/+1KaZwJqZxQ26CFY+pZXxxcSsfYLXnJIZB1zj4BY5rN09gfwM+Zw1PWXOJJz/Of5IeoFCDc2RdVE08zXQlfYVK3iHSb4naGwjTAPKwvmWFRpL6vCYj2E7qSykaK+2nK4av0myrYK8+ldNfi3Zh3bmkdXKYM2yDpcU9ijp0pCk1FY/apY329sr6HYBPKuqI0Ikss4YUVEBLaRNBA+DM6kVkAe5ihE1oKIsB/9Fmu6pPgQSxM9rYlw35xHgv5xcv3mP2ZiaVJds4vC7foRLobAfvUgje/eLoBELKBvAT7P2J4uF8n7F5XT3hoUciq638db8QIivn9HP83hqAhT8kY4mvXzkb2OJhGzumslcP9YDKfAD/fAPfJhDDDOSxTgSYJBw37RuG1eYMcGcvURw5Qk+7yU0eNtiWhr6zDVgu2YCoUK6ZRrbgJYNMZ0ur7Me4QU8+7AeUArbZIeajA1nCtqcPk9xmTAXCiNARtv0VZ8RdY1RZ5iVBOnK5+SbxHGBbQ3mZNZdKwzFAHhvsJOA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.2
Release Details
UpdatedApril 23, 2026, 9:02 a.m.
Changelog

Fixed

  • CSV export garbled German/special characters — CSV export now includes a UTF-8 BOM so Excel on Windows correctly recognises the encoding (#57)
  • Results chart legend shows internal option IDs — The chart legend now uses the same label mapping as the charts themselves (#58)
  • Unanswered questions blank in Results — Unanswered questions now show "Not answered" (translated) instead of a blank dash (#58)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureANC8GYEPpin/4ns3c7w+0sCffcPTLl1k+FArDTVECdld8uv6XX+32VP8CY4+Fz7iSF8MdPZ+A1+BoUmqXylSavw10zO/XbhGAU+TmjxyjwkJTE9cOTs876XBFP7lhOTqQv6C8sivKoTEc1N5YTY8gcyqO58hJgJML+4rqIJSfuUTBc85r75aBbQAMeTz/0AbVDsrimgRoS6HszEzj0J6XM/egGkg1wJQk9oXFB9ijTlZQUzjSPbRmONRjrcQEc9WfR+OKTFfhLAQNsr0bRKw/8jUksHTNRrxZ4tPsNfBX6mM6rHJfBardsGI+tSBZPvtjbj3Rp6akuxgLV84HzdUmsDPkvsK20AmPdPh3lotSNMYNSo/Qo4lPEzyJ30U6Zq8fcCBC6e9izKntJkUwPHXNcFtIuuVZiC8ZxpItE5k2tqXE7XbNJoDITZyVk6BVnFRUWXxh0IiChBnYHPEm7l2oAoJ6tvbkeKCIgSYNVK+FgBjehStT02YEk9uxkVjaeQNAn6OzclbE+LgjI2F5VjYZALk0QVmsKD0QFn3QyCG02sF/6fTzJPl+lP12+s4S47/WTIxNEJNLhPU+tuk7bF75BSUqqG3QGgIvzeFNBrEDKhSwA9g5Oa2YiWZEPRnq0ZYyL2rrXjHS5Nqo6K35AAd4xYq51vfpXOQywSfVFA867s=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.1
Release Details
UpdatedApril 23, 2026, 8:21 a.m.
Changelog

Added

  • External storage support — Forms stored on external storage mounts (SMB, SFTP, S3, local mounts) can now be loaded via public share links (#55)

Security

  • Updated fast-xml-parser from 5.5.7 to 5.7.1 (fixes malicious CDATA/comment sanitization and stack overflow on long tag expressions)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEiNCYJXtZ95soBULwBnHUYWQ2DhP3zeiwzU0RXYPEwvs0R9/ydEjCtwRud+c9PeNLeT1XMvAmP39radRc2OLgD2L12CSJaWj3IbYvSRVKAlnQFAwS44wDHmpuVf1dGq2Tr1Sfj7lFn+0ubYW5Xw1Pmqjft6X1ABtMW9sHCUQbdB3DwfL/EB0M5It+/iVDe4Z3OE5n7tiqhVe4vuFUxWOPqavDUqXS8MjWLMZB7SAJ8IXaF4kKG63qHZBfo3npKrTbbAsIZOvvy5rFzzD63brSd7i4QybX++QzMXSM/hYOTo9pGTMAgfmJzXCmDRn5s2M6lS8mKOOdLgsXMr8hZekJtuR74CZz83V7GyYXZEhe74D5KmiFhTajT8opzuwnQ3BLojEdlumIKzqKoRlwuMT2/28/Oz+S41OP4qmhRGx/Hztht+ml23/mJzIqzpZCulXsdb2U8j5c6Py38lDauvWE+Q4Xt3/yUjlFJVj3KxFQXTxOWUKzfsrU6Hn0T/wDwVX1XiRG2elCqAehOXdWuQn2w4dX9jcKQ0s3WTY41QtqAGKVAbYbQ5ROesX8+I8WLL2mIzkkDIvGtxz7Q423R1cA8bQzFNpK9sM6Cs6yP6Ro4sQtZY+qIAMTszuwHDUCglOgbMX8XVFd4kF1obfF2AupHWeoelvDEfxL4zqyCNHkTE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.0
Release Details
UpdatedApril 20, 2026, 2:09 p.m.
Changelog

Added

  • AI form generation — Generate forms from a description, an uploaded document (PDF/DOCX/ODT/text), or both, using Nextcloud's built-in TaskProcessing API. Async pattern identical to nextcloud/assistant: the request returns immediately with a task id, the frontend polls, and a background TaskSuccessfulEvent listener materialises the form and sends a Nextcloud notification even if the user closes the browser tab. Includes heuristic truncated-JSON repair for less capable LLMs.
  • AI conditional logic — The AI may add showIf conditions on generated questions when a follow-up is genuinely only relevant given a prior answer. Values are snapped to existing option values; forward references and circular dependencies are rejected by construction.
  • AI admin panel — New "AI" tab in FormVox admin settings with provider-availability status (live-detected task type), per-instance enable/disable toggle, max-questions-per-form slider (3-20), max source-document size slider (1-25 MB), and toggles for source-document upload and conditional logic features.
  • Scheduled opening (share_starts_at) — Share links can be scheduled to open in the future. Before the start time, visitors see a "This form is not yet open — opens at {date}" page; submissions/uploads are blocked server-side on all public endpoints.
  • Per-form branding logo uploads — Logo and image blocks in per-form branding now upload to .formvox-branding-{fileId}/ next to the .fvform file (mirrors the .formvox-uploads- pattern), travel along on form move, and are cleaned up on form delete (#53)
  • Result summary shows labels — Radio/choice questions in the Results summary chart and legend now show the option label instead of the internal id (#52)
  • Full translations (EN, NL, DE, FR) — 43 new user-facing strings for the AI flow, AI admin panel, scheduled opening and "not yet open" page are fully translated in all four supported languages

Fixed

  • Share link date pickers don't persist changes — Changing the expiration or opening date in the Share dialog now debounces and saves automatically instead of discarding the new value on reload
  • Notification icons missing on mobile/desktop clients — All FormVox notifications now emit an absolute icon URL (#54)

Changed

  • AI form generation is off by default until the admin enables it (unless a provider was already installed when the admin first visits the AI tab, in which case it's enabled automatically for convenience)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureQk7s2eNDcOC+qbqnbRWxqe63swdWDcu1YoTXk2BzNHTFVo7+JUP5+fsf4ZX2PYUVFcx/3n0/p1D+7C6vdtNUqxmAO9wKE3+MF+xjPMwyZrK2rJXVaaolGkfoVPr+PgiHlQYxd9Nh4F/YmkllR2uVTY1tN5QzDJas7ISwmPc1T/ArKlMsXQ0nlsKFhK3XEHGJ8TEWC06imVE8RKQcrn6G70/qwFYsdKopf/DjJEdhtcxTkd3UKLH6NwVILx1rktFfcd728U2HsvrS8LEBgLUd2zfUYJzfe4f3oI76KvzeYJIBOOje1Tkd59UbrrhJylZwWD3qxI3PgHiIh9mqgdCGFX9xSv6nIAjByIVHQod4hPgEfyzXNVvtovVtAaH0XKXU8PTOK38Gju0gHvtcQF7W1frK7ZaqjUudHOzweT87IO6Pnpdugg0TXXJqOSdNBn41cwjgIDkTaymrMGDw8Iaxfu0tE+nby/vlb4p1Yr8+wHbHnkVOy6WYT8SI2yhaUW7hYCTGJerJAkpwrH/3wWCurjF6eSjodyrU/eMkpb64GamAEYXhjK+1ErE6qvupetnJtoDgBTGaaVW384+pRUzUAOB0aYWqbxPL/BvxlcN0DdOg3yAP7vtFLCkx44/rjx0vBbZw7Pw7YwsUlvxntS8dc+NvajRd7lZwRMeZw7/2zGg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.2
Release Details
UpdatedApril 17, 2026, 2:59 p.m.
Changelog

Fixed

  • Telemetry error feedback: The "Send report now" button now shows the actual server error message (e.g., rate limit, connectivity issue) instead of silently failing

Security

  • Updated dompurify and follow-redirects dependencies to fix moderate security vulnerabilities
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturenWH3habsfSuicUPAYeMfpBHNnXo7QYa8/fAhRuYTh62gdaiNQArKCcTFCIevd260+kBMUoI2yj5aDoxq7vD6NriiUOi60FQkCd1KogxC51glVMyMm0MaCgbEcFZG0JIIZ9pAJEAu1rpoQwmkGRg5D0XaQDGUl7vkgZ/+OcUA7RA3pw60jEWueZiF+duvkhka2P3OTkGFzZodk6kX05SpD34ygRwNDeLiVwYy0E2A5mYWk2XN+ZLdMn0uK/6j8ch7xa1uecEl8deakE7jn72jeE+tOZ0qZBXcK1p/zVfHyrSSEny8xGTQ/JR+l4PT1pMbM2eMewJk6rKygGcPAHOK0nreGk+j15jMCPBTK7milwK+OvM3zGUSiLUr4Y+uSKNB3NQzmOQYCeH7T7DSG+AdjdXJUmYFjxeLt2hoFGPxR6lkAGvuRm4DwPfHHlPPetsmyGhsgL8ZYKX46l31RvtDYYYwmPeF8EF/UgPlTTm+KaRQoofAy16Hfna0NEwcqMviOGIDW3Nkty8vIPwM7a8XE59qokRnGGuYWkRR8UAg8tsTGelnAbd7bWiUVQOrjfonVCuRknVogJ9eemLB46TTVhGkZ610bj5WnIp7GzCeG9F5HZuZKpl2KB3a0YOqodbssB2rDBEbTYW5OX8GtaX+A349ZSd/iDSmNHO4iQNnZ5o=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.0
Release Details
UpdatedApril 13, 2026, 9:20 a.m.
Changelog

Added

  • Support tab in admin settings — New "Support" tab in the FormVox admin panel with subscription pricing, installation statistics, organization contact fields, and license key management
  • License key management — Admins can enter and activate a FVOX- subscription key, which is validated against the VoxCloud license server. The key is displayed masked and can be removed at any time
  • Installation statistics in Support tab — Shows total forms, total responses, and total users directly in the admin panel
  • License banner — An info banner appears at the top of the admin panel when the installation exceeds the free tier limits (25 forms or 50 users) and no valid subscription key is configured. A warning banner is shown when a subscription key is invalid or expired
  • Organization contact fields — Admins can optionally save an organization name and contact email to be associated with their subscription
  • Background license sync — A daily background job validates the license and reports usage to the VoxCloud license server, with per-instance jitter to spread server load
  • Telemetry section moved to Support tab — The anonymous usage statistics section has been moved from the Statistics tab to the Support tab for better discoverability
  • Full translations (EN, NL, DE, FR) — All Support tab strings are fully translated in all four supported languages

Changed

  • Statistics tab simplified — The "About FormVox" blurb and anonymous usage statistics section have been moved to the Support tab, keeping the Statistics tab focused on form and response counts
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureP2gopdnkFIlA23vbmBlweI6L9qwwLKioNUiltOry331cegOXVm1alaTtOG4AAZQE9VpgHBZ5VEBprxCk6vvuiLEHH/VgR+NbiG0xU4rTfPABfwBjyaABFhWWZPoGKpZ1lc5ZU6SYGqj6ucjpF4IwTWxsKln1MveRuIEccAYRBXSidPw1ukv7Ur6/Q2qv/BoAJo4YesXlgr7XOEZlu8Fn3dSaj3fLVG2zmh8pI/80tjmtn3588UP+ohyuSUUnMxqtUpQE0e5x+OuZjgvpLmOQQt7P1v1gsjA+sguWZb1kR3jq/Jqt8vN5TsI8gAKIYqq2DIArg6gnd2o5FSYNTgaaR6NJ9iNhua7XnHpFkc/xDXvKZqUpLwEpEhDlf0E/nTEPVl+nCZMZUsRex2mFta1TszXPA9nu62KQ997Ls6DwGOy//ad4XXRfbz59BQvdSOcOt9ZURBpEfFZs3KnvKHkGHrfwNE+8XtthPyhrQ1GtP1yxHH5nF8XMlLSQiwa8pWuf+xp/LpWu/oIuGryceg+C9zrFKiqI0SRwa8REtrZFHkApEH5gVCczanLcfluvaqRGEZ1ZrMuYpqLio7I3kkmdo4sW22AKhgYQeZMlTpyQlaW14hw9mQGtrGqCSHCab2y6jHESFtkR6JY1WSKhoxaxOQcMJXQREjApROtFijoHDkM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.4.0
Release Details
UpdatedApril 7, 2026, 2:58 p.m.
Changelog

Added

  • Sections / fieldsets — Group questions into collapsible sections with an optional title, description, and conditional display (showIf). Entire sections can be shown or hidden based on answers (#38)
  • Markdown in section descriptions — Section descriptions support Markdown including images (![](url))
  • Drag & drop into sections — Drag questions into a section; sectionId is auto-assigned based on position
  • "Move to section" menu item — Assign a question to a section via the ... menu
  • Specify notification recipients — Form owners can now select which users or groups receive a Nextcloud notification when a response is submitted (#46)

Fixed

  • Form not submitted for logged-in users — Forms with login requirement now correctly save responses without requiring edit-level share permissions (#43)
  • Scroll broken on public form — Added overscroll-behavior: auto to override Nextcloud's layout scroll capture, restoring mouse wheel scroll on Windows/Chrome/Edge (#44)
  • CSV export shows option IDs instead of labels — CSV export now outputs human-readable option names instead of internal IDs (#41)
  • Images embedded in ODT exports — Uploaded image files are now embedded directly in the ODT document (#45)

Changed

  • Toolbar layout — Editor toolbar splits into left (content actions) and right (view/share actions); labels hide when space is tight
  • "Add page" moved to ... menu — Keeps the toolbar compact when pages are enabled
  • odf-kit updated to v0.9.4 — Picks up latest fixes from upstream
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureDzTnWoXiqn8l00om8bW1J90Uu/E6uVvP73B5Xkir8WPIlGR51RYdQbCveelGg/ZR3L0GCoTuoJ5HpNm3uY6v2USyyrbQtClFU5ZBT9iRdg54KWOhsi/ubu8pmmPTsBEtZj5HUqHNjIE4WWtEANXSvoX/hZ6mrQl7VJBf+Dsrl4NVHPJGtLvBm18Wq6nqJ6moRsTQLfChnENSeDvxLDDXJA9zbnVSUksdTvx7gDhCU+t7sdbvYE6QgVVs3wQiju32TM+Ey6fMw2pBZ7fY0GfSF2gzU3czSMFKMFrGQGNj7287hBUJb1H2m3zfxYVVLXGxrJcJTMnWrVfoZpzq3qcwA9okRT4sBprsUVvL+PkA4S0ytHGf2C/c6oSSvbJVVku0Ragv1J88kk1Mx/woUaiT8kYerFuO9K2rRJ34IqKOnCjv8DGxYyjrJlfalUb7y1PhqUik5efZEPieOXfk3A2FwvwTIcXioa7oHCispAuajXcg0z5998nmv4CdzEjKuak/vMTS30zE+wQ6s9rBKgw1sCuslhVS5Vf3niWQOv3B/DZfGz19A/nP4IHFAA0QbACBaRkbPrkidSKCciV+OWaNq+WoZMgSBFol6TpAc2AiYuKdCDZjTgG8Z0XfZyhMYnUOHilah0I3ZttjsPbIPh/Ir79xJ8wpoySP3sxMTtmYczo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.9
Release Details
UpdatedMarch 26, 2026, 3:20 p.m.
Changelog

Added

  • ODT template export — Upload a custom ODT template with placeholders like {Q1}, {Q2}, {form_title}, etc. Responses are automatically filled into your template when exporting as ODT (#23)
  • Template auto-detection — "Export ODT" now automatically uses the uploaded template if one exists, removing the need for a separate export option
  • Template portability — ODT templates follow the form when moved between folders and are cleaned up when the form is deleted
  • Table question type — New "Table" question with configurable columns (text, number, date, dropdown) and dynamic rows. Ideal for expense declarations, item lists, and structured data collection (#35)
  • Notification on new responses — Form owners receive a Nextcloud notification when someone submits a response. Toggle on/off per form in Share settings
  • Wider form layout — Public form container increased from 700px to 960px for better readability

Fixed

  • TelemetryJob crash — Background job crashed with fetchAssociative() not found on Nextcloud's ResultAdapter. Changed to fetch() (#31)
  • External API missing pages/pageOrder — API response now includes pages and pageOrder fields (#27)
  • Required matrix not validated on page navigation — Users could skip to the next page without filling required matrix questions (#34)
  • Required matrix accepting one row — Matrix questions marked as required now require all rows to be answered (#25)
  • Horizontal scrolling blocked for wide matrix tables — Matrix tables now scroll horizontally within the form container (#28)
  • Multiple file uploads broken — File metadata was lost for multi-file uploads, showing only filenames instead of clickable links in results (#36)
  • Multi-file upload count incorrect — File count now shows total number of files, not number of responses
  • [object Object] in ODT export — Multi-file answers now display filenames correctly in ODT exports
  • Webhook creation failing — Fixed parameter binding for webhook creation endpoint
  • Form hard to read in dark mode — Public form templates had hardcoded light background colors that overrode dark mode CSS variables, making text unreadable (#39)

Changed

  • Presence endpoints moved to PresenceController — Collaborative editing presence heartbeat and editor list moved from ApiController to dedicated PresenceController for cleaner separation
  • FormDeletedListener extended — Now also cleans up ODT template folders when a form is deleted
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGH6DRDS5w+4R6rfA8rBo3kSIFAG05bjIREgWfDIDt4Y90nrmDC4I1IiCVEpKGAOAsysQ8Np/Kh5pqVn/bgZgopAdfinadLwoyBPqYiDkCzJZmm7vs7z6/7hmaIMWsGIT3JGOotuHSKOsUUVnOYuZUFXzCx8oOg+dik1zHGte+H2klZcYOJ4bo3x2xnSYkl6FR1UQWxx4Ng+fK3aVfs+Cmz4XvIxc1es3ciGLpeOlq0P358f5doqFVIx5RRnEZ4+rFYszO9EJMG/3YR4i7esh1z/wrYX2SOAwQesv9g6PNnwOOOU7a7mmOWsstt3iRmUOqrf83c9wl4j0EUhxxPMWWp0sY8wme+QT7Tizk5Xh/USWHz8+jRWJeIYfjukVk4krYnXGQv9cF97WSYTCAQJ1jpcY0Y/pmp9QFFZeexlJSy60xo4Cv98k1irLGZibjk2hkjFcWJzh0VrgRpynVB5cYuPEwdB6kPzyFLO9joSK8vg7LilCeH2Ah1u8yUbkCI/tootQqNuMbRwLQQ3QJr0o2cPZC0jXYPuJplf3ug+WUeD3WZxouboTV7x6clsDQRSwrNae2QEzCouFa/vSA9lR9TvcyJ8cfdErUmygEYwqHQ/rv8HtLgDmWrDnA8+fYR6vQrrFDqLraFDP5pWkost6MGnqzJRitceO/kA/38JEIvQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.8
Release Details
UpdatedMarch 13, 2026, 5:22 p.m.
Changelog

Fixed

  • Form submits on Enter key in multi-page forms - Pressing Enter in a text input triggered the browser's native form submit event, bypassing page navigation and submitting the form even on page 1 of a multi-page form. The submit handler now checks for remaining pages and navigates forward instead of submitting (#21)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGNkiMJGIKnQR0vX9Guh4GkUGa/uYR1w0RIAWKXmo24z02RTHUlmvBSTUlYc0BWz0Mp5l6o4TDMDR4H5EckmM+OrhtraluRxu0wCt7NIxRao/hVOdQjVeXenGjJKJsxpcJdjFTt3i34wAlNcuurewF0yF4vN1gSgnsq3POapllMUoaCREt07bLzb7i0+QHDsDVgs6uf0xn446Jnih57LbMspuoD6u92+4nNPdGTAbw5HeLeKa2tpMo2dxWc6jDwZK7Za1GUg3t8gP0U5qf2toDaTf7L2KQd01v0dBLzuDSg2QKdAC5QKFSHubRSW/SamUDelPulkB0JsAzsGW2PBciQiEgAzASsXYPaHvWPSjFyOoGa+707Rg9h+pDge3nBPwcaexwhbwQMjdjWn65vMHbTxqLNbNS8/JGpLCcrnOeRsqQUr1xlTPVyxC4tYewE6xZp7jkDOgWfUDNMqcgEh5Q2Kzn/IxaEgW4VuTg9j647VU6KqVww6kZVbCOoPcy74MsBSG7bs4UBYGThpQ0uc5RYUFqOUpUQZhITM8iNZp/8gqnOgFjUiEUvuCEP18mBsPr3SW7bxODUIjrLRIsQzi2vTZiHk8kYNe8o5pEc/Otdp3wNJqlPzqc7OaG0iT1exx9Ad4RmDDgPlC0rfcRk/UVJzWs2KkTyV6iLuL8ujn1X4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.7
Release Details
UpdatedMarch 13, 2026, 2:35 p.m.
Changelog

Fixed

  • Single choice / multiple choice / dropdown options have no value - Option values were never populated when creating questions in the editor (always empty string ""), making all options indistinguishable. Radio buttons, checkboxes, dropdowns, and conditional rules all failed because every option had the same empty value. Now generates a unique value (based on option ID) for each option. Existing forms with empty values are automatically migrated on load (#16, #18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFy0zI/ZLu1i4uixJGINESbnSdRYvFpm9++0NO/yL6X9cXqLSKlfdUiVPHMMBGu08UZjIx3QiNi4tDt4rslkBxR9bPGQtEvhMM9HvmM+DB9jtoLLUVsmLwnSahUM4NUCgNIkmpsMl7L9AGarftcOwtRTg4SINWi4isQWgliswP+7fvG4+m1cGKcgY/2uzhRzdkFMYP5yyXjxt81qr7ejr19q9Zo5E7d8QR3waA7XbDy3zaN8spgCrYvJxU5LY0zkD5edXgZgl1BaWkt44BLuioAjDMrBz5CDeTbtDG2ZTJPTuZC03RhWPWkC/PIeHFSi+ULRq5BqKGayse5lP9JZkk0SHGYhYwHm1ZEIiXB1aCUZBxjSVuLAtSsjprx9ul3FXqSg1YlsDi0yjo/djcFAtDz1lpPkpWheSq6ZuooPYwpKASEuPuItoYZpLdeN76TsJQ5gNFghCETB0dCod0otvAKZIlFW2T7D17J3Hqr9u+6jVidjIl84T7uYMMCAjH5A37DAlKbaFnYJw4+p24+UlnF2ddHIbp5SriQZOuqSlseFX9QxM6ENjuSb97pxdseApfeQkkfU9YiyD04hylaqHzUO9qZJu9BW7CZaXQtakQ6Ng7N+6ricMvLNBAqWs5dBetAdC1EaUh1y3nGuGXAeZc751+9mN4aRKL1spa7gehw8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.6
Release Details
UpdatedMarch 13, 2026, 12:57 p.m.
Changelog

Fixed

  • Translation .js runtime files not updated - The v0.3.5 release fixed placeholder names in .json files but not in the corresponding .js files that Nextcloud actually loads at runtime via OC.L10N.register(). All broken placeholder names are now also fixed in de.js, nl.js, and fr.js (#22)
  • Single choice / checkbox questions not selectable - Confirmed fix was present in source since v0.3.2 but may not have been correctly included in the v0.3.4 App Store tarball. This release ensures the correct compiled JavaScript is shipped (#18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGsNKD/zZO8q+PhEIna48W0VkliK/7j87UZOTEy7+v2KC8acYz8jpOJZA+hNkqyL9Lkj4nIhUc5HEO7tJCEKUtrZOvUO9la6HVrMihnU7X4y9yCttfBeqlxhKw9N3LoVoS1KZ1n8bCgxpPvZMqKKTMwM1tRmDsbENLv9RaKq3EEKIwufYRrzn5RwMY+EdF7j1ywScjqjxYYcd+7euIQi38ATMeuQLTKkpEU/SZSmtciuH4wdRidazcKf/9aceL4BhbgShC/216I9klQ1Y/LvNaiKaEf7wXeAlpWY5zBhaSzfFjRDLWuzXJKTXpJmP2sxk30a2PO5zZpOFpFIJJreonrkxrb2RPrOh24CTOm6hjnTh3PK7uIgXBmXunuWjduGBk6E19DkjkUdljloipkbrzNNhdukk8ppBemkLDFgSosEw8y8qOta7jsNxiiMnbAzs4CZlefS0o61g1Of3tb1rzrEfI0eaT6KmMpO+SPqjoDHTvAGHH2UdYR9cJKF1ZUq6Juh63oOk88zsuM/LvkP8NVzQGuRokdOo8cmTIaNAlpE2GVJMnqtjYunf9I3O9ivRQHubHkXtesJqn3GAt4cxX9fHYDqb7xULqUcsRRrXpTQivsNrVF6c+udvhySUczVdaZ+B6zsae3216I/bZV5cwLGtXAFSuz3psHEMvIiVZUI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.5
Release Details
UpdatedMarch 12, 2026, 5:31 p.m.
Changelog

Fixed

  • Form submits instead of going to next page on multi-page forms - Previous and Next buttons were missing native-type="button", causing the browser to treat them as submit buttons inside the form element. Clicking Next triggered both page navigation and form submission simultaneously (#21)
  • Translation placeholders not interpolated - Placeholder names in German, Dutch and French translations used translated names (e.g. {aktuell}, {huidig}, {courant}) instead of the original variable names. Vue's t() function only substitutes exact matches, so the raw placeholder text was shown instead of the actual value (#22)
  • Screenshot filenames with spaces - Renamed all screenshot files to use hyphens instead of spaces and updated info.xml URLs accordingly to improve compatibility
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturefiwy4f05zwUTsL/mo55TXaZGL/hFV7q1Yz5FrIO0yq/Std4g1k+r5725ISI8l1/kSQJYWEJnd1srbPvVD7PsBepvin04T2N+Dgac3j/gizz3BMba4U/Ix+qwOWGL1QGFBYuvnzTqpMKuZS23LwO65+hwMDporNCGDQa1o5ub7n0LthvLJ7q3xgRb0GsKCLHCV0jKBLOcPqYSIx3/Kckvd6CQYvHXudSeucheXwqb5xKhl0jFDA58g4G4axuEZ/vRzhFxsTTQZYOS49nTceAj/xl3HT6zYiCO0GfsUmqDrLmazpzH7E4TUePzrlCM04j9wyM4EchuXAqkj1NpazZx46OsMHl+t1/Q31ro7P1iYtrVLoMpjPFQa8bCR1VWrOjgnBPjw0gQWbhaOtGByyJg4udpT+I00+jUuKCiT398EUEonFRBhysf8eIENGNlRHNH/3yjJSLvm2S4iaoBABUWBSgZWhQvLI4Ep9jNoCeM8jcumOQWnMuE/HFyQB4QSNVevBaayo8VMv6Tj4Zl8PbnldAA2zHFc4EaPNek5OWIqLhEnKk01wC5zfsKFysDmOvsEfZfyvG0LaRApp+ioCM5+dsict7+LN4b86Ib7NOMJ+BQEF6fwWXN60KmptUl8OBCepOI9KyCE+MYqqzLUqh3+/P06yBw166eTUTD/kdxdxo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.4
Release Details
UpdatedMarch 12, 2026, 1:32 p.m.
Changelog

Added

  • Date/time range restrictions - Set minimum and maximum allowed values for Date, DateTime, and Time questions (#15)
  • Date/DateTime: NcDateTimePicker-based min/max selectors in question settings
  • Time: native time input for earliest/latest allowed time
  • Client-side and server-side validation with clear error messages
  • Date picker automatically restricts selectable dates to the allowed range
  • Markdown support in descriptions - Question descriptions now render Markdown formatting (#5, #6)
  • Bold, italic, links, images, lists, headings, and more
  • Images in descriptions are rendered inline with responsive sizing
  • External HTTPS images allowed via Content Security Policy
  • Links are auto-linked and clickable
  • Answer piping ({{Q1}}) still works alongside Markdown
  • TTS (text-to-speech) strips Markdown syntax for natural speech output
  • Condition editor date/time picker - Condition value inputs now auto-detect the question type and show the appropriate picker (date picker, datetime picker, or time input) instead of a plain text field

Fixed

  • Date comparison in conditions not working - "Greater than" and "Less than" operators on date questions always evaluated to false because date strings (e.g. 2026-03-12) were converted with Number() resulting in NaN. Now correctly compares date strings lexicographically (#19)
  • Question reordering not visible to respondents - Dragging questions to a new position in the editor was saved correctly, but the public form still displayed questions in their original creation order. Fixed by using the page's question ID order instead of the form's question array order (#20)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFrSf68Mci1D31suRUVNzg+pPPiKxkYfn9Ss5QgA0bJWTggh9x240M4+3KrF+MrfqolaiBGwGbpbE6qtD6pgjFc/nCV3yQbo8phgErx5kk9q5tA4qLK0SKG5C7dqPwub9Mi2BXxE9/tTDrAGyrAOo/CHQ0wZ54h7CM/qO9lU7aHUNTDrbXf9Wa3MUd2O3B0hqAShxnDVFuG1fNpW59r7xd4UfGG1nsU7BCH1ahUB4Ha0P/JdrlrhHRia590gZZ6oXvm0wofA3bDOi6ETMHeuPBIa8Z2zZH4j8OmADhqzZyekL9YtcbkP49ukmWUUP/KjQgs8AoPLefpPIDvuEAjJ+ArnktsWh2MwkaTlAEMMlifZro1/yRpzZyDXb5PcJS7JJ4Egu8htlRc0RQPJBjzTogUAZeenzDq9R1PvbAI8c2MnaWQ8kLGmzi+eBkbkEa6lj6Z/vZSlnkHQqpB+HfY1C6X7WGzqZDxgboiVi77tB9ASAphvPPTFU999ofpiv53bBd7t/aNHHu8u/V6oFj0NHyA1p2ZK8Cgs4LG5i4XK+TPn9zfnvXQFEDzJfrcAK+6Wa6UwR4p3jpO49R/k8Wh3AFKJ09l9bAPBu+FUlntYsq+tnKaGcQdJRwmdxWn+yOf/5I9WZ/aYfzjI9H+dMS8caMbChabJz0TSDErq3PHZBShM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.3
Release Details
UpdatedMarch 11, 2026, 6:24 a.m.
Changelog

Fixed

  • Public form scrolling broken on some Nextcloud setups - Contradictory CSS overflow: visible combined with overflow-x: hidden / overflow-y: auto caused scroll to break per CSS spec. Removed overflow: visible from all public templates (#17)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturefEKSadx+pOeuWOEx0FgzF2L1QVc2sRFmYT7t6eKVTQYknBB5xhu3lgYeQDD/2vhjGQy6YQZeBZpV/Sxm8DA54aYVdFFfAgiN5EnvBtWfZNm4hy2V8UjSFJqXJfmR5DQxFI6emX3qagKjHbqmcCP9chndr30RCgzomENXQKETzY+yIiyldWY0YUMQxTQAn9vPfMjPGGx97l679QtqcEnhvXkgbPCU4L5Z0pBk0OMAJidQMsyGQDc/5hXRNj5JWvvzEtXxqPBbjMNrtewICTsVEx4QMHUlEeoBIJi86jM7ERII/dNl0WYYp8TAJuW8qELiSD21vhe6yTOIZCP8XrZVuXQoC4iIHghAq0myn6rWfpt4E2lzbVjPjRSu4xKegeQ1InylrcfiwqVk97QfYYgY+cj0Kals5l9F65P0UMbU3qK1AezJhWyprQaq9/CCIpP+aFXMA8WYqtlslWKp2juyvNqsaZdmy0Raa72MSrK4e6FnhmikZWBMFoIP63sS272wJPr1yOGDpBQXbGWWlBZmNmzFGqj6MGqI6aE4wsFEmMAG3/yhoeJ9x9NtxxDslehs82o1ASuBCud6sXpzuWhBtNuEi/rgw2sDojY+sdKs/txftcbk7Sin++ExLKnqVeyGoa/Jdv89aUgxFm6uXCVn/6jyqyojgMFtTz14Ip0qz70=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.2
Release Details
UpdatedMarch 10, 2026, 7:20 p.m.
Changelog

Fixed

  • Single choice questions broken - All radio buttons were pre-selected and user selection didn't work. Fixed incorrect NcCheckboxRadioSwitch API usage: model-value now receives the selected value string instead of a boolean (#16)
  • Multiple choice questions broken - Clicking one checkbox selected all options. Fixed by passing an array as model-value with proper :name and :value props for NcCheckboxRadioSwitch's array management (#16)
  • Dropdown selection not registering - Dropdown questions showed validation errors even when answered. Root cause was the same NcCheckboxRadioSwitch misuse in the underlying component (#16)
  • Matrix radio buttons broken - Matrix question type had the same boolean vs string model-value issue (#16)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signatureyz98Hn5Q8sjMWsh3r/STylb8Gr89l+FyKqh1aqGeVv5pv30YipP7O1Ho4zEE6cXJgBLREMl/R32EJd5hVya56kVy2vhEESL4Miu0ElnC6Mkm+BZjOb0YrDwV4LJ86auCuS+Vh0QAeyHlNBzpdxfAHW0IeQo5jSAPRAkRNTBSuYacrINezW6o0fMscXUINTDHTeboIgZxa/bF2XWof2dIMTIOVEdLOJwc1PXTvNg1NSsg4LuxDFenCNrMOQQnDEvbDjbF8ERRPhwaiksu484OjL8EqREnlWYG3kLh4DKZq6fA+Iny/7znDg0kt4DwstwaPziCx0MfEbPXlP4A8T7Byb2YCkmUe/2FgB8i4BsviFT1EcvEF9jV2+A4pVY+Ud7Hvu7Ns/6SVHeqeG5s9V5ApJljo3bjrOixAnRKG1LTiz7+MbJhTX4soxP9WOCquAjNtXIbwG4YUz7vE7FIH4nAQV6+9PYzofhxktmCep7IqDp2FtvCj/Wx5irvo3EC80gxcSePncDLswlflI66P8g2VGC99GYXrnFx2UybcbATSEClo3ahAX3A+4faLYe8EV7QQSvhCWRbaRaNGxz/RnjReQO729kX4FG+o1pLWfNiTxEiARveoQ6GckWq3EC63DupTTNL9V2Ue5WPUFKAnui1UpIPRzPVx37+8EA2KMKjUEg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.1
Release Details
UpdatedMarch 6, 2026, 12:01 p.m.
Changelog

Fixed

  • Added missing translations for all 0.3.0 features (page routing, collaborative presence, draft autosave, QR code, accessibility) in NL, DE, FR
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturelEVUWpC9Qe7GphfENOubjL5H1piT7pdcg8tZaB2SWRUKsd6IrEv8vxW95fshNG7yCI8MRTNOkVQFcW+TVx877aRh8YXDd0I9IfDwLc/H8wQHhSUABZUBZnrDrAg9VqVTMEMpjTdJCDVyb3GNDbCqaY0hvEta6YAglxZtx6tptwWq1PSVXBzlQLIzpV8Bs5nmnLt2IoFkKTHSNLWGf5SWKL62/I/RcS1VYzTa4W5RI1+irZ709oGATMDZjgc+QDliyL3Lryk155pMypaGfQLRfNHej00OzFwSqAGFHA2x0u6NYD+FbmrlF0UYUhFR9El+2o6lA27KvtHVajs18yiIalAqEt3GJDjKdiSA6mioZLwWTufui0wv7lW+28v8PKUddl7uu+UJZFTaczv2E23x8mHHLWRybIt9D33pjT8dDb8tAF/sLqnlKvOm4fHkE0CQeUoJQ6WnlDjq2xyla8hrZ/+bnK5sYiLpV1DN9d79FwQkOV9wVJX0m3O/FGQnudnmmnx6JTM5oJ7lEoTqVnNh8C/XGZcZA1WUAyTyvvDJvssjRa2lJFGk0/opsnbRQDtZBDnL2xrhroK9NJquucWc7O+FifgFhVYLz5ILAOprGKsnUTCPAfaf0lyWlmvFwQ8BGMG2RCoAOP7lncDL3cAYORYIUtgIHJgb/KjvxxuaWK8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.11
Release Details
UpdatedFeb. 18, 2026, 1:24 p.m.
Changelog

Changed

  • Nextcloud 33 support - App now supports Nextcloud 28 through 33
  • Replaced deprecated IResult::fetch() with fetchAssociative() in StatisticsService
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturepj2pVxyGgN68FQKxKvx1c7236SGBbg27rILExPtROf2hK8AcuNPNISmg5NUS62eg3Ke/VsHWwcgd288FSyY9X6bhKiLlVYBMVx1PMEIGO6RIquK03cXhrcKP2uQAliwoMOKsZLgkD5yjlwQ0Bj1XbZ077wb3c/5343zmBWFbQtwTlZ+M1tv6q7Uy7riorsIiVG4ddL5MM3uVQOWozbOTUQjHaFt/e8WA1eF10tRI5omQobKbdqA+K77ffP4y4fZRJDUpZ6TLpoYY/B5HfgBGVzrBW+sMRWTSaflQkndm5fxj1dsGnXOTiyWPy9Us0ElWK6KjtpkUGiSmEcvvqLV8nXDTrrSQp5KLdPEfQDxShU4NVbePabHP7x0n5Jah4U0nyUFOisJmrX9F557/bN+Fx293nKd992O6GMPlpsgyC7Nrpo9Q+MFmEIH+/k67uYTUQ1HiHjrBl7t+4lSy/KVpG7BQPm6LDGrF6T42BskHixwPVLXLTkAy51CZHB6TxDPX0YXVVFh8+55cS6vVglIWfFx4+hY1NMwrbDPnI8ZEVMZOaB8Nu3MskQBnhL/lnMYsPEMR/j/0/ejFt3HlB7pkhSIZj+MCO8GaKVdsfI42hb/u41aIlMBgjkmcDVZy5xK5JZgrAOtljyyOi3NXHYSuAFVYpBC01vK0RnpvcjQtCVs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.10
Release Details
UpdatedFeb. 11, 2026, 11:41 a.m.
Changelog

Added

  • Accessibility (a11y) improvements for public form response pages
  • Text-to-Speech (TTS) - Speaker icon per question to read question text, description, and answer options aloud using the Web Speech API
  • Toggle behavior: click to start reading, click again to stop
  • Language automatically detected from Nextcloud user locale
  • Visual feedback on speaker button while reading (color change)
  • ARIA attributes on all question types for screen reader support
  • role="group" with aria-labelledby on every question
  • aria-required, aria-invalid, aria-describedby on all input fields
  • role="radiogroup" for single choice, scale, and rating questions
  • role="alert" on validation error messages
  • aria-live="polite" on page indicator and submission status
  • aria-live="assertive" on form error messages
  • aria-label on file upload zone, remove buttons, and matrix radio buttons
  • scope="col" / scope="row" on matrix table headers
  • Keyboard navigation for custom controls
  • Arrow keys (left/right/up/down) to navigate scale and star rating buttons
  • Home/End keys for first/last option
  • Enter/Space to activate file upload zone
  • Roving tabindex (WAI-ARIA radiogroup pattern) on scale and rating
  • Focus management
  • On validation error: scroll to and focus first question with error
  • On page navigation: focus first question on new page
  • After submission: focus thank-you page for screen reader announcement
  • TTS automatically stops on page navigation and form submission
  • Skip link - "Skip to form questions" link (visible on Tab focus) to bypass headers
  • Per-question inline validation errors alongside global error banner
  • Screen reader-only status announcements for submission progress
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturehiico8sT2nFtIBbugEJCh0mtYVlay9iXrypCE6SdEehLcb06zqxaaRRV1wer6DFZVlpEaGi3qnWQu512jWZ6v18DW170EltnjVHFhmXPW+Fx4WasefOa/8MMQg1bkZ+8y77Hmll7pchCrhG5LtzSNcIQDAtczM1S2TVQ9dw7JdrtZPqI76JN+P+2pdex+oHaJ0zYAKZL1WU9Ygmdzsb50QSaJkMW9GXuR/Ow14uSfZBdwp3q+LzxD/x6W4tz2VsD0GXIFam68sMaNmnZBCK0FkwkjSP79zQI4decD6qilaDGDL40lWWN7muH5udYpPi8Xf4Eu/sppALufrcPepA1Hktns1IZ0pIjyf91la5sc37NbG+K7Jw+LKLbqegaJrcwiORS+3rcmDcrNrRYxmyyy8KWIW7t+sw5oD9+dItl3XiUKCDL8bfcVxTnci/1of+vZ5KzyxbAzA2mAOhV+cMuKm+5RX6vNIjUbYhqIrQpTjeDbdmc3R/2hltUFk5bOBdG9+qnUc/bAp5aOdSVU3mvgt0eW8uqGpu7B5tsF78STgexiHPuZ35YsXIR/Zbl19zGAtyA/lfC7TYSgOIION8vaRE3MjlgUr/aldDMtjB8q6oue5KsLBcKBWMCUKcomeZ5zWG6XLq7j+GkD4L8+Py4GI1HvlrPWpZ0fROTG5fLGzg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.9
Release Details
UpdatedFeb. 6, 2026, 1:21 p.m.
Changelog

Added

  • Question color coding - Assign colors to individual questions for visual organization
  • 7 color options (blue, green, orange, red, purple, cyan, brown)
  • Color indicator in question header with dropdown picker
  • Colored left border on questions in editor and public forms
  • Custom regex validation per question with custom error messages
  • Define validation patterns (e.g., postal codes, license plates, phone numbers)
  • Custom error messages when validation fails
  • Real-time validation feedback on form submission
  • Response limits - Set maximum number of responses per form
  • Custom "form closed" message when limit is reached
  • Live counter showing current vs max responses

Changed

  • Share dialog reorganization
  • Response settings and Link settings are now always visible (not collapsed)
  • Embed code, API & Webhooks, and Responses moved to collapsible "Advanced" section
  • Cleaner, more intuitive settings layout

Fixed

  • Scroll issues on public forms caused by password manager browser extensions
  • Fixed for LastPass, Bitwarden, 1Password, and similar extensions
  • Added CSS workarounds for extension-injected elements
  • Improved scroll compatibility for Nextcloud 28+ public page layout
  • Nextcloud 33 compatibility - Fixed deprecated OC_App::getAppPath() call
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturerIF5qS38JiuDBtmQEKuf3x5L8wtIMHDBYN6IIhaUTWhliFinBAu8YtyJC0lu/sN4zvZxK3ILE1+g3KRjLc/g28ZhK25O6Lnl3D6NtfAP68fVIwUibU1SHSyJV+jrsK0NpmwgH3qNnMWNKnVKfAuxHje12zQgZJEiG4/5fN4bhaAFNn/pXBKfLtAbRrwyVtDBCPm1YrruruolO7MWt65vKbOUgtnTUZRrwwLb8ygKHVVEhYSbptstvUPkaR2rp4y1E0xoa30hz6k37PLYitjCZ6+H9cdGNyyALn6dWrVikW/R43wQPATsDnbBpU7FfFpRtZnwrizttFbcwYxnI+PD1uiGkNdP/fl8QXADqcEXqI2otRYEpbr4xJtB/gpVbduGFWtZU3nopdYBg6xFpjbKhSMkWKZZFfixM/WKbZdWeZoQ23tuPUMNC74Cl1//s1TC433gYmryYh3ZFTyTCjhwt+vHH8MUpRTOAUsOLV1UFk4ey4Llhy/qFOlp2z0o5ST61/XdaWBO0tSFsjUMsK8xmBo5Y10H1BfOx4jOBMi/QF18c2GBd/HIK1IC0uAE6dAzOpLSy+oEhZEdfRTmN+Py+G22/VmHr1PxUpd/t/r8yLT48uT7oQoDwWsGBhw77DhVaDRM3m7wMe36VAfJSWIKvcOSEt/q09Tk4BlX0O6YN30=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.8
Release Details
UpdatedFeb. 2, 2026, 12:39 p.m.
Changelog

Added

  • Microsoft Forms Import - Import forms directly from Microsoft Forms
  • OAuth integration with Microsoft Entra ID (Azure AD)
  • Import form structure including all question types
  • Import existing responses
  • Support for multi-page forms (sections)
  • Support for Likert/Matrix questions
  • Admin settings for Azure app registration configuration
  • Per-user Microsoft account connection
  • Question type mapping: Choice, Text, Rating, Date, Likert, Ranking, NPS, File upload
  • New "Import" card in template gallery (visible when MS Forms is configured)
  • Import wizard with form selection, preview, and progress tracking

Changed

  • Admin settings now include "Integrations" tab for Microsoft Forms configuration
  • Improved documentation for Azure app registration setup with required API permissions

Fixed

  • PreviewProvider regex pattern fix (preg_match delimiter error)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureiQSbO+QhAacmAZ0f0XCyecq/v+L31Q/fOwbV6RkX3DUq5ObV/y3odSGq6nCKT3AmCyP7JRN/i96KYAkvJUyTyhmp6P9CJv6IxuFar6g8FkoWz1cXj5wLoDsdZosPhhtUePNrGn0EW9wihkcZVvaTxDpCNgf5HXtVFp9odpDXWOOZrakxyMoSD1koc7CmkkrYCGN95I5470K0gn+IkdkZLrq5hKztiJIt170wSeJax1HIWKBkZ5ngw7nO3UJzPXq0GVfdgWtUbm62TKAv1KwVwcxsvwvGwed9ox1F7LIS8JVRnjSzlq6NSWODO0YENg0xWzdDQXcdwE05vt0zZL92h7wvS7oMgr4CHyOczU8+oIcJRJ/L2idwcvw36QThb4NAOzen093WlFdwMFLqPibYKtf1Vr4FmfHRbtFYe1+6YP/Yuezmn3GrTi/hJqgiyOoRtiGv/WZyZlAV9V4p4o5tsAsij/LrqX6urKPoCRBU0Xv+7xI1rZI/gqMqXDmYgPEmLvVzimaxvHQsC42JT0Gk7HOgnrUYgOVRXuFYTTnJEFZ33MaNoXywCNPf/AjEMTYYKPjq77fQy0rFHtcE3GmXaNMzkGbHx58hUZIsrCwlZp1Iz1rMP8T9f/TvrN58J8Ij80OHJfxIAbESzQhe7k0EewOkcJRuI58UHhhI2iMaRWs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.7
Release Details
UpdatedJan. 30, 2026, 10:56 a.m.
Changelog

Added

  • External API for programmatic access from third-party systems
  • API key authentication with bcrypt-hashed storage
  • Configurable permissions per key (read_form, read_responses, write_responses, delete_responses)
  • CRUD operations on form responses
  • API keys automatically stripped when downloading .fvform via WebDAV
  • Webhooks for real-time notifications
  • Events: response.created, response.updated, response.deleted
  • HMAC-SHA256 signed payloads for security
  • Configurable per-form with enable/disable toggle
  • New "API & Integrations" section in Share dialog for managing API keys and webhooks
  • Comprehensive External API & Webhooks documentation in docs/architecture/external-api.md

Fixed

  • Admin settings page no longer blocks on statistics loading (statistics are now fetched async)
  • Consistent app icon (app-dark.svg now matches app.svg structure)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturej4WG42Wxm8UBPQq0I9NBJ1SJusy2ORqxBWubfd68QVERrk7kPEwlQVNegb8C5SVRed4cgkwk4o/B8O0SYchfcun0H/29EZaxnLsBXtR8k1h5s+Y80XmE50SjAQ78nwXR0IIM5DeUgkg5fAzJeJ4u6nxQH7YjEdvTCmAWmUe2vFkOBtiA9NIY744nMX4fJ+BxTDk7QGnkXeFPAkA14NDN71/9+bWsvKGu0WPcBpa1CPikUzUKj7Wk/OIOoAaE6/XvP4/pucwzJ4tukZ3xAdvtWPOmX28LSZZknutF/KvffqSv19q8+Fp4dAjsWo2Klk1PLxHM971hr7g2WsUsoYtHC3wmQlmq4d/n6Ug9gk/CdmnjbR2k06ruKsnt/+okphvAJ2Hz6hdCsiBJTHI62jNT+gnAxR0edndaQ3HSxPV+lzMuVeDzP7b+a2UvLKjNWeZQI7D6ms8+Sv80L8CPb5pDOFyWOu2ovZPmYjkXFJjdXjARuOupp39fdlH+TU1RnULR1BIagSZFG6rcxLXiqBGJA5mFzGzOsoNyyZ9uFDdLe3B1X7pkkqQ2z/3KaeAZmpenv8dWTjhDM4BjUuSKZzT2b4bAtN6VCu13OLw1BF4yWmXREw3VSc5Qvz73YeQek7TL7VI6tecHn/06NaaPrHKKOhn9uVPQJg3V4qDTOLr9Z8Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.6
Release Details
UpdatedJan. 28, 2026, 4:18 p.m.
Changelog

Added

  • File upload question type with configurable allowed file types and size limits
  • Download all uploads as ZIP from Results view
  • DAV plugin to strip sensitive data from .fvform files on download (responses, settings, tokens)
  • Form embedding: embed forms in external websites (SharePoint, intranets, etc.) via iframe
  • Embed code generator in Share dialog with responsive width and height options
  • Admin setting to restrict embedding to specific domains (Settings tab)

Changed

  • Editor toolbar redesign: Preview, Share, Results buttons now prominent; less-used options in dropdown
  • Editor header redesign: cleaner look with underline focus states
  • Question cards redesign: hover effects, focus states, modernere look
  • Description fields now use multi-line textarea instead of single-line input
  • Improved spacing and visual hierarchy throughout editor
  • Required questions now clearly marked with red asterisk and "(required)" label on public forms

Fixed

  • Hide .fvform files now properly hidden from sync clients while remaining visible in web interface
  • Uploaded files are now deleted when their response is deleted
  • Icon vertical alignment in dropdown menus
  • Suppress @nextcloud/vue appName/appVersion warnings in console
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureOI4r+UI2nwnpIFLKL9RijGU8qVDcsdN+RmHoXeh4wsH/FffjM0k/EfUGfIG44uHsLJZw7ScCByRN82zS4zks9omVmvIi4C0C92BVgwh1swpHz7P1+KuyPZEdj1OfwW/WtbOxjwn/x3tk9WyUN6T6qP1URBItFJgssJ+fHjQax/5SfVQLRapjaSp0bZ+Rzv2r2bMm9/gjhdLT7PkGPgG1QCYqsbkLznZC5rN2uFwO+sqMu/ss41Mo5nymiiIyTnJ/mQp/MyeTqd+1QjsiJ+Xt0ulqIhQ+2hkzsFCdVlj6h4DKoJ67IH8JcuBx52Uf/yE9HvQRQMGDMgg6VYgAg0+Oi2X5BDiaRgE8pZ1x/A74a4Ydsh8uaO9ZmHQJqjJU0lLPmwGE2BGswPTwKpCMnJJqT0B0xXAMaSI5yqzLvoIe4vtp2v5wfw2NDkVVQRBAmXKtndBADgpaZqkIp5zaImvxQimBHPOyO8IcTfWFCDU3iMCc6J2QxrgtXmQaTn4+JhDjCY3ePBzVxGbdHKkoYgE+Q3c3FsOMufBKKoEdPVE/BZ0BaynJcJEzF8hhDEgo/I4EDuotDgZY5XZegsjYUOQT/CwOOZEVJDJ2zKsXpogTcKSDHmmf9Dwv1//tRA6KDK3HPiBJM4YUVQSB9raiNTB55O/qbAOmU1aEOiZN0TeG2e8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 29

FormVox 1.2.1
Release Details
UpdatedMay 12, 2026, 4:20 p.m.
Changelog

Changed

  • Pricing removed from admin Support tab — The Support tab no longer hardcodes subscription tiers and prices. A single "View pricing & plans" button now links to voxcloud.nl/pricing/#formvox where pricing is maintained. Reason: keeping prices in the app required a new App Store release for every price change (review time: days to weeks); the website can be updated instantly. The Support tab now focuses on installation state, organization details, and subscription-key management.
  • Telemetry transparency expanded — The "What we collect" list in the Anonymous Usage Statistics section now accurately reflects every field actually sent in the telemetry payload, including the organization name and contact email (only sent if filled in by the admin) and the new Extended Support flag (see below). The previous list omitted these fields.

Added

  • Extended Support / Enterprise flag in telemetry — The telemetry payload now includes hasExtendedSupport, sourced from Nextcloud's public OCP\Util::hasExtendedSupport() API (NC 17+). Returns false on any failure so a Community instance is never reported as Enterprise. The license key is sent alongside so the license server can cross-check the claim against an active subscription — the boolean alone is unauthenticated and could otherwise be spoofed. Required for the Nextcloud ISV partnership where bundled-license customers need automatic recognition.
  • Description links open in a new tab — Links in form, section and question descriptions now open in a new browser tab with rel="noopener noreferrer", so respondents don't lose their in-progress form when they click a reference link. (#87)

Removed

  • "What a subscription includes" checklist with green checkmarks — content moved to voxcloud.nl/pricing/#formvox.
  • Hardcoded pricing tiers (Free + €19/€59/€139/year + Contact us) — content moved to voxcloud.nl/pricing/#formvox.
  • Standalone "Learn more about FormVox" contact block at the bottom of the Support tab — replaced by an inline "Questions? info@voxcloud.nl" link next to the new pricing CTA.

Fixed

  • Submit failed on password-protected public forms — After entering the share password the user could open the form but every submit was rejected with "Password required" because the frontend never replays the password on subsequent requests. The authenticate flow now sets a signed, HMAC-protected formvox_pw_<fileId> cookie (1 h validity, SameSite=Lax) which the share-gate accepts as proof of password possession on submit and upload. (#82)
  • Date picker selected the day before in non-UTC time zones — Picking 17 May in CEST was serialised as 2026-05-16 because the previous implementation called toISOString() (UTC) on a Date constructed at local midnight. Date questions now serialise using local Y-M-D and parse YYYY-MM-DD strings into a local-midnight Date so the displayed date always matches the picked date. (#80, #89)
  • CSV export still fragmented in Excelfputcsv() used PHP's default \n record separator while in-cell newlines were normalised to \r\n, producing mixed line endings that some Excel versions interpreted as a new row inside a quoted cell. Both writes now use the explicit eol: "\r\n" argument so record terminators and in-cell newlines are consistent CRLF. (#83)
  • Question labels shoved sideways in Microsoft Edge — The flex container holding a question label and the TTS button could grow horizontally beyond its parent in Edge when the label was long. The label is now a shrinkable flex item (flex: 1 1 auto; min-width: 0) with overflow-wrap: break-word and the row allows wrapping, matching the layout other browsers already produced. (#84)
  • "Move to section" did nothing when Pages were enabled — The pages-mode draggable did not listen for the move-to-section event from the question overflow menu, and questions dragged under a section header did not become visually nested because the wrapper that applies the indent style was only rendered in single-page mode. Both code paths now match: dropdown moves work, drag-into-section auto-assigns the sectionId, and dragging a section header carries its children with it on the same page. (#88)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureeUuQ4SynmfMaIwd1NZhIUdQk9Qg7DxfCKekVrIqSqs0vDAebIJ4hacbNi/jlDikk+KZ1a2BNwd+mIGiGZskETOIzcz5l+tQsT2+0gorPFzhXx+A0rzMIFpEm3cIN+N3us4RG05WXwKDtWClbtmJ/w6o8ZcJk9wEPbVQlOcv6ooT2JmRtvTcFpSxyLw4ViPPJjdpUdCixrXdad1qN56T9kDsz9voTlxWEmr3cdUTcG9Q4FxhkPo9yhsIO5GQtIqYjHVe+YDGcUJz8xGti/PfyQFCrDFllZrYOJeXP6VcYnE48WvrmvPuXQ7qpDgYWMjJsJInsuuJysL8tnQf/ySxy25zZy+Irt9FgUWR2w+fdQ6JYH9UXeUYuCFNucK0ca+EwooLaEO4RXwKhVcWYQBaPD2kldVHuD3fnv6iBUPma/xPLSxk3fdzcGXsEIcKwqsZrGs4D2Vf94NVvRKbBWRi7A5HnIBm/kGx90ZQGzFHLcIdGkaS3rU4mE5rzuhB4hKej1LQzaeoBR+ESdulVzzCXr6SvEwVbOZH/b46zxYQ7AzbAqpyOr7J77J3Uvzpz7Hj1Y0t63daVqjEOO87tQyKoTAvbPihmYrnbA/HerQhgyfP38VomWLpUS8/y10wx+s0sF7ewgy/PYew3DV33AORdQZEewY4Bzspo4+JzC0uFB1g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.2.0
Release Details
UpdatedMay 5, 2026, 1:40 p.m.
Changelog

Added

  • Bot protection that works behind NAT — Public form submissions are now protected by an ALTCHA-style proof-of-work challenge solved in the user's browser, replacing per-IP rate limiting as the primary anti-bot defense. Cost is paid per browser, so an organisation with hundreds of users behind a single NAT IP all submit without throttling. The challenge is invisible to legitimate users (~50–150 ms of work in a Web Worker), self-hosted (no third-party service, no external JS, no API keys, GDPR-clean), and adapts difficulty to the per-form submit rate so attackers pay more under load. The signature is bound to the form's file ID so a challenge issued for one form cannot be reused on another. Single-use replay protection via Nextcloud's distributed cache (Redis) with APCu fallback for single-server installs. (#76)

Changed

  • Anonymous submit rate limit raised from 100/hour to 25 000/hour — With ALTCHA now the primary defense, the per-IP limit becomes a wide safety net rather than the front line. The new ceiling comfortably accommodates large-organisation peaks (think 10 000 employees filling in a training evaluation in one hour) while still bounding pathological abuse if the cache backend goes down.

Fixed

  • Form description rendered as plain text on the public form — The form description on the public response page now renders as markdown instead of literal text with the raw #/* characters and collapsed newlines. Headings, lists, links, code, and blockquotes in the form description, section descriptions, and the in-editor markdown preview all render with proper visual styling. (#63)
  • "Form not found" / "Access forbidden" for logged-in respondents on restricted folders — When a public form had require login enabled and was stored in a Group Folder or Team Folder the respondent was not a member of, the submission failed because the authenticated submit path used a user-context file load. Authenticated respondents now use the same admin-bypass loader as anonymous submissions, so the share link plus token (and any allowed_users/allowed_groups rules) are the only gate — no folder ACL needed. (#77)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEgXx1k6T/jb0h31O0h5rzjkRhdCiLPnChW/hOo3JMOiATKU1BeP/KDCUw0rW9RpOhe5j7ySM8dogkKzsxJJvjNZCl92E7AeK5O0fDtALSSQnCW7P86vIUrB1IIt3RgwC9SEF2XLAF69prmf6JlH18Jqp4qMj6fw64GxrSh/mASu/FkmllqDoJBkml9jgJ578d7/ea7wEc4ugJVPKqVcENaVfYEaaprkAitesxpgArulem3djQLl28nnmAkoMZpXrnJZ3jr1zIFp6DSuCUpgnidtprxi2F8ncqglerVMeYXvohnBLzAP/yt+3LELcPyyDduursEkX0Of2rrjNRN9FGgtEE+OtzjW42pkbE5g0SvPS2s6FZR8dZukCcvvet7QE4CONVIDC2hDhNmCfqlGj3eaIkZzeiO8WLElqTX7LXEEB5oBBbiNUCgcelr3Lv0OZUb2/KtOlvASuR2hP2sLHDosmNpKnf83DpzfT8xCWz7BhthOxM0w/ErvfTpXspf/9+cJ8zExk+D9F38yoFGAf71m/ZDL0h363NZWb7tSl2mQtY2OF3NfBVicj5RFK6DnIZlD12UuvD/cj6dJcJYWThDT/OXrS3mvOMf2+FBHeLfi42ycGuElOMLqeVOo0PrOYE/O+H08IevLOq6JplXchq9PvlPXszN5g3fg3VqLeNuA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.5
Release Details
UpdatedMay 4, 2026, 4:21 p.m.
Changelog

Added

  • Markdown editor for descriptions — Form description and per-question/section descriptions now use a native Nextcloud-style markdown editor (EasyMDE) with a toolbar for bold, italic, headings, lists, links, images, and preview. Includes a custom drag handle to resize the editor vertically.

Changed

  • Form editor layout redesign — Top-level form actions (Edit/Preview tabs, Share, Results, and the Pages/Branding/Settings overflow menu) now live in a sticky page header at the top of the editor, instead of a horizontal bar that visually appeared to belong to the form description. Question and section creation moved to a dedicated "+ Add question" rail below the question list — the spot where the cursor naturally lands after editing the previous question.

Fixed

  • Conditional logic broke for multiple-choice answersshowIf evaluation now correctly handles array answers from multiple-choice/checkbox questions in both the frontend evaluator and PHP backend, instead of comparing the whole array against a single value. (#71)
  • CSV export of table answers showed internal column ids — Table-type answers in CSV exports now use the column labels from the form definition instead of internal column ids. (#70)
  • Orphaned fields persisted after question type change — Switching a question's type (e.g. from scale to text) now strips type-specific fields (options, scale bounds, rating, matrix, table, file, validation, date bounds) so the saved question matches its new type. (#69)
  • Newlines in answers broke CSV row alignment — Long-text answers containing newlines are now normalised to \r\n per RFC 4180 before being written to CSV, so spreadsheets parse rows correctly. (#65)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureTNODkyXkWcBDXqO4gs8raDC+CgQ/jQYD6wpAb4xj/yTwHRnv+VoA0emEpheTceqhy3gXPqEdX3lRZugqqHQ9fLi43xrdloAfG0p7y9lwjxm73ZhfYAEjHE+LAstRFWkxZgVqYcGUNG6dv8oFlip0xhgwEvH2RpGANcYmu9+7MBJpzU4TjLWAbkOLuFjFRahVFjWC2zmwDMK2X59qwfuRZhkUAPFz28eTsqEjP79p9ro7olkR1bBlySCTWpXEthLpwkJh4LrNC4lIIXM0aZoNlJJQniQbGIZQBIir9dkwHXorgJHGM87kQlI0IDDL//NsJ5cCcUcCuVDTQ9M0YSL0MUG6AjueUGkO1eEK/ESuwGjZe1wKzhqKi63jM2ACMTm6XAAl8v6rvORSvxIG6WPNIyLFnavxjhAmIQxX1e8nHqyZLL/PFLVeqOXYE+59Wp/rBSkhgSXOcYP6OwHMtaX/deac6H0KFQgtAdfa7bD6Wkp2TnN7loFyoqza2G5h0Sg25RZuzxYBwbCCkmflUtl0M80iyn6nwW7H19swostFBSaDyFrZX+lhTGQYsr7nKlio7BZtKdUjH4xbSsjJf4EGF8I/9GhdQytGpKQ/qy5i8FUYfiBmrx5BJg/oAHoER5Pp0oP0HQMWwv/1giNyXMp2dcuLWhP2hvAbB1IlBgI3ae4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.4
Release Details
UpdatedApril 24, 2026, 3:14 p.m.
Changelog

Fixed

  • Description textareas overlap question actions when resized — The question description and section description textareas in the form editor no longer have a resize handle, preventing them from growing over the per-question action buttons (edit/delete/drag) when dragged. Matches the existing behaviour of the top-level form description. (#62)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturep1UDsZKOD4hCwZY5bWgHJ1sTTRcCX+XrHdAlahJK5jV5EEDXag0tNIGqM4LIJOf7xHcn7rc3Z8TXxnFDoq73CXs4qBYETDCXhrmh8QrcRYKDLoSiZGQmktXdett83/EHN2Iwp5NIiR311QzukbAsFzG3wpZzDDbJ3qsmYv1w+K8mEye7C94JDmeuYrFsCk2LlnSIzNGy1yKDUmNqvPiHIAXIkp1ZDO9YoSiV6GavlNIqxsoa2BEREmgRKcUjxBuZZfz3YS76CHOVa5I28IapwspdZpzOB0nsLrgkSwWE0ljFK81X2OgYFlBTuV4ZTO+aan+69S0F/GHXQXmyi7udAmIGWge2kFim3Fz1ER+Q08lAATLJ1OaxkoL79kj3s32kO5U7d87tWaJKq321Rg9r8x0CgBG0iTUp/eCN9MRj2zdlTd4dLenLYDA4kbeXiSUZ1aBahzlVQ62X0eJLNhjxY2lz7ZhlmmTUtQ4luaxMlg4Yq854HSnzyXxtalC664EP53xMUSo5umFbE4EDAPHlfKaQwkGATg8ar6gocXvy28ht56jAWPgMISq4duRaV0/caEM7m3VwdlQihiN1zrpaP3mgmtHgdMw+ot4jYNr3MCbaEQO06L0zGNe1nLk0gawa482BU/Zej/t3uBWSiQEJM9e2IxF0R/VZGeCy96oHDDc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.3
Release Details
UpdatedApril 24, 2026, 6:53 a.m.
Changelog

Fixed

  • Webhook "Enabled" toggle unresponsive — The enable/disable switch in Share → Advanced Settings → Integrations now correctly reflects its state and persists changes. Previously the switch used a deprecated Vue prop API (:checked / @update:checked) which silently sent undefined to the backend, disabling webhooks without feedback. (#61)
  • Admin statistics no longer crash on user-backend errorsgetUserCount() now wraps callForAllUsers() in a try/catch and falls back to 1 if the user backend throws (e.g., LDAP timeout), keeping the admin stats page, license usage reporter, and telemetry job running.

Changed

  • License usage reports now include activeUsers30d — The daily license sync (/api/licenses/usage) now carries the same active-user metric that telemetry already reports, giving the license server full visibility of active instance usage.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureBsfsxecsMB2+i9+eq9JiyvP52vlLdV0MWJ3rBMLb88aKwbg2Nn51QOCW9htSIsOkmgpCUFGuXHyMm/lR3mFG3krH71WaUkBEEaoS7ySiUHq3Pl+8SQD22gt7wj6a+J/MTiZS7mObQtTYw3GzatusxyxgM/+1KaZwJqZxQ26CFY+pZXxxcSsfYLXnJIZB1zj4BY5rN09gfwM+Zw1PWXOJJz/Of5IeoFCDc2RdVE08zXQlfYVK3iHSb4naGwjTAPKwvmWFRpL6vCYj2E7qSykaK+2nK4av0myrYK8+ldNfi3Zh3bmkdXKYM2yDpcU9ijp0pCk1FY/apY329sr6HYBPKuqI0Ikss4YUVEBLaRNBA+DM6kVkAe5ihE1oKIsB/9Fmu6pPgQSxM9rYlw35xHgv5xcv3mP2ZiaVJds4vC7foRLobAfvUgje/eLoBELKBvAT7P2J4uF8n7F5XT3hoUciq638db8QIivn9HP83hqAhT8kY4mvXzkb2OJhGzumslcP9YDKfAD/fAPfJhDDDOSxTgSYJBw37RuG1eYMcGcvURw5Qk+7yU0eNtiWhr6zDVgu2YCoUK6ZRrbgJYNMZ0ur7Me4QU8+7AeUArbZIeajA1nCtqcPk9xmTAXCiNARtv0VZ8RdY1RZ5iVBOnK5+SbxHGBbQ3mZNZdKwzFAHhvsJOA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.2
Release Details
UpdatedApril 23, 2026, 9:02 a.m.
Changelog

Fixed

  • CSV export garbled German/special characters — CSV export now includes a UTF-8 BOM so Excel on Windows correctly recognises the encoding (#57)
  • Results chart legend shows internal option IDs — The chart legend now uses the same label mapping as the charts themselves (#58)
  • Unanswered questions blank in Results — Unanswered questions now show "Not answered" (translated) instead of a blank dash (#58)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureANC8GYEPpin/4ns3c7w+0sCffcPTLl1k+FArDTVECdld8uv6XX+32VP8CY4+Fz7iSF8MdPZ+A1+BoUmqXylSavw10zO/XbhGAU+TmjxyjwkJTE9cOTs876XBFP7lhOTqQv6C8sivKoTEc1N5YTY8gcyqO58hJgJML+4rqIJSfuUTBc85r75aBbQAMeTz/0AbVDsrimgRoS6HszEzj0J6XM/egGkg1wJQk9oXFB9ijTlZQUzjSPbRmONRjrcQEc9WfR+OKTFfhLAQNsr0bRKw/8jUksHTNRrxZ4tPsNfBX6mM6rHJfBardsGI+tSBZPvtjbj3Rp6akuxgLV84HzdUmsDPkvsK20AmPdPh3lotSNMYNSo/Qo4lPEzyJ30U6Zq8fcCBC6e9izKntJkUwPHXNcFtIuuVZiC8ZxpItE5k2tqXE7XbNJoDITZyVk6BVnFRUWXxh0IiChBnYHPEm7l2oAoJ6tvbkeKCIgSYNVK+FgBjehStT02YEk9uxkVjaeQNAn6OzclbE+LgjI2F5VjYZALk0QVmsKD0QFn3QyCG02sF/6fTzJPl+lP12+s4S47/WTIxNEJNLhPU+tuk7bF75BSUqqG3QGgIvzeFNBrEDKhSwA9g5Oa2YiWZEPRnq0ZYyL2rrXjHS5Nqo6K35AAd4xYq51vfpXOQywSfVFA867s=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.1
Release Details
UpdatedApril 23, 2026, 8:21 a.m.
Changelog

Added

  • External storage support — Forms stored on external storage mounts (SMB, SFTP, S3, local mounts) can now be loaded via public share links (#55)

Security

  • Updated fast-xml-parser from 5.5.7 to 5.7.1 (fixes malicious CDATA/comment sanitization and stack overflow on long tag expressions)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEiNCYJXtZ95soBULwBnHUYWQ2DhP3zeiwzU0RXYPEwvs0R9/ydEjCtwRud+c9PeNLeT1XMvAmP39radRc2OLgD2L12CSJaWj3IbYvSRVKAlnQFAwS44wDHmpuVf1dGq2Tr1Sfj7lFn+0ubYW5Xw1Pmqjft6X1ABtMW9sHCUQbdB3DwfL/EB0M5It+/iVDe4Z3OE5n7tiqhVe4vuFUxWOPqavDUqXS8MjWLMZB7SAJ8IXaF4kKG63qHZBfo3npKrTbbAsIZOvvy5rFzzD63brSd7i4QybX++QzMXSM/hYOTo9pGTMAgfmJzXCmDRn5s2M6lS8mKOOdLgsXMr8hZekJtuR74CZz83V7GyYXZEhe74D5KmiFhTajT8opzuwnQ3BLojEdlumIKzqKoRlwuMT2/28/Oz+S41OP4qmhRGx/Hztht+ml23/mJzIqzpZCulXsdb2U8j5c6Py38lDauvWE+Q4Xt3/yUjlFJVj3KxFQXTxOWUKzfsrU6Hn0T/wDwVX1XiRG2elCqAehOXdWuQn2w4dX9jcKQ0s3WTY41QtqAGKVAbYbQ5ROesX8+I8WLL2mIzkkDIvGtxz7Q423R1cA8bQzFNpK9sM6Cs6yP6Ro4sQtZY+qIAMTszuwHDUCglOgbMX8XVFd4kF1obfF2AupHWeoelvDEfxL4zqyCNHkTE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.0
Release Details
UpdatedApril 20, 2026, 2:09 p.m.
Changelog

Added

  • AI form generation — Generate forms from a description, an uploaded document (PDF/DOCX/ODT/text), or both, using Nextcloud's built-in TaskProcessing API. Async pattern identical to nextcloud/assistant: the request returns immediately with a task id, the frontend polls, and a background TaskSuccessfulEvent listener materialises the form and sends a Nextcloud notification even if the user closes the browser tab. Includes heuristic truncated-JSON repair for less capable LLMs.
  • AI conditional logic — The AI may add showIf conditions on generated questions when a follow-up is genuinely only relevant given a prior answer. Values are snapped to existing option values; forward references and circular dependencies are rejected by construction.
  • AI admin panel — New "AI" tab in FormVox admin settings with provider-availability status (live-detected task type), per-instance enable/disable toggle, max-questions-per-form slider (3-20), max source-document size slider (1-25 MB), and toggles for source-document upload and conditional logic features.
  • Scheduled opening (share_starts_at) — Share links can be scheduled to open in the future. Before the start time, visitors see a "This form is not yet open — opens at {date}" page; submissions/uploads are blocked server-side on all public endpoints.
  • Per-form branding logo uploads — Logo and image blocks in per-form branding now upload to .formvox-branding-{fileId}/ next to the .fvform file (mirrors the .formvox-uploads- pattern), travel along on form move, and are cleaned up on form delete (#53)
  • Result summary shows labels — Radio/choice questions in the Results summary chart and legend now show the option label instead of the internal id (#52)
  • Full translations (EN, NL, DE, FR) — 43 new user-facing strings for the AI flow, AI admin panel, scheduled opening and "not yet open" page are fully translated in all four supported languages

Fixed

  • Share link date pickers don't persist changes — Changing the expiration or opening date in the Share dialog now debounces and saves automatically instead of discarding the new value on reload
  • Notification icons missing on mobile/desktop clients — All FormVox notifications now emit an absolute icon URL (#54)

Changed

  • AI form generation is off by default until the admin enables it (unless a provider was already installed when the admin first visits the AI tab, in which case it's enabled automatically for convenience)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureQk7s2eNDcOC+qbqnbRWxqe63swdWDcu1YoTXk2BzNHTFVo7+JUP5+fsf4ZX2PYUVFcx/3n0/p1D+7C6vdtNUqxmAO9wKE3+MF+xjPMwyZrK2rJXVaaolGkfoVPr+PgiHlQYxd9Nh4F/YmkllR2uVTY1tN5QzDJas7ISwmPc1T/ArKlMsXQ0nlsKFhK3XEHGJ8TEWC06imVE8RKQcrn6G70/qwFYsdKopf/DjJEdhtcxTkd3UKLH6NwVILx1rktFfcd728U2HsvrS8LEBgLUd2zfUYJzfe4f3oI76KvzeYJIBOOje1Tkd59UbrrhJylZwWD3qxI3PgHiIh9mqgdCGFX9xSv6nIAjByIVHQod4hPgEfyzXNVvtovVtAaH0XKXU8PTOK38Gju0gHvtcQF7W1frK7ZaqjUudHOzweT87IO6Pnpdugg0TXXJqOSdNBn41cwjgIDkTaymrMGDw8Iaxfu0tE+nby/vlb4p1Yr8+wHbHnkVOy6WYT8SI2yhaUW7hYCTGJerJAkpwrH/3wWCurjF6eSjodyrU/eMkpb64GamAEYXhjK+1ErE6qvupetnJtoDgBTGaaVW384+pRUzUAOB0aYWqbxPL/BvxlcN0DdOg3yAP7vtFLCkx44/rjx0vBbZw7Pw7YwsUlvxntS8dc+NvajRd7lZwRMeZw7/2zGg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.2
Release Details
UpdatedApril 17, 2026, 2:59 p.m.
Changelog

Fixed

  • Telemetry error feedback: The "Send report now" button now shows the actual server error message (e.g., rate limit, connectivity issue) instead of silently failing

Security

  • Updated dompurify and follow-redirects dependencies to fix moderate security vulnerabilities
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturenWH3habsfSuicUPAYeMfpBHNnXo7QYa8/fAhRuYTh62gdaiNQArKCcTFCIevd260+kBMUoI2yj5aDoxq7vD6NriiUOi60FQkCd1KogxC51glVMyMm0MaCgbEcFZG0JIIZ9pAJEAu1rpoQwmkGRg5D0XaQDGUl7vkgZ/+OcUA7RA3pw60jEWueZiF+duvkhka2P3OTkGFzZodk6kX05SpD34ygRwNDeLiVwYy0E2A5mYWk2XN+ZLdMn0uK/6j8ch7xa1uecEl8deakE7jn72jeE+tOZ0qZBXcK1p/zVfHyrSSEny8xGTQ/JR+l4PT1pMbM2eMewJk6rKygGcPAHOK0nreGk+j15jMCPBTK7milwK+OvM3zGUSiLUr4Y+uSKNB3NQzmOQYCeH7T7DSG+AdjdXJUmYFjxeLt2hoFGPxR6lkAGvuRm4DwPfHHlPPetsmyGhsgL8ZYKX46l31RvtDYYYwmPeF8EF/UgPlTTm+KaRQoofAy16Hfna0NEwcqMviOGIDW3Nkty8vIPwM7a8XE59qokRnGGuYWkRR8UAg8tsTGelnAbd7bWiUVQOrjfonVCuRknVogJ9eemLB46TTVhGkZ610bj5WnIp7GzCeG9F5HZuZKpl2KB3a0YOqodbssB2rDBEbTYW5OX8GtaX+A349ZSd/iDSmNHO4iQNnZ5o=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.0
Release Details
UpdatedApril 13, 2026, 9:20 a.m.
Changelog

Added

  • Support tab in admin settings — New "Support" tab in the FormVox admin panel with subscription pricing, installation statistics, organization contact fields, and license key management
  • License key management — Admins can enter and activate a FVOX- subscription key, which is validated against the VoxCloud license server. The key is displayed masked and can be removed at any time
  • Installation statistics in Support tab — Shows total forms, total responses, and total users directly in the admin panel
  • License banner — An info banner appears at the top of the admin panel when the installation exceeds the free tier limits (25 forms or 50 users) and no valid subscription key is configured. A warning banner is shown when a subscription key is invalid or expired
  • Organization contact fields — Admins can optionally save an organization name and contact email to be associated with their subscription
  • Background license sync — A daily background job validates the license and reports usage to the VoxCloud license server, with per-instance jitter to spread server load
  • Telemetry section moved to Support tab — The anonymous usage statistics section has been moved from the Statistics tab to the Support tab for better discoverability
  • Full translations (EN, NL, DE, FR) — All Support tab strings are fully translated in all four supported languages

Changed

  • Statistics tab simplified — The "About FormVox" blurb and anonymous usage statistics section have been moved to the Support tab, keeping the Statistics tab focused on form and response counts
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureP2gopdnkFIlA23vbmBlweI6L9qwwLKioNUiltOry331cegOXVm1alaTtOG4AAZQE9VpgHBZ5VEBprxCk6vvuiLEHH/VgR+NbiG0xU4rTfPABfwBjyaABFhWWZPoGKpZ1lc5ZU6SYGqj6ucjpF4IwTWxsKln1MveRuIEccAYRBXSidPw1ukv7Ur6/Q2qv/BoAJo4YesXlgr7XOEZlu8Fn3dSaj3fLVG2zmh8pI/80tjmtn3588UP+ohyuSUUnMxqtUpQE0e5x+OuZjgvpLmOQQt7P1v1gsjA+sguWZb1kR3jq/Jqt8vN5TsI8gAKIYqq2DIArg6gnd2o5FSYNTgaaR6NJ9iNhua7XnHpFkc/xDXvKZqUpLwEpEhDlf0E/nTEPVl+nCZMZUsRex2mFta1TszXPA9nu62KQ997Ls6DwGOy//ad4XXRfbz59BQvdSOcOt9ZURBpEfFZs3KnvKHkGHrfwNE+8XtthPyhrQ1GtP1yxHH5nF8XMlLSQiwa8pWuf+xp/LpWu/oIuGryceg+C9zrFKiqI0SRwa8REtrZFHkApEH5gVCczanLcfluvaqRGEZ1ZrMuYpqLio7I3kkmdo4sW22AKhgYQeZMlTpyQlaW14hw9mQGtrGqCSHCab2y6jHESFtkR6JY1WSKhoxaxOQcMJXQREjApROtFijoHDkM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.4.0
Release Details
UpdatedApril 7, 2026, 2:58 p.m.
Changelog

Added

  • Sections / fieldsets — Group questions into collapsible sections with an optional title, description, and conditional display (showIf). Entire sections can be shown or hidden based on answers (#38)
  • Markdown in section descriptions — Section descriptions support Markdown including images (![](url))
  • Drag & drop into sections — Drag questions into a section; sectionId is auto-assigned based on position
  • "Move to section" menu item — Assign a question to a section via the ... menu
  • Specify notification recipients — Form owners can now select which users or groups receive a Nextcloud notification when a response is submitted (#46)

Fixed

  • Form not submitted for logged-in users — Forms with login requirement now correctly save responses without requiring edit-level share permissions (#43)
  • Scroll broken on public form — Added overscroll-behavior: auto to override Nextcloud's layout scroll capture, restoring mouse wheel scroll on Windows/Chrome/Edge (#44)
  • CSV export shows option IDs instead of labels — CSV export now outputs human-readable option names instead of internal IDs (#41)
  • Images embedded in ODT exports — Uploaded image files are now embedded directly in the ODT document (#45)

Changed

  • Toolbar layout — Editor toolbar splits into left (content actions) and right (view/share actions); labels hide when space is tight
  • "Add page" moved to ... menu — Keeps the toolbar compact when pages are enabled
  • odf-kit updated to v0.9.4 — Picks up latest fixes from upstream
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureDzTnWoXiqn8l00om8bW1J90Uu/E6uVvP73B5Xkir8WPIlGR51RYdQbCveelGg/ZR3L0GCoTuoJ5HpNm3uY6v2USyyrbQtClFU5ZBT9iRdg54KWOhsi/ubu8pmmPTsBEtZj5HUqHNjIE4WWtEANXSvoX/hZ6mrQl7VJBf+Dsrl4NVHPJGtLvBm18Wq6nqJ6moRsTQLfChnENSeDvxLDDXJA9zbnVSUksdTvx7gDhCU+t7sdbvYE6QgVVs3wQiju32TM+Ey6fMw2pBZ7fY0GfSF2gzU3czSMFKMFrGQGNj7287hBUJb1H2m3zfxYVVLXGxrJcJTMnWrVfoZpzq3qcwA9okRT4sBprsUVvL+PkA4S0ytHGf2C/c6oSSvbJVVku0Ragv1J88kk1Mx/woUaiT8kYerFuO9K2rRJ34IqKOnCjv8DGxYyjrJlfalUb7y1PhqUik5efZEPieOXfk3A2FwvwTIcXioa7oHCispAuajXcg0z5998nmv4CdzEjKuak/vMTS30zE+wQ6s9rBKgw1sCuslhVS5Vf3niWQOv3B/DZfGz19A/nP4IHFAA0QbACBaRkbPrkidSKCciV+OWaNq+WoZMgSBFol6TpAc2AiYuKdCDZjTgG8Z0XfZyhMYnUOHilah0I3ZttjsPbIPh/Ir79xJ8wpoySP3sxMTtmYczo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.9
Release Details
UpdatedMarch 26, 2026, 3:20 p.m.
Changelog

Added

  • ODT template export — Upload a custom ODT template with placeholders like {Q1}, {Q2}, {form_title}, etc. Responses are automatically filled into your template when exporting as ODT (#23)
  • Template auto-detection — "Export ODT" now automatically uses the uploaded template if one exists, removing the need for a separate export option
  • Template portability — ODT templates follow the form when moved between folders and are cleaned up when the form is deleted
  • Table question type — New "Table" question with configurable columns (text, number, date, dropdown) and dynamic rows. Ideal for expense declarations, item lists, and structured data collection (#35)
  • Notification on new responses — Form owners receive a Nextcloud notification when someone submits a response. Toggle on/off per form in Share settings
  • Wider form layout — Public form container increased from 700px to 960px for better readability

Fixed

  • TelemetryJob crash — Background job crashed with fetchAssociative() not found on Nextcloud's ResultAdapter. Changed to fetch() (#31)
  • External API missing pages/pageOrder — API response now includes pages and pageOrder fields (#27)
  • Required matrix not validated on page navigation — Users could skip to the next page without filling required matrix questions (#34)
  • Required matrix accepting one row — Matrix questions marked as required now require all rows to be answered (#25)
  • Horizontal scrolling blocked for wide matrix tables — Matrix tables now scroll horizontally within the form container (#28)
  • Multiple file uploads broken — File metadata was lost for multi-file uploads, showing only filenames instead of clickable links in results (#36)
  • Multi-file upload count incorrect — File count now shows total number of files, not number of responses
  • [object Object] in ODT export — Multi-file answers now display filenames correctly in ODT exports
  • Webhook creation failing — Fixed parameter binding for webhook creation endpoint
  • Form hard to read in dark mode — Public form templates had hardcoded light background colors that overrode dark mode CSS variables, making text unreadable (#39)

Changed

  • Presence endpoints moved to PresenceController — Collaborative editing presence heartbeat and editor list moved from ApiController to dedicated PresenceController for cleaner separation
  • FormDeletedListener extended — Now also cleans up ODT template folders when a form is deleted
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGH6DRDS5w+4R6rfA8rBo3kSIFAG05bjIREgWfDIDt4Y90nrmDC4I1IiCVEpKGAOAsysQ8Np/Kh5pqVn/bgZgopAdfinadLwoyBPqYiDkCzJZmm7vs7z6/7hmaIMWsGIT3JGOotuHSKOsUUVnOYuZUFXzCx8oOg+dik1zHGte+H2klZcYOJ4bo3x2xnSYkl6FR1UQWxx4Ng+fK3aVfs+Cmz4XvIxc1es3ciGLpeOlq0P358f5doqFVIx5RRnEZ4+rFYszO9EJMG/3YR4i7esh1z/wrYX2SOAwQesv9g6PNnwOOOU7a7mmOWsstt3iRmUOqrf83c9wl4j0EUhxxPMWWp0sY8wme+QT7Tizk5Xh/USWHz8+jRWJeIYfjukVk4krYnXGQv9cF97WSYTCAQJ1jpcY0Y/pmp9QFFZeexlJSy60xo4Cv98k1irLGZibjk2hkjFcWJzh0VrgRpynVB5cYuPEwdB6kPzyFLO9joSK8vg7LilCeH2Ah1u8yUbkCI/tootQqNuMbRwLQQ3QJr0o2cPZC0jXYPuJplf3ug+WUeD3WZxouboTV7x6clsDQRSwrNae2QEzCouFa/vSA9lR9TvcyJ8cfdErUmygEYwqHQ/rv8HtLgDmWrDnA8+fYR6vQrrFDqLraFDP5pWkost6MGnqzJRitceO/kA/38JEIvQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.8
Release Details
UpdatedMarch 13, 2026, 5:22 p.m.
Changelog

Fixed

  • Form submits on Enter key in multi-page forms - Pressing Enter in a text input triggered the browser's native form submit event, bypassing page navigation and submitting the form even on page 1 of a multi-page form. The submit handler now checks for remaining pages and navigates forward instead of submitting (#21)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGNkiMJGIKnQR0vX9Guh4GkUGa/uYR1w0RIAWKXmo24z02RTHUlmvBSTUlYc0BWz0Mp5l6o4TDMDR4H5EckmM+OrhtraluRxu0wCt7NIxRao/hVOdQjVeXenGjJKJsxpcJdjFTt3i34wAlNcuurewF0yF4vN1gSgnsq3POapllMUoaCREt07bLzb7i0+QHDsDVgs6uf0xn446Jnih57LbMspuoD6u92+4nNPdGTAbw5HeLeKa2tpMo2dxWc6jDwZK7Za1GUg3t8gP0U5qf2toDaTf7L2KQd01v0dBLzuDSg2QKdAC5QKFSHubRSW/SamUDelPulkB0JsAzsGW2PBciQiEgAzASsXYPaHvWPSjFyOoGa+707Rg9h+pDge3nBPwcaexwhbwQMjdjWn65vMHbTxqLNbNS8/JGpLCcrnOeRsqQUr1xlTPVyxC4tYewE6xZp7jkDOgWfUDNMqcgEh5Q2Kzn/IxaEgW4VuTg9j647VU6KqVww6kZVbCOoPcy74MsBSG7bs4UBYGThpQ0uc5RYUFqOUpUQZhITM8iNZp/8gqnOgFjUiEUvuCEP18mBsPr3SW7bxODUIjrLRIsQzi2vTZiHk8kYNe8o5pEc/Otdp3wNJqlPzqc7OaG0iT1exx9Ad4RmDDgPlC0rfcRk/UVJzWs2KkTyV6iLuL8ujn1X4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.7
Release Details
UpdatedMarch 13, 2026, 2:35 p.m.
Changelog

Fixed

  • Single choice / multiple choice / dropdown options have no value - Option values were never populated when creating questions in the editor (always empty string ""), making all options indistinguishable. Radio buttons, checkboxes, dropdowns, and conditional rules all failed because every option had the same empty value. Now generates a unique value (based on option ID) for each option. Existing forms with empty values are automatically migrated on load (#16, #18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFy0zI/ZLu1i4uixJGINESbnSdRYvFpm9++0NO/yL6X9cXqLSKlfdUiVPHMMBGu08UZjIx3QiNi4tDt4rslkBxR9bPGQtEvhMM9HvmM+DB9jtoLLUVsmLwnSahUM4NUCgNIkmpsMl7L9AGarftcOwtRTg4SINWi4isQWgliswP+7fvG4+m1cGKcgY/2uzhRzdkFMYP5yyXjxt81qr7ejr19q9Zo5E7d8QR3waA7XbDy3zaN8spgCrYvJxU5LY0zkD5edXgZgl1BaWkt44BLuioAjDMrBz5CDeTbtDG2ZTJPTuZC03RhWPWkC/PIeHFSi+ULRq5BqKGayse5lP9JZkk0SHGYhYwHm1ZEIiXB1aCUZBxjSVuLAtSsjprx9ul3FXqSg1YlsDi0yjo/djcFAtDz1lpPkpWheSq6ZuooPYwpKASEuPuItoYZpLdeN76TsJQ5gNFghCETB0dCod0otvAKZIlFW2T7D17J3Hqr9u+6jVidjIl84T7uYMMCAjH5A37DAlKbaFnYJw4+p24+UlnF2ddHIbp5SriQZOuqSlseFX9QxM6ENjuSb97pxdseApfeQkkfU9YiyD04hylaqHzUO9qZJu9BW7CZaXQtakQ6Ng7N+6ricMvLNBAqWs5dBetAdC1EaUh1y3nGuGXAeZc751+9mN4aRKL1spa7gehw8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.6
Release Details
UpdatedMarch 13, 2026, 12:57 p.m.
Changelog

Fixed

  • Translation .js runtime files not updated - The v0.3.5 release fixed placeholder names in .json files but not in the corresponding .js files that Nextcloud actually loads at runtime via OC.L10N.register(). All broken placeholder names are now also fixed in de.js, nl.js, and fr.js (#22)
  • Single choice / checkbox questions not selectable - Confirmed fix was present in source since v0.3.2 but may not have been correctly included in the v0.3.4 App Store tarball. This release ensures the correct compiled JavaScript is shipped (#18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGsNKD/zZO8q+PhEIna48W0VkliK/7j87UZOTEy7+v2KC8acYz8jpOJZA+hNkqyL9Lkj4nIhUc5HEO7tJCEKUtrZOvUO9la6HVrMihnU7X4y9yCttfBeqlxhKw9N3LoVoS1KZ1n8bCgxpPvZMqKKTMwM1tRmDsbENLv9RaKq3EEKIwufYRrzn5RwMY+EdF7j1ywScjqjxYYcd+7euIQi38ATMeuQLTKkpEU/SZSmtciuH4wdRidazcKf/9aceL4BhbgShC/216I9klQ1Y/LvNaiKaEf7wXeAlpWY5zBhaSzfFjRDLWuzXJKTXpJmP2sxk30a2PO5zZpOFpFIJJreonrkxrb2RPrOh24CTOm6hjnTh3PK7uIgXBmXunuWjduGBk6E19DkjkUdljloipkbrzNNhdukk8ppBemkLDFgSosEw8y8qOta7jsNxiiMnbAzs4CZlefS0o61g1Of3tb1rzrEfI0eaT6KmMpO+SPqjoDHTvAGHH2UdYR9cJKF1ZUq6Juh63oOk88zsuM/LvkP8NVzQGuRokdOo8cmTIaNAlpE2GVJMnqtjYunf9I3O9ivRQHubHkXtesJqn3GAt4cxX9fHYDqb7xULqUcsRRrXpTQivsNrVF6c+udvhySUczVdaZ+B6zsae3216I/bZV5cwLGtXAFSuz3psHEMvIiVZUI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.5
Release Details
UpdatedMarch 12, 2026, 5:31 p.m.
Changelog

Fixed

  • Form submits instead of going to next page on multi-page forms - Previous and Next buttons were missing native-type="button", causing the browser to treat them as submit buttons inside the form element. Clicking Next triggered both page navigation and form submission simultaneously (#21)
  • Translation placeholders not interpolated - Placeholder names in German, Dutch and French translations used translated names (e.g. {aktuell}, {huidig}, {courant}) instead of the original variable names. Vue's t() function only substitutes exact matches, so the raw placeholder text was shown instead of the actual value (#22)
  • Screenshot filenames with spaces - Renamed all screenshot files to use hyphens instead of spaces and updated info.xml URLs accordingly to improve compatibility
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturefiwy4f05zwUTsL/mo55TXaZGL/hFV7q1Yz5FrIO0yq/Std4g1k+r5725ISI8l1/kSQJYWEJnd1srbPvVD7PsBepvin04T2N+Dgac3j/gizz3BMba4U/Ix+qwOWGL1QGFBYuvnzTqpMKuZS23LwO65+hwMDporNCGDQa1o5ub7n0LthvLJ7q3xgRb0GsKCLHCV0jKBLOcPqYSIx3/Kckvd6CQYvHXudSeucheXwqb5xKhl0jFDA58g4G4axuEZ/vRzhFxsTTQZYOS49nTceAj/xl3HT6zYiCO0GfsUmqDrLmazpzH7E4TUePzrlCM04j9wyM4EchuXAqkj1NpazZx46OsMHl+t1/Q31ro7P1iYtrVLoMpjPFQa8bCR1VWrOjgnBPjw0gQWbhaOtGByyJg4udpT+I00+jUuKCiT398EUEonFRBhysf8eIENGNlRHNH/3yjJSLvm2S4iaoBABUWBSgZWhQvLI4Ep9jNoCeM8jcumOQWnMuE/HFyQB4QSNVevBaayo8VMv6Tj4Zl8PbnldAA2zHFc4EaPNek5OWIqLhEnKk01wC5zfsKFysDmOvsEfZfyvG0LaRApp+ioCM5+dsict7+LN4b86Ib7NOMJ+BQEF6fwWXN60KmptUl8OBCepOI9KyCE+MYqqzLUqh3+/P06yBw166eTUTD/kdxdxo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.4
Release Details
UpdatedMarch 12, 2026, 1:32 p.m.
Changelog

Added

  • Date/time range restrictions - Set minimum and maximum allowed values for Date, DateTime, and Time questions (#15)
  • Date/DateTime: NcDateTimePicker-based min/max selectors in question settings
  • Time: native time input for earliest/latest allowed time
  • Client-side and server-side validation with clear error messages
  • Date picker automatically restricts selectable dates to the allowed range
  • Markdown support in descriptions - Question descriptions now render Markdown formatting (#5, #6)
  • Bold, italic, links, images, lists, headings, and more
  • Images in descriptions are rendered inline with responsive sizing
  • External HTTPS images allowed via Content Security Policy
  • Links are auto-linked and clickable
  • Answer piping ({{Q1}}) still works alongside Markdown
  • TTS (text-to-speech) strips Markdown syntax for natural speech output
  • Condition editor date/time picker - Condition value inputs now auto-detect the question type and show the appropriate picker (date picker, datetime picker, or time input) instead of a plain text field

Fixed

  • Date comparison in conditions not working - "Greater than" and "Less than" operators on date questions always evaluated to false because date strings (e.g. 2026-03-12) were converted with Number() resulting in NaN. Now correctly compares date strings lexicographically (#19)
  • Question reordering not visible to respondents - Dragging questions to a new position in the editor was saved correctly, but the public form still displayed questions in their original creation order. Fixed by using the page's question ID order instead of the form's question array order (#20)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFrSf68Mci1D31suRUVNzg+pPPiKxkYfn9Ss5QgA0bJWTggh9x240M4+3KrF+MrfqolaiBGwGbpbE6qtD6pgjFc/nCV3yQbo8phgErx5kk9q5tA4qLK0SKG5C7dqPwub9Mi2BXxE9/tTDrAGyrAOo/CHQ0wZ54h7CM/qO9lU7aHUNTDrbXf9Wa3MUd2O3B0hqAShxnDVFuG1fNpW59r7xd4UfGG1nsU7BCH1ahUB4Ha0P/JdrlrhHRia590gZZ6oXvm0wofA3bDOi6ETMHeuPBIa8Z2zZH4j8OmADhqzZyekL9YtcbkP49ukmWUUP/KjQgs8AoPLefpPIDvuEAjJ+ArnktsWh2MwkaTlAEMMlifZro1/yRpzZyDXb5PcJS7JJ4Egu8htlRc0RQPJBjzTogUAZeenzDq9R1PvbAI8c2MnaWQ8kLGmzi+eBkbkEa6lj6Z/vZSlnkHQqpB+HfY1C6X7WGzqZDxgboiVi77tB9ASAphvPPTFU999ofpiv53bBd7t/aNHHu8u/V6oFj0NHyA1p2ZK8Cgs4LG5i4XK+TPn9zfnvXQFEDzJfrcAK+6Wa6UwR4p3jpO49R/k8Wh3AFKJ09l9bAPBu+FUlntYsq+tnKaGcQdJRwmdxWn+yOf/5I9WZ/aYfzjI9H+dMS8caMbChabJz0TSDErq3PHZBShM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.3
Release Details
UpdatedMarch 11, 2026, 6:24 a.m.
Changelog

Fixed

  • Public form scrolling broken on some Nextcloud setups - Contradictory CSS overflow: visible combined with overflow-x: hidden / overflow-y: auto caused scroll to break per CSS spec. Removed overflow: visible from all public templates (#17)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturefEKSadx+pOeuWOEx0FgzF2L1QVc2sRFmYT7t6eKVTQYknBB5xhu3lgYeQDD/2vhjGQy6YQZeBZpV/Sxm8DA54aYVdFFfAgiN5EnvBtWfZNm4hy2V8UjSFJqXJfmR5DQxFI6emX3qagKjHbqmcCP9chndr30RCgzomENXQKETzY+yIiyldWY0YUMQxTQAn9vPfMjPGGx97l679QtqcEnhvXkgbPCU4L5Z0pBk0OMAJidQMsyGQDc/5hXRNj5JWvvzEtXxqPBbjMNrtewICTsVEx4QMHUlEeoBIJi86jM7ERII/dNl0WYYp8TAJuW8qELiSD21vhe6yTOIZCP8XrZVuXQoC4iIHghAq0myn6rWfpt4E2lzbVjPjRSu4xKegeQ1InylrcfiwqVk97QfYYgY+cj0Kals5l9F65P0UMbU3qK1AezJhWyprQaq9/CCIpP+aFXMA8WYqtlslWKp2juyvNqsaZdmy0Raa72MSrK4e6FnhmikZWBMFoIP63sS272wJPr1yOGDpBQXbGWWlBZmNmzFGqj6MGqI6aE4wsFEmMAG3/yhoeJ9x9NtxxDslehs82o1ASuBCud6sXpzuWhBtNuEi/rgw2sDojY+sdKs/txftcbk7Sin++ExLKnqVeyGoa/Jdv89aUgxFm6uXCVn/6jyqyojgMFtTz14Ip0qz70=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.2
Release Details
UpdatedMarch 10, 2026, 7:20 p.m.
Changelog

Fixed

  • Single choice questions broken - All radio buttons were pre-selected and user selection didn't work. Fixed incorrect NcCheckboxRadioSwitch API usage: model-value now receives the selected value string instead of a boolean (#16)
  • Multiple choice questions broken - Clicking one checkbox selected all options. Fixed by passing an array as model-value with proper :name and :value props for NcCheckboxRadioSwitch's array management (#16)
  • Dropdown selection not registering - Dropdown questions showed validation errors even when answered. Root cause was the same NcCheckboxRadioSwitch misuse in the underlying component (#16)
  • Matrix radio buttons broken - Matrix question type had the same boolean vs string model-value issue (#16)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signatureyz98Hn5Q8sjMWsh3r/STylb8Gr89l+FyKqh1aqGeVv5pv30YipP7O1Ho4zEE6cXJgBLREMl/R32EJd5hVya56kVy2vhEESL4Miu0ElnC6Mkm+BZjOb0YrDwV4LJ86auCuS+Vh0QAeyHlNBzpdxfAHW0IeQo5jSAPRAkRNTBSuYacrINezW6o0fMscXUINTDHTeboIgZxa/bF2XWof2dIMTIOVEdLOJwc1PXTvNg1NSsg4LuxDFenCNrMOQQnDEvbDjbF8ERRPhwaiksu484OjL8EqREnlWYG3kLh4DKZq6fA+Iny/7znDg0kt4DwstwaPziCx0MfEbPXlP4A8T7Byb2YCkmUe/2FgB8i4BsviFT1EcvEF9jV2+A4pVY+Ud7Hvu7Ns/6SVHeqeG5s9V5ApJljo3bjrOixAnRKG1LTiz7+MbJhTX4soxP9WOCquAjNtXIbwG4YUz7vE7FIH4nAQV6+9PYzofhxktmCep7IqDp2FtvCj/Wx5irvo3EC80gxcSePncDLswlflI66P8g2VGC99GYXrnFx2UybcbATSEClo3ahAX3A+4faLYe8EV7QQSvhCWRbaRaNGxz/RnjReQO729kX4FG+o1pLWfNiTxEiARveoQ6GckWq3EC63DupTTNL9V2Ue5WPUFKAnui1UpIPRzPVx37+8EA2KMKjUEg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.1
Release Details
UpdatedMarch 6, 2026, 12:01 p.m.
Changelog

Fixed

  • Added missing translations for all 0.3.0 features (page routing, collaborative presence, draft autosave, QR code, accessibility) in NL, DE, FR
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturelEVUWpC9Qe7GphfENOubjL5H1piT7pdcg8tZaB2SWRUKsd6IrEv8vxW95fshNG7yCI8MRTNOkVQFcW+TVx877aRh8YXDd0I9IfDwLc/H8wQHhSUABZUBZnrDrAg9VqVTMEMpjTdJCDVyb3GNDbCqaY0hvEta6YAglxZtx6tptwWq1PSVXBzlQLIzpV8Bs5nmnLt2IoFkKTHSNLWGf5SWKL62/I/RcS1VYzTa4W5RI1+irZ709oGATMDZjgc+QDliyL3Lryk155pMypaGfQLRfNHej00OzFwSqAGFHA2x0u6NYD+FbmrlF0UYUhFR9El+2o6lA27KvtHVajs18yiIalAqEt3GJDjKdiSA6mioZLwWTufui0wv7lW+28v8PKUddl7uu+UJZFTaczv2E23x8mHHLWRybIt9D33pjT8dDb8tAF/sLqnlKvOm4fHkE0CQeUoJQ6WnlDjq2xyla8hrZ/+bnK5sYiLpV1DN9d79FwQkOV9wVJX0m3O/FGQnudnmmnx6JTM5oJ7lEoTqVnNh8C/XGZcZA1WUAyTyvvDJvssjRa2lJFGk0/opsnbRQDtZBDnL2xrhroK9NJquucWc7O+FifgFhVYLz5ILAOprGKsnUTCPAfaf0lyWlmvFwQ8BGMG2RCoAOP7lncDL3cAYORYIUtgIHJgb/KjvxxuaWK8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.11
Release Details
UpdatedFeb. 18, 2026, 1:24 p.m.
Changelog

Changed

  • Nextcloud 33 support - App now supports Nextcloud 28 through 33
  • Replaced deprecated IResult::fetch() with fetchAssociative() in StatisticsService
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturepj2pVxyGgN68FQKxKvx1c7236SGBbg27rILExPtROf2hK8AcuNPNISmg5NUS62eg3Ke/VsHWwcgd288FSyY9X6bhKiLlVYBMVx1PMEIGO6RIquK03cXhrcKP2uQAliwoMOKsZLgkD5yjlwQ0Bj1XbZ077wb3c/5343zmBWFbQtwTlZ+M1tv6q7Uy7riorsIiVG4ddL5MM3uVQOWozbOTUQjHaFt/e8WA1eF10tRI5omQobKbdqA+K77ffP4y4fZRJDUpZ6TLpoYY/B5HfgBGVzrBW+sMRWTSaflQkndm5fxj1dsGnXOTiyWPy9Us0ElWK6KjtpkUGiSmEcvvqLV8nXDTrrSQp5KLdPEfQDxShU4NVbePabHP7x0n5Jah4U0nyUFOisJmrX9F557/bN+Fx293nKd992O6GMPlpsgyC7Nrpo9Q+MFmEIH+/k67uYTUQ1HiHjrBl7t+4lSy/KVpG7BQPm6LDGrF6T42BskHixwPVLXLTkAy51CZHB6TxDPX0YXVVFh8+55cS6vVglIWfFx4+hY1NMwrbDPnI8ZEVMZOaB8Nu3MskQBnhL/lnMYsPEMR/j/0/ejFt3HlB7pkhSIZj+MCO8GaKVdsfI42hb/u41aIlMBgjkmcDVZy5xK5JZgrAOtljyyOi3NXHYSuAFVYpBC01vK0RnpvcjQtCVs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.10
Release Details
UpdatedFeb. 11, 2026, 11:41 a.m.
Changelog

Added

  • Accessibility (a11y) improvements for public form response pages
  • Text-to-Speech (TTS) - Speaker icon per question to read question text, description, and answer options aloud using the Web Speech API
  • Toggle behavior: click to start reading, click again to stop
  • Language automatically detected from Nextcloud user locale
  • Visual feedback on speaker button while reading (color change)
  • ARIA attributes on all question types for screen reader support
  • role="group" with aria-labelledby on every question
  • aria-required, aria-invalid, aria-describedby on all input fields
  • role="radiogroup" for single choice, scale, and rating questions
  • role="alert" on validation error messages
  • aria-live="polite" on page indicator and submission status
  • aria-live="assertive" on form error messages
  • aria-label on file upload zone, remove buttons, and matrix radio buttons
  • scope="col" / scope="row" on matrix table headers
  • Keyboard navigation for custom controls
  • Arrow keys (left/right/up/down) to navigate scale and star rating buttons
  • Home/End keys for first/last option
  • Enter/Space to activate file upload zone
  • Roving tabindex (WAI-ARIA radiogroup pattern) on scale and rating
  • Focus management
  • On validation error: scroll to and focus first question with error
  • On page navigation: focus first question on new page
  • After submission: focus thank-you page for screen reader announcement
  • TTS automatically stops on page navigation and form submission
  • Skip link - "Skip to form questions" link (visible on Tab focus) to bypass headers
  • Per-question inline validation errors alongside global error banner
  • Screen reader-only status announcements for submission progress
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturehiico8sT2nFtIBbugEJCh0mtYVlay9iXrypCE6SdEehLcb06zqxaaRRV1wer6DFZVlpEaGi3qnWQu512jWZ6v18DW170EltnjVHFhmXPW+Fx4WasefOa/8MMQg1bkZ+8y77Hmll7pchCrhG5LtzSNcIQDAtczM1S2TVQ9dw7JdrtZPqI76JN+P+2pdex+oHaJ0zYAKZL1WU9Ygmdzsb50QSaJkMW9GXuR/Ow14uSfZBdwp3q+LzxD/x6W4tz2VsD0GXIFam68sMaNmnZBCK0FkwkjSP79zQI4decD6qilaDGDL40lWWN7muH5udYpPi8Xf4Eu/sppALufrcPepA1Hktns1IZ0pIjyf91la5sc37NbG+K7Jw+LKLbqegaJrcwiORS+3rcmDcrNrRYxmyyy8KWIW7t+sw5oD9+dItl3XiUKCDL8bfcVxTnci/1of+vZ5KzyxbAzA2mAOhV+cMuKm+5RX6vNIjUbYhqIrQpTjeDbdmc3R/2hltUFk5bOBdG9+qnUc/bAp5aOdSVU3mvgt0eW8uqGpu7B5tsF78STgexiHPuZ35YsXIR/Zbl19zGAtyA/lfC7TYSgOIION8vaRE3MjlgUr/aldDMtjB8q6oue5KsLBcKBWMCUKcomeZ5zWG6XLq7j+GkD4L8+Py4GI1HvlrPWpZ0fROTG5fLGzg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.9
Release Details
UpdatedFeb. 6, 2026, 1:21 p.m.
Changelog

Added

  • Question color coding - Assign colors to individual questions for visual organization
  • 7 color options (blue, green, orange, red, purple, cyan, brown)
  • Color indicator in question header with dropdown picker
  • Colored left border on questions in editor and public forms
  • Custom regex validation per question with custom error messages
  • Define validation patterns (e.g., postal codes, license plates, phone numbers)
  • Custom error messages when validation fails
  • Real-time validation feedback on form submission
  • Response limits - Set maximum number of responses per form
  • Custom "form closed" message when limit is reached
  • Live counter showing current vs max responses

Changed

  • Share dialog reorganization
  • Response settings and Link settings are now always visible (not collapsed)
  • Embed code, API & Webhooks, and Responses moved to collapsible "Advanced" section
  • Cleaner, more intuitive settings layout

Fixed

  • Scroll issues on public forms caused by password manager browser extensions
  • Fixed for LastPass, Bitwarden, 1Password, and similar extensions
  • Added CSS workarounds for extension-injected elements
  • Improved scroll compatibility for Nextcloud 28+ public page layout
  • Nextcloud 33 compatibility - Fixed deprecated OC_App::getAppPath() call
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturerIF5qS38JiuDBtmQEKuf3x5L8wtIMHDBYN6IIhaUTWhliFinBAu8YtyJC0lu/sN4zvZxK3ILE1+g3KRjLc/g28ZhK25O6Lnl3D6NtfAP68fVIwUibU1SHSyJV+jrsK0NpmwgH3qNnMWNKnVKfAuxHje12zQgZJEiG4/5fN4bhaAFNn/pXBKfLtAbRrwyVtDBCPm1YrruruolO7MWt65vKbOUgtnTUZRrwwLb8ygKHVVEhYSbptstvUPkaR2rp4y1E0xoa30hz6k37PLYitjCZ6+H9cdGNyyALn6dWrVikW/R43wQPATsDnbBpU7FfFpRtZnwrizttFbcwYxnI+PD1uiGkNdP/fl8QXADqcEXqI2otRYEpbr4xJtB/gpVbduGFWtZU3nopdYBg6xFpjbKhSMkWKZZFfixM/WKbZdWeZoQ23tuPUMNC74Cl1//s1TC433gYmryYh3ZFTyTCjhwt+vHH8MUpRTOAUsOLV1UFk4ey4Llhy/qFOlp2z0o5ST61/XdaWBO0tSFsjUMsK8xmBo5Y10H1BfOx4jOBMi/QF18c2GBd/HIK1IC0uAE6dAzOpLSy+oEhZEdfRTmN+Py+G22/VmHr1PxUpd/t/r8yLT48uT7oQoDwWsGBhw77DhVaDRM3m7wMe36VAfJSWIKvcOSEt/q09Tk4BlX0O6YN30=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.8
Release Details
UpdatedFeb. 2, 2026, 12:39 p.m.
Changelog

Added

  • Microsoft Forms Import - Import forms directly from Microsoft Forms
  • OAuth integration with Microsoft Entra ID (Azure AD)
  • Import form structure including all question types
  • Import existing responses
  • Support for multi-page forms (sections)
  • Support for Likert/Matrix questions
  • Admin settings for Azure app registration configuration
  • Per-user Microsoft account connection
  • Question type mapping: Choice, Text, Rating, Date, Likert, Ranking, NPS, File upload
  • New "Import" card in template gallery (visible when MS Forms is configured)
  • Import wizard with form selection, preview, and progress tracking

Changed

  • Admin settings now include "Integrations" tab for Microsoft Forms configuration
  • Improved documentation for Azure app registration setup with required API permissions

Fixed

  • PreviewProvider regex pattern fix (preg_match delimiter error)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureiQSbO+QhAacmAZ0f0XCyecq/v+L31Q/fOwbV6RkX3DUq5ObV/y3odSGq6nCKT3AmCyP7JRN/i96KYAkvJUyTyhmp6P9CJv6IxuFar6g8FkoWz1cXj5wLoDsdZosPhhtUePNrGn0EW9wihkcZVvaTxDpCNgf5HXtVFp9odpDXWOOZrakxyMoSD1koc7CmkkrYCGN95I5470K0gn+IkdkZLrq5hKztiJIt170wSeJax1HIWKBkZ5ngw7nO3UJzPXq0GVfdgWtUbm62TKAv1KwVwcxsvwvGwed9ox1F7LIS8JVRnjSzlq6NSWODO0YENg0xWzdDQXcdwE05vt0zZL92h7wvS7oMgr4CHyOczU8+oIcJRJ/L2idwcvw36QThb4NAOzen093WlFdwMFLqPibYKtf1Vr4FmfHRbtFYe1+6YP/Yuezmn3GrTi/hJqgiyOoRtiGv/WZyZlAV9V4p4o5tsAsij/LrqX6urKPoCRBU0Xv+7xI1rZI/gqMqXDmYgPEmLvVzimaxvHQsC42JT0Gk7HOgnrUYgOVRXuFYTTnJEFZ33MaNoXywCNPf/AjEMTYYKPjq77fQy0rFHtcE3GmXaNMzkGbHx58hUZIsrCwlZp1Iz1rMP8T9f/TvrN58J8Ij80OHJfxIAbESzQhe7k0EewOkcJRuI58UHhhI2iMaRWs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.7
Release Details
UpdatedJan. 30, 2026, 10:56 a.m.
Changelog

Added

  • External API for programmatic access from third-party systems
  • API key authentication with bcrypt-hashed storage
  • Configurable permissions per key (read_form, read_responses, write_responses, delete_responses)
  • CRUD operations on form responses
  • API keys automatically stripped when downloading .fvform via WebDAV
  • Webhooks for real-time notifications
  • Events: response.created, response.updated, response.deleted
  • HMAC-SHA256 signed payloads for security
  • Configurable per-form with enable/disable toggle
  • New "API & Integrations" section in Share dialog for managing API keys and webhooks
  • Comprehensive External API & Webhooks documentation in docs/architecture/external-api.md

Fixed

  • Admin settings page no longer blocks on statistics loading (statistics are now fetched async)
  • Consistent app icon (app-dark.svg now matches app.svg structure)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturej4WG42Wxm8UBPQq0I9NBJ1SJusy2ORqxBWubfd68QVERrk7kPEwlQVNegb8C5SVRed4cgkwk4o/B8O0SYchfcun0H/29EZaxnLsBXtR8k1h5s+Y80XmE50SjAQ78nwXR0IIM5DeUgkg5fAzJeJ4u6nxQH7YjEdvTCmAWmUe2vFkOBtiA9NIY744nMX4fJ+BxTDk7QGnkXeFPAkA14NDN71/9+bWsvKGu0WPcBpa1CPikUzUKj7Wk/OIOoAaE6/XvP4/pucwzJ4tukZ3xAdvtWPOmX28LSZZknutF/KvffqSv19q8+Fp4dAjsWo2Klk1PLxHM971hr7g2WsUsoYtHC3wmQlmq4d/n6Ug9gk/CdmnjbR2k06ruKsnt/+okphvAJ2Hz6hdCsiBJTHI62jNT+gnAxR0edndaQ3HSxPV+lzMuVeDzP7b+a2UvLKjNWeZQI7D6ms8+Sv80L8CPb5pDOFyWOu2ovZPmYjkXFJjdXjARuOupp39fdlH+TU1RnULR1BIagSZFG6rcxLXiqBGJA5mFzGzOsoNyyZ9uFDdLe3B1X7pkkqQ2z/3KaeAZmpenv8dWTjhDM4BjUuSKZzT2b4bAtN6VCu13OLw1BF4yWmXREw3VSc5Qvz73YeQek7TL7VI6tecHn/06NaaPrHKKOhn9uVPQJg3V4qDTOLr9Z8Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.6
Release Details
UpdatedJan. 28, 2026, 4:18 p.m.
Changelog

Added

  • File upload question type with configurable allowed file types and size limits
  • Download all uploads as ZIP from Results view
  • DAV plugin to strip sensitive data from .fvform files on download (responses, settings, tokens)
  • Form embedding: embed forms in external websites (SharePoint, intranets, etc.) via iframe
  • Embed code generator in Share dialog with responsive width and height options
  • Admin setting to restrict embedding to specific domains (Settings tab)

Changed

  • Editor toolbar redesign: Preview, Share, Results buttons now prominent; less-used options in dropdown
  • Editor header redesign: cleaner look with underline focus states
  • Question cards redesign: hover effects, focus states, modernere look
  • Description fields now use multi-line textarea instead of single-line input
  • Improved spacing and visual hierarchy throughout editor
  • Required questions now clearly marked with red asterisk and "(required)" label on public forms

Fixed

  • Hide .fvform files now properly hidden from sync clients while remaining visible in web interface
  • Uploaded files are now deleted when their response is deleted
  • Icon vertical alignment in dropdown menus
  • Suppress @nextcloud/vue appName/appVersion warnings in console
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureOI4r+UI2nwnpIFLKL9RijGU8qVDcsdN+RmHoXeh4wsH/FffjM0k/EfUGfIG44uHsLJZw7ScCByRN82zS4zks9omVmvIi4C0C92BVgwh1swpHz7P1+KuyPZEdj1OfwW/WtbOxjwn/x3tk9WyUN6T6qP1URBItFJgssJ+fHjQax/5SfVQLRapjaSp0bZ+Rzv2r2bMm9/gjhdLT7PkGPgG1QCYqsbkLznZC5rN2uFwO+sqMu/ss41Mo5nymiiIyTnJ/mQp/MyeTqd+1QjsiJ+Xt0ulqIhQ+2hkzsFCdVlj6h4DKoJ67IH8JcuBx52Uf/yE9HvQRQMGDMgg6VYgAg0+Oi2X5BDiaRgE8pZ1x/A74a4Ydsh8uaO9ZmHQJqjJU0lLPmwGE2BGswPTwKpCMnJJqT0B0xXAMaSI5yqzLvoIe4vtp2v5wfw2NDkVVQRBAmXKtndBADgpaZqkIp5zaImvxQimBHPOyO8IcTfWFCDU3iMCc6J2QxrgtXmQaTn4+JhDjCY3ePBzVxGbdHKkoYgE+Q3c3FsOMufBKKoEdPVE/BZ0BaynJcJEzF8hhDEgo/I4EDuotDgZY5XZegsjYUOQT/CwOOZEVJDJ2zKsXpogTcKSDHmmf9Dwv1//tRA6KDK3HPiBJM4YUVQSB9raiNTB55O/qbAOmU1aEOiZN0TeG2e8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 28

FormVox 1.2.1
Release Details
UpdatedMay 12, 2026, 4:20 p.m.
Changelog

Changed

  • Pricing removed from admin Support tab — The Support tab no longer hardcodes subscription tiers and prices. A single "View pricing & plans" button now links to voxcloud.nl/pricing/#formvox where pricing is maintained. Reason: keeping prices in the app required a new App Store release for every price change (review time: days to weeks); the website can be updated instantly. The Support tab now focuses on installation state, organization details, and subscription-key management.
  • Telemetry transparency expanded — The "What we collect" list in the Anonymous Usage Statistics section now accurately reflects every field actually sent in the telemetry payload, including the organization name and contact email (only sent if filled in by the admin) and the new Extended Support flag (see below). The previous list omitted these fields.

Added

  • Extended Support / Enterprise flag in telemetry — The telemetry payload now includes hasExtendedSupport, sourced from Nextcloud's public OCP\Util::hasExtendedSupport() API (NC 17+). Returns false on any failure so a Community instance is never reported as Enterprise. The license key is sent alongside so the license server can cross-check the claim against an active subscription — the boolean alone is unauthenticated and could otherwise be spoofed. Required for the Nextcloud ISV partnership where bundled-license customers need automatic recognition.
  • Description links open in a new tab — Links in form, section and question descriptions now open in a new browser tab with rel="noopener noreferrer", so respondents don't lose their in-progress form when they click a reference link. (#87)

Removed

  • "What a subscription includes" checklist with green checkmarks — content moved to voxcloud.nl/pricing/#formvox.
  • Hardcoded pricing tiers (Free + €19/€59/€139/year + Contact us) — content moved to voxcloud.nl/pricing/#formvox.
  • Standalone "Learn more about FormVox" contact block at the bottom of the Support tab — replaced by an inline "Questions? info@voxcloud.nl" link next to the new pricing CTA.

Fixed

  • Submit failed on password-protected public forms — After entering the share password the user could open the form but every submit was rejected with "Password required" because the frontend never replays the password on subsequent requests. The authenticate flow now sets a signed, HMAC-protected formvox_pw_<fileId> cookie (1 h validity, SameSite=Lax) which the share-gate accepts as proof of password possession on submit and upload. (#82)
  • Date picker selected the day before in non-UTC time zones — Picking 17 May in CEST was serialised as 2026-05-16 because the previous implementation called toISOString() (UTC) on a Date constructed at local midnight. Date questions now serialise using local Y-M-D and parse YYYY-MM-DD strings into a local-midnight Date so the displayed date always matches the picked date. (#80, #89)
  • CSV export still fragmented in Excelfputcsv() used PHP's default \n record separator while in-cell newlines were normalised to \r\n, producing mixed line endings that some Excel versions interpreted as a new row inside a quoted cell. Both writes now use the explicit eol: "\r\n" argument so record terminators and in-cell newlines are consistent CRLF. (#83)
  • Question labels shoved sideways in Microsoft Edge — The flex container holding a question label and the TTS button could grow horizontally beyond its parent in Edge when the label was long. The label is now a shrinkable flex item (flex: 1 1 auto; min-width: 0) with overflow-wrap: break-word and the row allows wrapping, matching the layout other browsers already produced. (#84)
  • "Move to section" did nothing when Pages were enabled — The pages-mode draggable did not listen for the move-to-section event from the question overflow menu, and questions dragged under a section header did not become visually nested because the wrapper that applies the indent style was only rendered in single-page mode. Both code paths now match: dropdown moves work, drag-into-section auto-assigns the sectionId, and dragging a section header carries its children with it on the same page. (#88)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureeUuQ4SynmfMaIwd1NZhIUdQk9Qg7DxfCKekVrIqSqs0vDAebIJ4hacbNi/jlDikk+KZ1a2BNwd+mIGiGZskETOIzcz5l+tQsT2+0gorPFzhXx+A0rzMIFpEm3cIN+N3us4RG05WXwKDtWClbtmJ/w6o8ZcJk9wEPbVQlOcv6ooT2JmRtvTcFpSxyLw4ViPPJjdpUdCixrXdad1qN56T9kDsz9voTlxWEmr3cdUTcG9Q4FxhkPo9yhsIO5GQtIqYjHVe+YDGcUJz8xGti/PfyQFCrDFllZrYOJeXP6VcYnE48WvrmvPuXQ7qpDgYWMjJsJInsuuJysL8tnQf/ySxy25zZy+Irt9FgUWR2w+fdQ6JYH9UXeUYuCFNucK0ca+EwooLaEO4RXwKhVcWYQBaPD2kldVHuD3fnv6iBUPma/xPLSxk3fdzcGXsEIcKwqsZrGs4D2Vf94NVvRKbBWRi7A5HnIBm/kGx90ZQGzFHLcIdGkaS3rU4mE5rzuhB4hKej1LQzaeoBR+ESdulVzzCXr6SvEwVbOZH/b46zxYQ7AzbAqpyOr7J77J3Uvzpz7Hj1Y0t63daVqjEOO87tQyKoTAvbPihmYrnbA/HerQhgyfP38VomWLpUS8/y10wx+s0sF7ewgy/PYew3DV33AORdQZEewY4Bzspo4+JzC0uFB1g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.2.0
Release Details
UpdatedMay 5, 2026, 1:40 p.m.
Changelog

Added

  • Bot protection that works behind NAT — Public form submissions are now protected by an ALTCHA-style proof-of-work challenge solved in the user's browser, replacing per-IP rate limiting as the primary anti-bot defense. Cost is paid per browser, so an organisation with hundreds of users behind a single NAT IP all submit without throttling. The challenge is invisible to legitimate users (~50–150 ms of work in a Web Worker), self-hosted (no third-party service, no external JS, no API keys, GDPR-clean), and adapts difficulty to the per-form submit rate so attackers pay more under load. The signature is bound to the form's file ID so a challenge issued for one form cannot be reused on another. Single-use replay protection via Nextcloud's distributed cache (Redis) with APCu fallback for single-server installs. (#76)

Changed

  • Anonymous submit rate limit raised from 100/hour to 25 000/hour — With ALTCHA now the primary defense, the per-IP limit becomes a wide safety net rather than the front line. The new ceiling comfortably accommodates large-organisation peaks (think 10 000 employees filling in a training evaluation in one hour) while still bounding pathological abuse if the cache backend goes down.

Fixed

  • Form description rendered as plain text on the public form — The form description on the public response page now renders as markdown instead of literal text with the raw #/* characters and collapsed newlines. Headings, lists, links, code, and blockquotes in the form description, section descriptions, and the in-editor markdown preview all render with proper visual styling. (#63)
  • "Form not found" / "Access forbidden" for logged-in respondents on restricted folders — When a public form had require login enabled and was stored in a Group Folder or Team Folder the respondent was not a member of, the submission failed because the authenticated submit path used a user-context file load. Authenticated respondents now use the same admin-bypass loader as anonymous submissions, so the share link plus token (and any allowed_users/allowed_groups rules) are the only gate — no folder ACL needed. (#77)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEgXx1k6T/jb0h31O0h5rzjkRhdCiLPnChW/hOo3JMOiATKU1BeP/KDCUw0rW9RpOhe5j7ySM8dogkKzsxJJvjNZCl92E7AeK5O0fDtALSSQnCW7P86vIUrB1IIt3RgwC9SEF2XLAF69prmf6JlH18Jqp4qMj6fw64GxrSh/mASu/FkmllqDoJBkml9jgJ578d7/ea7wEc4ugJVPKqVcENaVfYEaaprkAitesxpgArulem3djQLl28nnmAkoMZpXrnJZ3jr1zIFp6DSuCUpgnidtprxi2F8ncqglerVMeYXvohnBLzAP/yt+3LELcPyyDduursEkX0Of2rrjNRN9FGgtEE+OtzjW42pkbE5g0SvPS2s6FZR8dZukCcvvet7QE4CONVIDC2hDhNmCfqlGj3eaIkZzeiO8WLElqTX7LXEEB5oBBbiNUCgcelr3Lv0OZUb2/KtOlvASuR2hP2sLHDosmNpKnf83DpzfT8xCWz7BhthOxM0w/ErvfTpXspf/9+cJ8zExk+D9F38yoFGAf71m/ZDL0h363NZWb7tSl2mQtY2OF3NfBVicj5RFK6DnIZlD12UuvD/cj6dJcJYWThDT/OXrS3mvOMf2+FBHeLfi42ycGuElOMLqeVOo0PrOYE/O+H08IevLOq6JplXchq9PvlPXszN5g3fg3VqLeNuA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.5
Release Details
UpdatedMay 4, 2026, 4:21 p.m.
Changelog

Added

  • Markdown editor for descriptions — Form description and per-question/section descriptions now use a native Nextcloud-style markdown editor (EasyMDE) with a toolbar for bold, italic, headings, lists, links, images, and preview. Includes a custom drag handle to resize the editor vertically.

Changed

  • Form editor layout redesign — Top-level form actions (Edit/Preview tabs, Share, Results, and the Pages/Branding/Settings overflow menu) now live in a sticky page header at the top of the editor, instead of a horizontal bar that visually appeared to belong to the form description. Question and section creation moved to a dedicated "+ Add question" rail below the question list — the spot where the cursor naturally lands after editing the previous question.

Fixed

  • Conditional logic broke for multiple-choice answersshowIf evaluation now correctly handles array answers from multiple-choice/checkbox questions in both the frontend evaluator and PHP backend, instead of comparing the whole array against a single value. (#71)
  • CSV export of table answers showed internal column ids — Table-type answers in CSV exports now use the column labels from the form definition instead of internal column ids. (#70)
  • Orphaned fields persisted after question type change — Switching a question's type (e.g. from scale to text) now strips type-specific fields (options, scale bounds, rating, matrix, table, file, validation, date bounds) so the saved question matches its new type. (#69)
  • Newlines in answers broke CSV row alignment — Long-text answers containing newlines are now normalised to \r\n per RFC 4180 before being written to CSV, so spreadsheets parse rows correctly. (#65)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureTNODkyXkWcBDXqO4gs8raDC+CgQ/jQYD6wpAb4xj/yTwHRnv+VoA0emEpheTceqhy3gXPqEdX3lRZugqqHQ9fLi43xrdloAfG0p7y9lwjxm73ZhfYAEjHE+LAstRFWkxZgVqYcGUNG6dv8oFlip0xhgwEvH2RpGANcYmu9+7MBJpzU4TjLWAbkOLuFjFRahVFjWC2zmwDMK2X59qwfuRZhkUAPFz28eTsqEjP79p9ro7olkR1bBlySCTWpXEthLpwkJh4LrNC4lIIXM0aZoNlJJQniQbGIZQBIir9dkwHXorgJHGM87kQlI0IDDL//NsJ5cCcUcCuVDTQ9M0YSL0MUG6AjueUGkO1eEK/ESuwGjZe1wKzhqKi63jM2ACMTm6XAAl8v6rvORSvxIG6WPNIyLFnavxjhAmIQxX1e8nHqyZLL/PFLVeqOXYE+59Wp/rBSkhgSXOcYP6OwHMtaX/deac6H0KFQgtAdfa7bD6Wkp2TnN7loFyoqza2G5h0Sg25RZuzxYBwbCCkmflUtl0M80iyn6nwW7H19swostFBSaDyFrZX+lhTGQYsr7nKlio7BZtKdUjH4xbSsjJf4EGF8I/9GhdQytGpKQ/qy5i8FUYfiBmrx5BJg/oAHoER5Pp0oP0HQMWwv/1giNyXMp2dcuLWhP2hvAbB1IlBgI3ae4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.4
Release Details
UpdatedApril 24, 2026, 3:14 p.m.
Changelog

Fixed

  • Description textareas overlap question actions when resized — The question description and section description textareas in the form editor no longer have a resize handle, preventing them from growing over the per-question action buttons (edit/delete/drag) when dragged. Matches the existing behaviour of the top-level form description. (#62)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturep1UDsZKOD4hCwZY5bWgHJ1sTTRcCX+XrHdAlahJK5jV5EEDXag0tNIGqM4LIJOf7xHcn7rc3Z8TXxnFDoq73CXs4qBYETDCXhrmh8QrcRYKDLoSiZGQmktXdett83/EHN2Iwp5NIiR311QzukbAsFzG3wpZzDDbJ3qsmYv1w+K8mEye7C94JDmeuYrFsCk2LlnSIzNGy1yKDUmNqvPiHIAXIkp1ZDO9YoSiV6GavlNIqxsoa2BEREmgRKcUjxBuZZfz3YS76CHOVa5I28IapwspdZpzOB0nsLrgkSwWE0ljFK81X2OgYFlBTuV4ZTO+aan+69S0F/GHXQXmyi7udAmIGWge2kFim3Fz1ER+Q08lAATLJ1OaxkoL79kj3s32kO5U7d87tWaJKq321Rg9r8x0CgBG0iTUp/eCN9MRj2zdlTd4dLenLYDA4kbeXiSUZ1aBahzlVQ62X0eJLNhjxY2lz7ZhlmmTUtQ4luaxMlg4Yq854HSnzyXxtalC664EP53xMUSo5umFbE4EDAPHlfKaQwkGATg8ar6gocXvy28ht56jAWPgMISq4duRaV0/caEM7m3VwdlQihiN1zrpaP3mgmtHgdMw+ot4jYNr3MCbaEQO06L0zGNe1nLk0gawa482BU/Zej/t3uBWSiQEJM9e2IxF0R/VZGeCy96oHDDc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.3
Release Details
UpdatedApril 24, 2026, 6:53 a.m.
Changelog

Fixed

  • Webhook "Enabled" toggle unresponsive — The enable/disable switch in Share → Advanced Settings → Integrations now correctly reflects its state and persists changes. Previously the switch used a deprecated Vue prop API (:checked / @update:checked) which silently sent undefined to the backend, disabling webhooks without feedback. (#61)
  • Admin statistics no longer crash on user-backend errorsgetUserCount() now wraps callForAllUsers() in a try/catch and falls back to 1 if the user backend throws (e.g., LDAP timeout), keeping the admin stats page, license usage reporter, and telemetry job running.

Changed

  • License usage reports now include activeUsers30d — The daily license sync (/api/licenses/usage) now carries the same active-user metric that telemetry already reports, giving the license server full visibility of active instance usage.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureBsfsxecsMB2+i9+eq9JiyvP52vlLdV0MWJ3rBMLb88aKwbg2Nn51QOCW9htSIsOkmgpCUFGuXHyMm/lR3mFG3krH71WaUkBEEaoS7ySiUHq3Pl+8SQD22gt7wj6a+J/MTiZS7mObQtTYw3GzatusxyxgM/+1KaZwJqZxQ26CFY+pZXxxcSsfYLXnJIZB1zj4BY5rN09gfwM+Zw1PWXOJJz/Of5IeoFCDc2RdVE08zXQlfYVK3iHSb4naGwjTAPKwvmWFRpL6vCYj2E7qSykaK+2nK4av0myrYK8+ldNfi3Zh3bmkdXKYM2yDpcU9ijp0pCk1FY/apY329sr6HYBPKuqI0Ikss4YUVEBLaRNBA+DM6kVkAe5ihE1oKIsB/9Fmu6pPgQSxM9rYlw35xHgv5xcv3mP2ZiaVJds4vC7foRLobAfvUgje/eLoBELKBvAT7P2J4uF8n7F5XT3hoUciq638db8QIivn9HP83hqAhT8kY4mvXzkb2OJhGzumslcP9YDKfAD/fAPfJhDDDOSxTgSYJBw37RuG1eYMcGcvURw5Qk+7yU0eNtiWhr6zDVgu2YCoUK6ZRrbgJYNMZ0ur7Me4QU8+7AeUArbZIeajA1nCtqcPk9xmTAXCiNARtv0VZ8RdY1RZ5iVBOnK5+SbxHGBbQ3mZNZdKwzFAHhvsJOA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.2
Release Details
UpdatedApril 23, 2026, 9:02 a.m.
Changelog

Fixed

  • CSV export garbled German/special characters — CSV export now includes a UTF-8 BOM so Excel on Windows correctly recognises the encoding (#57)
  • Results chart legend shows internal option IDs — The chart legend now uses the same label mapping as the charts themselves (#58)
  • Unanswered questions blank in Results — Unanswered questions now show "Not answered" (translated) instead of a blank dash (#58)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureANC8GYEPpin/4ns3c7w+0sCffcPTLl1k+FArDTVECdld8uv6XX+32VP8CY4+Fz7iSF8MdPZ+A1+BoUmqXylSavw10zO/XbhGAU+TmjxyjwkJTE9cOTs876XBFP7lhOTqQv6C8sivKoTEc1N5YTY8gcyqO58hJgJML+4rqIJSfuUTBc85r75aBbQAMeTz/0AbVDsrimgRoS6HszEzj0J6XM/egGkg1wJQk9oXFB9ijTlZQUzjSPbRmONRjrcQEc9WfR+OKTFfhLAQNsr0bRKw/8jUksHTNRrxZ4tPsNfBX6mM6rHJfBardsGI+tSBZPvtjbj3Rp6akuxgLV84HzdUmsDPkvsK20AmPdPh3lotSNMYNSo/Qo4lPEzyJ30U6Zq8fcCBC6e9izKntJkUwPHXNcFtIuuVZiC8ZxpItE5k2tqXE7XbNJoDITZyVk6BVnFRUWXxh0IiChBnYHPEm7l2oAoJ6tvbkeKCIgSYNVK+FgBjehStT02YEk9uxkVjaeQNAn6OzclbE+LgjI2F5VjYZALk0QVmsKD0QFn3QyCG02sF/6fTzJPl+lP12+s4S47/WTIxNEJNLhPU+tuk7bF75BSUqqG3QGgIvzeFNBrEDKhSwA9g5Oa2YiWZEPRnq0ZYyL2rrXjHS5Nqo6K35AAd4xYq51vfpXOQywSfVFA867s=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.1
Release Details
UpdatedApril 23, 2026, 8:21 a.m.
Changelog

Added

  • External storage support — Forms stored on external storage mounts (SMB, SFTP, S3, local mounts) can now be loaded via public share links (#55)

Security

  • Updated fast-xml-parser from 5.5.7 to 5.7.1 (fixes malicious CDATA/comment sanitization and stack overflow on long tag expressions)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureEiNCYJXtZ95soBULwBnHUYWQ2DhP3zeiwzU0RXYPEwvs0R9/ydEjCtwRud+c9PeNLeT1XMvAmP39radRc2OLgD2L12CSJaWj3IbYvSRVKAlnQFAwS44wDHmpuVf1dGq2Tr1Sfj7lFn+0ubYW5Xw1Pmqjft6X1ABtMW9sHCUQbdB3DwfL/EB0M5It+/iVDe4Z3OE5n7tiqhVe4vuFUxWOPqavDUqXS8MjWLMZB7SAJ8IXaF4kKG63qHZBfo3npKrTbbAsIZOvvy5rFzzD63brSd7i4QybX++QzMXSM/hYOTo9pGTMAgfmJzXCmDRn5s2M6lS8mKOOdLgsXMr8hZekJtuR74CZz83V7GyYXZEhe74D5KmiFhTajT8opzuwnQ3BLojEdlumIKzqKoRlwuMT2/28/Oz+S41OP4qmhRGx/Hztht+ml23/mJzIqzpZCulXsdb2U8j5c6Py38lDauvWE+Q4Xt3/yUjlFJVj3KxFQXTxOWUKzfsrU6Hn0T/wDwVX1XiRG2elCqAehOXdWuQn2w4dX9jcKQ0s3WTY41QtqAGKVAbYbQ5ROesX8+I8WLL2mIzkkDIvGtxz7Q423R1cA8bQzFNpK9sM6Cs6yP6Ro4sQtZY+qIAMTszuwHDUCglOgbMX8XVFd4kF1obfF2AupHWeoelvDEfxL4zqyCNHkTE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.1.0
Release Details
UpdatedApril 20, 2026, 2:09 p.m.
Changelog

Added

  • AI form generation — Generate forms from a description, an uploaded document (PDF/DOCX/ODT/text), or both, using Nextcloud's built-in TaskProcessing API. Async pattern identical to nextcloud/assistant: the request returns immediately with a task id, the frontend polls, and a background TaskSuccessfulEvent listener materialises the form and sends a Nextcloud notification even if the user closes the browser tab. Includes heuristic truncated-JSON repair for less capable LLMs.
  • AI conditional logic — The AI may add showIf conditions on generated questions when a follow-up is genuinely only relevant given a prior answer. Values are snapped to existing option values; forward references and circular dependencies are rejected by construction.
  • AI admin panel — New "AI" tab in FormVox admin settings with provider-availability status (live-detected task type), per-instance enable/disable toggle, max-questions-per-form slider (3-20), max source-document size slider (1-25 MB), and toggles for source-document upload and conditional logic features.
  • Scheduled opening (share_starts_at) — Share links can be scheduled to open in the future. Before the start time, visitors see a "This form is not yet open — opens at {date}" page; submissions/uploads are blocked server-side on all public endpoints.
  • Per-form branding logo uploads — Logo and image blocks in per-form branding now upload to .formvox-branding-{fileId}/ next to the .fvform file (mirrors the .formvox-uploads- pattern), travel along on form move, and are cleaned up on form delete (#53)
  • Result summary shows labels — Radio/choice questions in the Results summary chart and legend now show the option label instead of the internal id (#52)
  • Full translations (EN, NL, DE, FR) — 43 new user-facing strings for the AI flow, AI admin panel, scheduled opening and "not yet open" page are fully translated in all four supported languages

Fixed

  • Share link date pickers don't persist changes — Changing the expiration or opening date in the Share dialog now debounces and saves automatically instead of discarding the new value on reload
  • Notification icons missing on mobile/desktop clients — All FormVox notifications now emit an absolute icon URL (#54)

Changed

  • AI form generation is off by default until the admin enables it (unless a provider was already installed when the admin first visits the AI tab, in which case it's enabled automatically for convenience)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureQk7s2eNDcOC+qbqnbRWxqe63swdWDcu1YoTXk2BzNHTFVo7+JUP5+fsf4ZX2PYUVFcx/3n0/p1D+7C6vdtNUqxmAO9wKE3+MF+xjPMwyZrK2rJXVaaolGkfoVPr+PgiHlQYxd9Nh4F/YmkllR2uVTY1tN5QzDJas7ISwmPc1T/ArKlMsXQ0nlsKFhK3XEHGJ8TEWC06imVE8RKQcrn6G70/qwFYsdKopf/DjJEdhtcxTkd3UKLH6NwVILx1rktFfcd728U2HsvrS8LEBgLUd2zfUYJzfe4f3oI76KvzeYJIBOOje1Tkd59UbrrhJylZwWD3qxI3PgHiIh9mqgdCGFX9xSv6nIAjByIVHQod4hPgEfyzXNVvtovVtAaH0XKXU8PTOK38Gju0gHvtcQF7W1frK7ZaqjUudHOzweT87IO6Pnpdugg0TXXJqOSdNBn41cwjgIDkTaymrMGDw8Iaxfu0tE+nby/vlb4p1Yr8+wHbHnkVOy6WYT8SI2yhaUW7hYCTGJerJAkpwrH/3wWCurjF6eSjodyrU/eMkpb64GamAEYXhjK+1ErE6qvupetnJtoDgBTGaaVW384+pRUzUAOB0aYWqbxPL/BvxlcN0DdOg3yAP7vtFLCkx44/rjx0vBbZw7Pw7YwsUlvxntS8dc+NvajRd7lZwRMeZw7/2zGg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.2
Release Details
UpdatedApril 17, 2026, 2:59 p.m.
Changelog

Fixed

  • Telemetry error feedback: The "Send report now" button now shows the actual server error message (e.g., rate limit, connectivity issue) instead of silently failing

Security

  • Updated dompurify and follow-redirects dependencies to fix moderate security vulnerabilities
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturenWH3habsfSuicUPAYeMfpBHNnXo7QYa8/fAhRuYTh62gdaiNQArKCcTFCIevd260+kBMUoI2yj5aDoxq7vD6NriiUOi60FQkCd1KogxC51glVMyMm0MaCgbEcFZG0JIIZ9pAJEAu1rpoQwmkGRg5D0XaQDGUl7vkgZ/+OcUA7RA3pw60jEWueZiF+duvkhka2P3OTkGFzZodk6kX05SpD34ygRwNDeLiVwYy0E2A5mYWk2XN+ZLdMn0uK/6j8ch7xa1uecEl8deakE7jn72jeE+tOZ0qZBXcK1p/zVfHyrSSEny8xGTQ/JR+l4PT1pMbM2eMewJk6rKygGcPAHOK0nreGk+j15jMCPBTK7milwK+OvM3zGUSiLUr4Y+uSKNB3NQzmOQYCeH7T7DSG+AdjdXJUmYFjxeLt2hoFGPxR6lkAGvuRm4DwPfHHlPPetsmyGhsgL8ZYKX46l31RvtDYYYwmPeF8EF/UgPlTTm+KaRQoofAy16Hfna0NEwcqMviOGIDW3Nkty8vIPwM7a8XE59qokRnGGuYWkRR8UAg8tsTGelnAbd7bWiUVQOrjfonVCuRknVogJ9eemLB46TTVhGkZ610bj5WnIp7GzCeG9F5HZuZKpl2KB3a0YOqodbssB2rDBEbTYW5OX8GtaX+A349ZSd/iDSmNHO4iQNnZ5o=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 1.0.0
Release Details
UpdatedApril 13, 2026, 9:20 a.m.
Changelog

Added

  • Support tab in admin settings — New "Support" tab in the FormVox admin panel with subscription pricing, installation statistics, organization contact fields, and license key management
  • License key management — Admins can enter and activate a FVOX- subscription key, which is validated against the VoxCloud license server. The key is displayed masked and can be removed at any time
  • Installation statistics in Support tab — Shows total forms, total responses, and total users directly in the admin panel
  • License banner — An info banner appears at the top of the admin panel when the installation exceeds the free tier limits (25 forms or 50 users) and no valid subscription key is configured. A warning banner is shown when a subscription key is invalid or expired
  • Organization contact fields — Admins can optionally save an organization name and contact email to be associated with their subscription
  • Background license sync — A daily background job validates the license and reports usage to the VoxCloud license server, with per-instance jitter to spread server load
  • Telemetry section moved to Support tab — The anonymous usage statistics section has been moved from the Statistics tab to the Support tab for better discoverability
  • Full translations (EN, NL, DE, FR) — All Support tab strings are fully translated in all four supported languages

Changed

  • Statistics tab simplified — The "About FormVox" blurb and anonymous usage statistics section have been moved to the Support tab, keeping the Statistics tab focused on form and response counts
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureP2gopdnkFIlA23vbmBlweI6L9qwwLKioNUiltOry331cegOXVm1alaTtOG4AAZQE9VpgHBZ5VEBprxCk6vvuiLEHH/VgR+NbiG0xU4rTfPABfwBjyaABFhWWZPoGKpZ1lc5ZU6SYGqj6ucjpF4IwTWxsKln1MveRuIEccAYRBXSidPw1ukv7Ur6/Q2qv/BoAJo4YesXlgr7XOEZlu8Fn3dSaj3fLVG2zmh8pI/80tjmtn3588UP+ohyuSUUnMxqtUpQE0e5x+OuZjgvpLmOQQt7P1v1gsjA+sguWZb1kR3jq/Jqt8vN5TsI8gAKIYqq2DIArg6gnd2o5FSYNTgaaR6NJ9iNhua7XnHpFkc/xDXvKZqUpLwEpEhDlf0E/nTEPVl+nCZMZUsRex2mFta1TszXPA9nu62KQ997Ls6DwGOy//ad4XXRfbz59BQvdSOcOt9ZURBpEfFZs3KnvKHkGHrfwNE+8XtthPyhrQ1GtP1yxHH5nF8XMlLSQiwa8pWuf+xp/LpWu/oIuGryceg+C9zrFKiqI0SRwa8REtrZFHkApEH5gVCczanLcfluvaqRGEZ1ZrMuYpqLio7I3kkmdo4sW22AKhgYQeZMlTpyQlaW14hw9mQGtrGqCSHCab2y6jHESFtkR6JY1WSKhoxaxOQcMJXQREjApROtFijoHDkM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.4.0
Release Details
UpdatedApril 7, 2026, 2:58 p.m.
Changelog

Added

  • Sections / fieldsets — Group questions into collapsible sections with an optional title, description, and conditional display (showIf). Entire sections can be shown or hidden based on answers (#38)
  • Markdown in section descriptions — Section descriptions support Markdown including images (![](url))
  • Drag & drop into sections — Drag questions into a section; sectionId is auto-assigned based on position
  • "Move to section" menu item — Assign a question to a section via the ... menu
  • Specify notification recipients — Form owners can now select which users or groups receive a Nextcloud notification when a response is submitted (#46)

Fixed

  • Form not submitted for logged-in users — Forms with login requirement now correctly save responses without requiring edit-level share permissions (#43)
  • Scroll broken on public form — Added overscroll-behavior: auto to override Nextcloud's layout scroll capture, restoring mouse wheel scroll on Windows/Chrome/Edge (#44)
  • CSV export shows option IDs instead of labels — CSV export now outputs human-readable option names instead of internal IDs (#41)
  • Images embedded in ODT exports — Uploaded image files are now embedded directly in the ODT document (#45)

Changed

  • Toolbar layout — Editor toolbar splits into left (content actions) and right (view/share actions); labels hide when space is tight
  • "Add page" moved to ... menu — Keeps the toolbar compact when pages are enabled
  • odf-kit updated to v0.9.4 — Picks up latest fixes from upstream
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureDzTnWoXiqn8l00om8bW1J90Uu/E6uVvP73B5Xkir8WPIlGR51RYdQbCveelGg/ZR3L0GCoTuoJ5HpNm3uY6v2USyyrbQtClFU5ZBT9iRdg54KWOhsi/ubu8pmmPTsBEtZj5HUqHNjIE4WWtEANXSvoX/hZ6mrQl7VJBf+Dsrl4NVHPJGtLvBm18Wq6nqJ6moRsTQLfChnENSeDvxLDDXJA9zbnVSUksdTvx7gDhCU+t7sdbvYE6QgVVs3wQiju32TM+Ey6fMw2pBZ7fY0GfSF2gzU3czSMFKMFrGQGNj7287hBUJb1H2m3zfxYVVLXGxrJcJTMnWrVfoZpzq3qcwA9okRT4sBprsUVvL+PkA4S0ytHGf2C/c6oSSvbJVVku0Ragv1J88kk1Mx/woUaiT8kYerFuO9K2rRJ34IqKOnCjv8DGxYyjrJlfalUb7y1PhqUik5efZEPieOXfk3A2FwvwTIcXioa7oHCispAuajXcg0z5998nmv4CdzEjKuak/vMTS30zE+wQ6s9rBKgw1sCuslhVS5Vf3niWQOv3B/DZfGz19A/nP4IHFAA0QbACBaRkbPrkidSKCciV+OWaNq+WoZMgSBFol6TpAc2AiYuKdCDZjTgG8Z0XfZyhMYnUOHilah0I3ZttjsPbIPh/Ir79xJ8wpoySP3sxMTtmYczo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.9
Release Details
UpdatedMarch 26, 2026, 3:20 p.m.
Changelog

Added

  • ODT template export — Upload a custom ODT template with placeholders like {Q1}, {Q2}, {form_title}, etc. Responses are automatically filled into your template when exporting as ODT (#23)
  • Template auto-detection — "Export ODT" now automatically uses the uploaded template if one exists, removing the need for a separate export option
  • Template portability — ODT templates follow the form when moved between folders and are cleaned up when the form is deleted
  • Table question type — New "Table" question with configurable columns (text, number, date, dropdown) and dynamic rows. Ideal for expense declarations, item lists, and structured data collection (#35)
  • Notification on new responses — Form owners receive a Nextcloud notification when someone submits a response. Toggle on/off per form in Share settings
  • Wider form layout — Public form container increased from 700px to 960px for better readability

Fixed

  • TelemetryJob crash — Background job crashed with fetchAssociative() not found on Nextcloud's ResultAdapter. Changed to fetch() (#31)
  • External API missing pages/pageOrder — API response now includes pages and pageOrder fields (#27)
  • Required matrix not validated on page navigation — Users could skip to the next page without filling required matrix questions (#34)
  • Required matrix accepting one row — Matrix questions marked as required now require all rows to be answered (#25)
  • Horizontal scrolling blocked for wide matrix tables — Matrix tables now scroll horizontally within the form container (#28)
  • Multiple file uploads broken — File metadata was lost for multi-file uploads, showing only filenames instead of clickable links in results (#36)
  • Multi-file upload count incorrect — File count now shows total number of files, not number of responses
  • [object Object] in ODT export — Multi-file answers now display filenames correctly in ODT exports
  • Webhook creation failing — Fixed parameter binding for webhook creation endpoint
  • Form hard to read in dark mode — Public form templates had hardcoded light background colors that overrode dark mode CSS variables, making text unreadable (#39)

Changed

  • Presence endpoints moved to PresenceController — Collaborative editing presence heartbeat and editor list moved from ApiController to dedicated PresenceController for cleaner separation
  • FormDeletedListener extended — Now also cleans up ODT template folders when a form is deleted
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGH6DRDS5w+4R6rfA8rBo3kSIFAG05bjIREgWfDIDt4Y90nrmDC4I1IiCVEpKGAOAsysQ8Np/Kh5pqVn/bgZgopAdfinadLwoyBPqYiDkCzJZmm7vs7z6/7hmaIMWsGIT3JGOotuHSKOsUUVnOYuZUFXzCx8oOg+dik1zHGte+H2klZcYOJ4bo3x2xnSYkl6FR1UQWxx4Ng+fK3aVfs+Cmz4XvIxc1es3ciGLpeOlq0P358f5doqFVIx5RRnEZ4+rFYszO9EJMG/3YR4i7esh1z/wrYX2SOAwQesv9g6PNnwOOOU7a7mmOWsstt3iRmUOqrf83c9wl4j0EUhxxPMWWp0sY8wme+QT7Tizk5Xh/USWHz8+jRWJeIYfjukVk4krYnXGQv9cF97WSYTCAQJ1jpcY0Y/pmp9QFFZeexlJSy60xo4Cv98k1irLGZibjk2hkjFcWJzh0VrgRpynVB5cYuPEwdB6kPzyFLO9joSK8vg7LilCeH2Ah1u8yUbkCI/tootQqNuMbRwLQQ3QJr0o2cPZC0jXYPuJplf3ug+WUeD3WZxouboTV7x6clsDQRSwrNae2QEzCouFa/vSA9lR9TvcyJ8cfdErUmygEYwqHQ/rv8HtLgDmWrDnA8+fYR6vQrrFDqLraFDP5pWkost6MGnqzJRitceO/kA/38JEIvQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.8
Release Details
UpdatedMarch 13, 2026, 5:22 p.m.
Changelog

Fixed

  • Form submits on Enter key in multi-page forms - Pressing Enter in a text input triggered the browser's native form submit event, bypassing page navigation and submitting the form even on page 1 of a multi-page form. The submit handler now checks for remaining pages and navigates forward instead of submitting (#21)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGNkiMJGIKnQR0vX9Guh4GkUGa/uYR1w0RIAWKXmo24z02RTHUlmvBSTUlYc0BWz0Mp5l6o4TDMDR4H5EckmM+OrhtraluRxu0wCt7NIxRao/hVOdQjVeXenGjJKJsxpcJdjFTt3i34wAlNcuurewF0yF4vN1gSgnsq3POapllMUoaCREt07bLzb7i0+QHDsDVgs6uf0xn446Jnih57LbMspuoD6u92+4nNPdGTAbw5HeLeKa2tpMo2dxWc6jDwZK7Za1GUg3t8gP0U5qf2toDaTf7L2KQd01v0dBLzuDSg2QKdAC5QKFSHubRSW/SamUDelPulkB0JsAzsGW2PBciQiEgAzASsXYPaHvWPSjFyOoGa+707Rg9h+pDge3nBPwcaexwhbwQMjdjWn65vMHbTxqLNbNS8/JGpLCcrnOeRsqQUr1xlTPVyxC4tYewE6xZp7jkDOgWfUDNMqcgEh5Q2Kzn/IxaEgW4VuTg9j647VU6KqVww6kZVbCOoPcy74MsBSG7bs4UBYGThpQ0uc5RYUFqOUpUQZhITM8iNZp/8gqnOgFjUiEUvuCEP18mBsPr3SW7bxODUIjrLRIsQzi2vTZiHk8kYNe8o5pEc/Otdp3wNJqlPzqc7OaG0iT1exx9Ad4RmDDgPlC0rfcRk/UVJzWs2KkTyV6iLuL8ujn1X4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.7
Release Details
UpdatedMarch 13, 2026, 2:35 p.m.
Changelog

Fixed

  • Single choice / multiple choice / dropdown options have no value - Option values were never populated when creating questions in the editor (always empty string ""), making all options indistinguishable. Radio buttons, checkboxes, dropdowns, and conditional rules all failed because every option had the same empty value. Now generates a unique value (based on option ID) for each option. Existing forms with empty values are automatically migrated on load (#16, #18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFy0zI/ZLu1i4uixJGINESbnSdRYvFpm9++0NO/yL6X9cXqLSKlfdUiVPHMMBGu08UZjIx3QiNi4tDt4rslkBxR9bPGQtEvhMM9HvmM+DB9jtoLLUVsmLwnSahUM4NUCgNIkmpsMl7L9AGarftcOwtRTg4SINWi4isQWgliswP+7fvG4+m1cGKcgY/2uzhRzdkFMYP5yyXjxt81qr7ejr19q9Zo5E7d8QR3waA7XbDy3zaN8spgCrYvJxU5LY0zkD5edXgZgl1BaWkt44BLuioAjDMrBz5CDeTbtDG2ZTJPTuZC03RhWPWkC/PIeHFSi+ULRq5BqKGayse5lP9JZkk0SHGYhYwHm1ZEIiXB1aCUZBxjSVuLAtSsjprx9ul3FXqSg1YlsDi0yjo/djcFAtDz1lpPkpWheSq6ZuooPYwpKASEuPuItoYZpLdeN76TsJQ5gNFghCETB0dCod0otvAKZIlFW2T7D17J3Hqr9u+6jVidjIl84T7uYMMCAjH5A37DAlKbaFnYJw4+p24+UlnF2ddHIbp5SriQZOuqSlseFX9QxM6ENjuSb97pxdseApfeQkkfU9YiyD04hylaqHzUO9qZJu9BW7CZaXQtakQ6Ng7N+6ricMvLNBAqWs5dBetAdC1EaUh1y3nGuGXAeZc751+9mN4aRKL1spa7gehw8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.6
Release Details
UpdatedMarch 13, 2026, 12:57 p.m.
Changelog

Fixed

  • Translation .js runtime files not updated - The v0.3.5 release fixed placeholder names in .json files but not in the corresponding .js files that Nextcloud actually loads at runtime via OC.L10N.register(). All broken placeholder names are now also fixed in de.js, nl.js, and fr.js (#22)
  • Single choice / checkbox questions not selectable - Confirmed fix was present in source since v0.3.2 but may not have been correctly included in the v0.3.4 App Store tarball. This release ensures the correct compiled JavaScript is shipped (#18)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureGsNKD/zZO8q+PhEIna48W0VkliK/7j87UZOTEy7+v2KC8acYz8jpOJZA+hNkqyL9Lkj4nIhUc5HEO7tJCEKUtrZOvUO9la6HVrMihnU7X4y9yCttfBeqlxhKw9N3LoVoS1KZ1n8bCgxpPvZMqKKTMwM1tRmDsbENLv9RaKq3EEKIwufYRrzn5RwMY+EdF7j1ywScjqjxYYcd+7euIQi38ATMeuQLTKkpEU/SZSmtciuH4wdRidazcKf/9aceL4BhbgShC/216I9klQ1Y/LvNaiKaEf7wXeAlpWY5zBhaSzfFjRDLWuzXJKTXpJmP2sxk30a2PO5zZpOFpFIJJreonrkxrb2RPrOh24CTOm6hjnTh3PK7uIgXBmXunuWjduGBk6E19DkjkUdljloipkbrzNNhdukk8ppBemkLDFgSosEw8y8qOta7jsNxiiMnbAzs4CZlefS0o61g1Of3tb1rzrEfI0eaT6KmMpO+SPqjoDHTvAGHH2UdYR9cJKF1ZUq6Juh63oOk88zsuM/LvkP8NVzQGuRokdOo8cmTIaNAlpE2GVJMnqtjYunf9I3O9ivRQHubHkXtesJqn3GAt4cxX9fHYDqb7xULqUcsRRrXpTQivsNrVF6c+udvhySUczVdaZ+B6zsae3216I/bZV5cwLGtXAFSuz3psHEMvIiVZUI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.5
Release Details
UpdatedMarch 12, 2026, 5:31 p.m.
Changelog

Fixed

  • Form submits instead of going to next page on multi-page forms - Previous and Next buttons were missing native-type="button", causing the browser to treat them as submit buttons inside the form element. Clicking Next triggered both page navigation and form submission simultaneously (#21)
  • Translation placeholders not interpolated - Placeholder names in German, Dutch and French translations used translated names (e.g. {aktuell}, {huidig}, {courant}) instead of the original variable names. Vue's t() function only substitutes exact matches, so the raw placeholder text was shown instead of the actual value (#22)
  • Screenshot filenames with spaces - Renamed all screenshot files to use hyphens instead of spaces and updated info.xml URLs accordingly to improve compatibility
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturefiwy4f05zwUTsL/mo55TXaZGL/hFV7q1Yz5FrIO0yq/Std4g1k+r5725ISI8l1/kSQJYWEJnd1srbPvVD7PsBepvin04T2N+Dgac3j/gizz3BMba4U/Ix+qwOWGL1QGFBYuvnzTqpMKuZS23LwO65+hwMDporNCGDQa1o5ub7n0LthvLJ7q3xgRb0GsKCLHCV0jKBLOcPqYSIx3/Kckvd6CQYvHXudSeucheXwqb5xKhl0jFDA58g4G4axuEZ/vRzhFxsTTQZYOS49nTceAj/xl3HT6zYiCO0GfsUmqDrLmazpzH7E4TUePzrlCM04j9wyM4EchuXAqkj1NpazZx46OsMHl+t1/Q31ro7P1iYtrVLoMpjPFQa8bCR1VWrOjgnBPjw0gQWbhaOtGByyJg4udpT+I00+jUuKCiT398EUEonFRBhysf8eIENGNlRHNH/3yjJSLvm2S4iaoBABUWBSgZWhQvLI4Ep9jNoCeM8jcumOQWnMuE/HFyQB4QSNVevBaayo8VMv6Tj4Zl8PbnldAA2zHFc4EaPNek5OWIqLhEnKk01wC5zfsKFysDmOvsEfZfyvG0LaRApp+ioCM5+dsict7+LN4b86Ib7NOMJ+BQEF6fwWXN60KmptUl8OBCepOI9KyCE+MYqqzLUqh3+/P06yBw166eTUTD/kdxdxo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.4
Release Details
UpdatedMarch 12, 2026, 1:32 p.m.
Changelog

Added

  • Date/time range restrictions - Set minimum and maximum allowed values for Date, DateTime, and Time questions (#15)
  • Date/DateTime: NcDateTimePicker-based min/max selectors in question settings
  • Time: native time input for earliest/latest allowed time
  • Client-side and server-side validation with clear error messages
  • Date picker automatically restricts selectable dates to the allowed range
  • Markdown support in descriptions - Question descriptions now render Markdown formatting (#5, #6)
  • Bold, italic, links, images, lists, headings, and more
  • Images in descriptions are rendered inline with responsive sizing
  • External HTTPS images allowed via Content Security Policy
  • Links are auto-linked and clickable
  • Answer piping ({{Q1}}) still works alongside Markdown
  • TTS (text-to-speech) strips Markdown syntax for natural speech output
  • Condition editor date/time picker - Condition value inputs now auto-detect the question type and show the appropriate picker (date picker, datetime picker, or time input) instead of a plain text field

Fixed

  • Date comparison in conditions not working - "Greater than" and "Less than" operators on date questions always evaluated to false because date strings (e.g. 2026-03-12) were converted with Number() resulting in NaN. Now correctly compares date strings lexicographically (#19)
  • Question reordering not visible to respondents - Dragging questions to a new position in the editor was saved correctly, but the public form still displayed questions in their original creation order. Fixed by using the page's question ID order instead of the form's question array order (#20)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureFrSf68Mci1D31suRUVNzg+pPPiKxkYfn9Ss5QgA0bJWTggh9x240M4+3KrF+MrfqolaiBGwGbpbE6qtD6pgjFc/nCV3yQbo8phgErx5kk9q5tA4qLK0SKG5C7dqPwub9Mi2BXxE9/tTDrAGyrAOo/CHQ0wZ54h7CM/qO9lU7aHUNTDrbXf9Wa3MUd2O3B0hqAShxnDVFuG1fNpW59r7xd4UfGG1nsU7BCH1ahUB4Ha0P/JdrlrhHRia590gZZ6oXvm0wofA3bDOi6ETMHeuPBIa8Z2zZH4j8OmADhqzZyekL9YtcbkP49ukmWUUP/KjQgs8AoPLefpPIDvuEAjJ+ArnktsWh2MwkaTlAEMMlifZro1/yRpzZyDXb5PcJS7JJ4Egu8htlRc0RQPJBjzTogUAZeenzDq9R1PvbAI8c2MnaWQ8kLGmzi+eBkbkEa6lj6Z/vZSlnkHQqpB+HfY1C6X7WGzqZDxgboiVi77tB9ASAphvPPTFU999ofpiv53bBd7t/aNHHu8u/V6oFj0NHyA1p2ZK8Cgs4LG5i4XK+TPn9zfnvXQFEDzJfrcAK+6Wa6UwR4p3jpO49R/k8Wh3AFKJ09l9bAPBu+FUlntYsq+tnKaGcQdJRwmdxWn+yOf/5I9WZ/aYfzjI9H+dMS8caMbChabJz0TSDErq3PHZBShM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.3
Release Details
UpdatedMarch 11, 2026, 6:24 a.m.
Changelog

Fixed

  • Public form scrolling broken on some Nextcloud setups - Contradictory CSS overflow: visible combined with overflow-x: hidden / overflow-y: auto caused scroll to break per CSS spec. Removed overflow: visible from all public templates (#17)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturefEKSadx+pOeuWOEx0FgzF2L1QVc2sRFmYT7t6eKVTQYknBB5xhu3lgYeQDD/2vhjGQy6YQZeBZpV/Sxm8DA54aYVdFFfAgiN5EnvBtWfZNm4hy2V8UjSFJqXJfmR5DQxFI6emX3qagKjHbqmcCP9chndr30RCgzomENXQKETzY+yIiyldWY0YUMQxTQAn9vPfMjPGGx97l679QtqcEnhvXkgbPCU4L5Z0pBk0OMAJidQMsyGQDc/5hXRNj5JWvvzEtXxqPBbjMNrtewICTsVEx4QMHUlEeoBIJi86jM7ERII/dNl0WYYp8TAJuW8qELiSD21vhe6yTOIZCP8XrZVuXQoC4iIHghAq0myn6rWfpt4E2lzbVjPjRSu4xKegeQ1InylrcfiwqVk97QfYYgY+cj0Kals5l9F65P0UMbU3qK1AezJhWyprQaq9/CCIpP+aFXMA8WYqtlslWKp2juyvNqsaZdmy0Raa72MSrK4e6FnhmikZWBMFoIP63sS272wJPr1yOGDpBQXbGWWlBZmNmzFGqj6MGqI6aE4wsFEmMAG3/yhoeJ9x9NtxxDslehs82o1ASuBCud6sXpzuWhBtNuEi/rgw2sDojY+sdKs/txftcbk7Sin++ExLKnqVeyGoa/Jdv89aUgxFm6uXCVn/6jyqyojgMFtTz14Ip0qz70=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.2
Release Details
UpdatedMarch 10, 2026, 7:20 p.m.
Changelog

Fixed

  • Single choice questions broken - All radio buttons were pre-selected and user selection didn't work. Fixed incorrect NcCheckboxRadioSwitch API usage: model-value now receives the selected value string instead of a boolean (#16)
  • Multiple choice questions broken - Clicking one checkbox selected all options. Fixed by passing an array as model-value with proper :name and :value props for NcCheckboxRadioSwitch's array management (#16)
  • Dropdown selection not registering - Dropdown questions showed validation errors even when answered. Root cause was the same NcCheckboxRadioSwitch misuse in the underlying component (#16)
  • Matrix radio buttons broken - Matrix question type had the same boolean vs string model-value issue (#16)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signatureyz98Hn5Q8sjMWsh3r/STylb8Gr89l+FyKqh1aqGeVv5pv30YipP7O1Ho4zEE6cXJgBLREMl/R32EJd5hVya56kVy2vhEESL4Miu0ElnC6Mkm+BZjOb0YrDwV4LJ86auCuS+Vh0QAeyHlNBzpdxfAHW0IeQo5jSAPRAkRNTBSuYacrINezW6o0fMscXUINTDHTeboIgZxa/bF2XWof2dIMTIOVEdLOJwc1PXTvNg1NSsg4LuxDFenCNrMOQQnDEvbDjbF8ERRPhwaiksu484OjL8EqREnlWYG3kLh4DKZq6fA+Iny/7znDg0kt4DwstwaPziCx0MfEbPXlP4A8T7Byb2YCkmUe/2FgB8i4BsviFT1EcvEF9jV2+A4pVY+Ud7Hvu7Ns/6SVHeqeG5s9V5ApJljo3bjrOixAnRKG1LTiz7+MbJhTX4soxP9WOCquAjNtXIbwG4YUz7vE7FIH4nAQV6+9PYzofhxktmCep7IqDp2FtvCj/Wx5irvo3EC80gxcSePncDLswlflI66P8g2VGC99GYXrnFx2UybcbATSEClo3ahAX3A+4faLYe8EV7QQSvhCWRbaRaNGxz/RnjReQO729kX4FG+o1pLWfNiTxEiARveoQ6GckWq3EC63DupTTNL9V2Ue5WPUFKAnui1UpIPRzPVx37+8EA2KMKjUEg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.3.1
Release Details
UpdatedMarch 6, 2026, 12:01 p.m.
Changelog

Fixed

  • Added missing translations for all 0.3.0 features (page routing, collaborative presence, draft autosave, QR code, accessibility) in NL, DE, FR
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturelEVUWpC9Qe7GphfENOubjL5H1piT7pdcg8tZaB2SWRUKsd6IrEv8vxW95fshNG7yCI8MRTNOkVQFcW+TVx877aRh8YXDd0I9IfDwLc/H8wQHhSUABZUBZnrDrAg9VqVTMEMpjTdJCDVyb3GNDbCqaY0hvEta6YAglxZtx6tptwWq1PSVXBzlQLIzpV8Bs5nmnLt2IoFkKTHSNLWGf5SWKL62/I/RcS1VYzTa4W5RI1+irZ709oGATMDZjgc+QDliyL3Lryk155pMypaGfQLRfNHej00OzFwSqAGFHA2x0u6NYD+FbmrlF0UYUhFR9El+2o6lA27KvtHVajs18yiIalAqEt3GJDjKdiSA6mioZLwWTufui0wv7lW+28v8PKUddl7uu+UJZFTaczv2E23x8mHHLWRybIt9D33pjT8dDb8tAF/sLqnlKvOm4fHkE0CQeUoJQ6WnlDjq2xyla8hrZ/+bnK5sYiLpV1DN9d79FwQkOV9wVJX0m3O/FGQnudnmmnx6JTM5oJ7lEoTqVnNh8C/XGZcZA1WUAyTyvvDJvssjRa2lJFGk0/opsnbRQDtZBDnL2xrhroK9NJquucWc7O+FifgFhVYLz5ILAOprGKsnUTCPAfaf0lyWlmvFwQ8BGMG2RCoAOP7lncDL3cAYORYIUtgIHJgb/KjvxxuaWK8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.11
Release Details
UpdatedFeb. 18, 2026, 1:24 p.m.
Changelog

Changed

  • Nextcloud 33 support - App now supports Nextcloud 28 through 33
  • Replaced deprecated IResult::fetch() with fetchAssociative() in StatisticsService
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturepj2pVxyGgN68FQKxKvx1c7236SGBbg27rILExPtROf2hK8AcuNPNISmg5NUS62eg3Ke/VsHWwcgd288FSyY9X6bhKiLlVYBMVx1PMEIGO6RIquK03cXhrcKP2uQAliwoMOKsZLgkD5yjlwQ0Bj1XbZ077wb3c/5343zmBWFbQtwTlZ+M1tv6q7Uy7riorsIiVG4ddL5MM3uVQOWozbOTUQjHaFt/e8WA1eF10tRI5omQobKbdqA+K77ffP4y4fZRJDUpZ6TLpoYY/B5HfgBGVzrBW+sMRWTSaflQkndm5fxj1dsGnXOTiyWPy9Us0ElWK6KjtpkUGiSmEcvvqLV8nXDTrrSQp5KLdPEfQDxShU4NVbePabHP7x0n5Jah4U0nyUFOisJmrX9F557/bN+Fx293nKd992O6GMPlpsgyC7Nrpo9Q+MFmEIH+/k67uYTUQ1HiHjrBl7t+4lSy/KVpG7BQPm6LDGrF6T42BskHixwPVLXLTkAy51CZHB6TxDPX0YXVVFh8+55cS6vVglIWfFx4+hY1NMwrbDPnI8ZEVMZOaB8Nu3MskQBnhL/lnMYsPEMR/j/0/ejFt3HlB7pkhSIZj+MCO8GaKVdsfI42hb/u41aIlMBgjkmcDVZy5xK5JZgrAOtljyyOi3NXHYSuAFVYpBC01vK0RnpvcjQtCVs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.10
Release Details
UpdatedFeb. 11, 2026, 11:41 a.m.
Changelog

Added

  • Accessibility (a11y) improvements for public form response pages
  • Text-to-Speech (TTS) - Speaker icon per question to read question text, description, and answer options aloud using the Web Speech API
  • Toggle behavior: click to start reading, click again to stop
  • Language automatically detected from Nextcloud user locale
  • Visual feedback on speaker button while reading (color change)
  • ARIA attributes on all question types for screen reader support
  • role="group" with aria-labelledby on every question
  • aria-required, aria-invalid, aria-describedby on all input fields
  • role="radiogroup" for single choice, scale, and rating questions
  • role="alert" on validation error messages
  • aria-live="polite" on page indicator and submission status
  • aria-live="assertive" on form error messages
  • aria-label on file upload zone, remove buttons, and matrix radio buttons
  • scope="col" / scope="row" on matrix table headers
  • Keyboard navigation for custom controls
  • Arrow keys (left/right/up/down) to navigate scale and star rating buttons
  • Home/End keys for first/last option
  • Enter/Space to activate file upload zone
  • Roving tabindex (WAI-ARIA radiogroup pattern) on scale and rating
  • Focus management
  • On validation error: scroll to and focus first question with error
  • On page navigation: focus first question on new page
  • After submission: focus thank-you page for screen reader announcement
  • TTS automatically stops on page navigation and form submission
  • Skip link - "Skip to form questions" link (visible on Tab focus) to bypass headers
  • Per-question inline validation errors alongside global error banner
  • Screen reader-only status announcements for submission progress
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturehiico8sT2nFtIBbugEJCh0mtYVlay9iXrypCE6SdEehLcb06zqxaaRRV1wer6DFZVlpEaGi3qnWQu512jWZ6v18DW170EltnjVHFhmXPW+Fx4WasefOa/8MMQg1bkZ+8y77Hmll7pchCrhG5LtzSNcIQDAtczM1S2TVQ9dw7JdrtZPqI76JN+P+2pdex+oHaJ0zYAKZL1WU9Ygmdzsb50QSaJkMW9GXuR/Ow14uSfZBdwp3q+LzxD/x6W4tz2VsD0GXIFam68sMaNmnZBCK0FkwkjSP79zQI4decD6qilaDGDL40lWWN7muH5udYpPi8Xf4Eu/sppALufrcPepA1Hktns1IZ0pIjyf91la5sc37NbG+K7Jw+LKLbqegaJrcwiORS+3rcmDcrNrRYxmyyy8KWIW7t+sw5oD9+dItl3XiUKCDL8bfcVxTnci/1of+vZ5KzyxbAzA2mAOhV+cMuKm+5RX6vNIjUbYhqIrQpTjeDbdmc3R/2hltUFk5bOBdG9+qnUc/bAp5aOdSVU3mvgt0eW8uqGpu7B5tsF78STgexiHPuZ35YsXIR/Zbl19zGAtyA/lfC7TYSgOIION8vaRE3MjlgUr/aldDMtjB8q6oue5KsLBcKBWMCUKcomeZ5zWG6XLq7j+GkD4L8+Py4GI1HvlrPWpZ0fROTG5fLGzg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.9
Release Details
UpdatedFeb. 6, 2026, 1:21 p.m.
Changelog

Added

  • Question color coding - Assign colors to individual questions for visual organization
  • 7 color options (blue, green, orange, red, purple, cyan, brown)
  • Color indicator in question header with dropdown picker
  • Colored left border on questions in editor and public forms
  • Custom regex validation per question with custom error messages
  • Define validation patterns (e.g., postal codes, license plates, phone numbers)
  • Custom error messages when validation fails
  • Real-time validation feedback on form submission
  • Response limits - Set maximum number of responses per form
  • Custom "form closed" message when limit is reached
  • Live counter showing current vs max responses

Changed

  • Share dialog reorganization
  • Response settings and Link settings are now always visible (not collapsed)
  • Embed code, API & Webhooks, and Responses moved to collapsible "Advanced" section
  • Cleaner, more intuitive settings layout

Fixed

  • Scroll issues on public forms caused by password manager browser extensions
  • Fixed for LastPass, Bitwarden, 1Password, and similar extensions
  • Added CSS workarounds for extension-injected elements
  • Improved scroll compatibility for Nextcloud 28+ public page layout
  • Nextcloud 33 compatibility - Fixed deprecated OC_App::getAppPath() call
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignaturerIF5qS38JiuDBtmQEKuf3x5L8wtIMHDBYN6IIhaUTWhliFinBAu8YtyJC0lu/sN4zvZxK3ILE1+g3KRjLc/g28ZhK25O6Lnl3D6NtfAP68fVIwUibU1SHSyJV+jrsK0NpmwgH3qNnMWNKnVKfAuxHje12zQgZJEiG4/5fN4bhaAFNn/pXBKfLtAbRrwyVtDBCPm1YrruruolO7MWt65vKbOUgtnTUZRrwwLb8ygKHVVEhYSbptstvUPkaR2rp4y1E0xoa30hz6k37PLYitjCZ6+H9cdGNyyALn6dWrVikW/R43wQPATsDnbBpU7FfFpRtZnwrizttFbcwYxnI+PD1uiGkNdP/fl8QXADqcEXqI2otRYEpbr4xJtB/gpVbduGFWtZU3nopdYBg6xFpjbKhSMkWKZZFfixM/WKbZdWeZoQ23tuPUMNC74Cl1//s1TC433gYmryYh3ZFTyTCjhwt+vHH8MUpRTOAUsOLV1UFk4ey4Llhy/qFOlp2z0o5ST61/XdaWBO0tSFsjUMsK8xmBo5Y10H1BfOx4jOBMi/QF18c2GBd/HIK1IC0uAE6dAzOpLSy+oEhZEdfRTmN+Py+G22/VmHr1PxUpd/t/r8yLT48uT7oQoDwWsGBhw77DhVaDRM3m7wMe36VAfJSWIKvcOSEt/q09Tk4BlX0O6YN30=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.8
Release Details
UpdatedFeb. 2, 2026, 12:39 p.m.
Changelog

Added

  • Microsoft Forms Import - Import forms directly from Microsoft Forms
  • OAuth integration with Microsoft Entra ID (Azure AD)
  • Import form structure including all question types
  • Import existing responses
  • Support for multi-page forms (sections)
  • Support for Likert/Matrix questions
  • Admin settings for Azure app registration configuration
  • Per-user Microsoft account connection
  • Question type mapping: Choice, Text, Rating, Date, Likert, Ranking, NPS, File upload
  • New "Import" card in template gallery (visible when MS Forms is configured)
  • Import wizard with form selection, preview, and progress tracking

Changed

  • Admin settings now include "Integrations" tab for Microsoft Forms configuration
  • Improved documentation for Azure app registration setup with required API permissions

Fixed

  • PreviewProvider regex pattern fix (preg_match delimiter error)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureiQSbO+QhAacmAZ0f0XCyecq/v+L31Q/fOwbV6RkX3DUq5ObV/y3odSGq6nCKT3AmCyP7JRN/i96KYAkvJUyTyhmp6P9CJv6IxuFar6g8FkoWz1cXj5wLoDsdZosPhhtUePNrGn0EW9wihkcZVvaTxDpCNgf5HXtVFp9odpDXWOOZrakxyMoSD1koc7CmkkrYCGN95I5470K0gn+IkdkZLrq5hKztiJIt170wSeJax1HIWKBkZ5ngw7nO3UJzPXq0GVfdgWtUbm62TKAv1KwVwcxsvwvGwed9ox1F7LIS8JVRnjSzlq6NSWODO0YENg0xWzdDQXcdwE05vt0zZL92h7wvS7oMgr4CHyOczU8+oIcJRJ/L2idwcvw36QThb4NAOzen093WlFdwMFLqPibYKtf1Vr4FmfHRbtFYe1+6YP/Yuezmn3GrTi/hJqgiyOoRtiGv/WZyZlAV9V4p4o5tsAsij/LrqX6urKPoCRBU0Xv+7xI1rZI/gqMqXDmYgPEmLvVzimaxvHQsC42JT0Gk7HOgnrUYgOVRXuFYTTnJEFZ33MaNoXywCNPf/AjEMTYYKPjq77fQy0rFHtcE3GmXaNMzkGbHx58hUZIsrCwlZp1Iz1rMP8T9f/TvrN58J8Ij80OHJfxIAbESzQhe7k0EewOkcJRuI58UHhhI2iMaRWs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.7
Release Details
UpdatedJan. 30, 2026, 10:56 a.m.
Changelog

Added

  • External API for programmatic access from third-party systems
  • API key authentication with bcrypt-hashed storage
  • Configurable permissions per key (read_form, read_responses, write_responses, delete_responses)
  • CRUD operations on form responses
  • API keys automatically stripped when downloading .fvform via WebDAV
  • Webhooks for real-time notifications
  • Events: response.created, response.updated, response.deleted
  • HMAC-SHA256 signed payloads for security
  • Configurable per-form with enable/disable toggle
  • New "API & Integrations" section in Share dialog for managing API keys and webhooks
  • Comprehensive External API & Webhooks documentation in docs/architecture/external-api.md

Fixed

  • Admin settings page no longer blocks on statistics loading (statistics are now fetched async)
  • Consistent app icon (app-dark.svg now matches app.svg structure)
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
Signaturej4WG42Wxm8UBPQq0I9NBJ1SJusy2ORqxBWubfd68QVERrk7kPEwlQVNegb8C5SVRed4cgkwk4o/B8O0SYchfcun0H/29EZaxnLsBXtR8k1h5s+Y80XmE50SjAQ78nwXR0IIM5DeUgkg5fAzJeJ4u6nxQH7YjEdvTCmAWmUe2vFkOBtiA9NIY744nMX4fJ+BxTDk7QGnkXeFPAkA14NDN71/9+bWsvKGu0WPcBpa1CPikUzUKj7Wk/OIOoAaE6/XvP4/pucwzJ4tukZ3xAdvtWPOmX28LSZZknutF/KvffqSv19q8+Fp4dAjsWo2Klk1PLxHM971hr7g2WsUsoYtHC3wmQlmq4d/n6Ug9gk/CdmnjbR2k06ruKsnt/+okphvAJ2Hz6hdCsiBJTHI62jNT+gnAxR0edndaQ3HSxPV+lzMuVeDzP7b+a2UvLKjNWeZQI7D6ms8+Sv80L8CPb5pDOFyWOu2ovZPmYjkXFJjdXjARuOupp39fdlH+TU1RnULR1BIagSZFG6rcxLXiqBGJA5mFzGzOsoNyyZ9uFDdLe3B1X7pkkqQ2z/3KaeAZmpenv8dWTjhDM4BjUuSKZzT2b4bAtN6VCu13OLw1BF4yWmXREw3VSc5Qvz73YeQek7TL7VI6tecHn/06NaaPrHKKOhn9uVPQJg3V4qDTOLr9Z8Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0
FormVox 0.2.6
Release Details
UpdatedJan. 28, 2026, 4:18 p.m.
Changelog

Added

  • File upload question type with configurable allowed file types and size limits
  • Download all uploads as ZIP from Results view
  • DAV plugin to strip sensitive data from .fvform files on download (responses, settings, tokens)
  • Form embedding: embed forms in external websites (SharePoint, intranets, etc.) via iframe
  • Embed code generator in Share dialog with responsive width and height options
  • Admin setting to restrict embedding to specific domains (Settings tab)

Changed

  • Editor toolbar redesign: Preview, Share, Results buttons now prominent; less-used options in dropdown
  • Editor header redesign: cleaner look with underline focus states
  • Question cards redesign: hover effects, focus states, modernere look
  • Description fields now use multi-line textarea instead of single-line input
  • Improved spacing and visual hierarchy throughout editor
  • Required questions now clearly marked with red asterisk and "(required)" label on public forms

Fixed

  • Hide .fvform files now properly hidden from sync clients while remaining visible in web interface
  • Uploaded files are now deleted when their response is deleted
  • Icon vertical alignment in dropdown menus
  • Suppress @nextcloud/vue appName/appVersion warnings in console
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD
VQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a
fGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh
Vabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko
t2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC
gp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc
p/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x
Dhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm
qfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I
e9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO
NRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L
qjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m
LEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo
P6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F
/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/
6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN
xKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR
JZ2/aCfE8hjPURVMJaAya4zY/+L3qw==
-----END CERTIFICATE-----
SignatureOI4r+UI2nwnpIFLKL9RijGU8qVDcsdN+RmHoXeh4wsH/FffjM0k/EfUGfIG44uHsLJZw7ScCByRN82zS4zks9omVmvIi4C0C92BVgwh1swpHz7P1+KuyPZEdj1OfwW/WtbOxjwn/x3tk9WyUN6T6qP1URBItFJgssJ+fHjQax/5SfVQLRapjaSp0bZ+Rzv2r2bMm9/gjhdLT7PkGPgG1QCYqsbkLznZC5rN2uFwO+sqMu/ss41Mo5nymiiIyTnJ/mQp/MyeTqd+1QjsiJ+Xt0ulqIhQ+2hkzsFCdVlj6h4DKoJ67IH8JcuBx52Uf/yE9HvQRQMGDMgg6VYgAg0+Oi2X5BDiaRgE8pZ1x/A74a4Ydsh8uaO9ZmHQJqjJU0lLPmwGE2BGswPTwKpCMnJJqT0B0xXAMaSI5yqzLvoIe4vtp2v5wfw2NDkVVQRBAmXKtndBADgpaZqkIp5zaImvxQimBHPOyO8IcTfWFCDU3iMCc6J2QxrgtXmQaTn4+JhDjCY3ePBzVxGbdHKkoYgE+Q3c3FsOMufBKKoEdPVE/BZ0BaynJcJEzF8hhDEgo/I4EDuotDgZY5XZegsjYUOQT/CwOOZEVJDJ2zKsXpogTcKSDHmmf9Dwv1//tRA6KDK3HPiBJM4YUVQSB9raiNTB55O/qbAOmU1aEOiZN0TeG2e8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0