Skip to main content

FTS SQL - Releases

← App details

Nextcloud 34

FTS SQL 1.0.0
Release Details
UpdatedSept. 24, 2026, 7:51 p.m.
Changelog

The first public release — milestones 1–4 of DESIGN.md.

Added

  • A full text search platform for the fulltextsearch framework that indexes into PostgreSQL 14+, MySQL/MariaDB and SQLite — the database the instance already runs, with no Elasticsearch to operate.
  • Access decided by the share graph, fail-closed, through per-document access tokens: the same shares that decide who opens a file decide what search finds.
  • Pure-PHP extraction over streams under a memory budget: plain text, OOXML (.docx, .xlsx, .pptx), ODF, a hand-written PDF stack (a ~70 MiB peak where the library route fatally needed 697.5 MiB), and the legacy Office formats (.doc, .xls, .ppt) through php-scoper-scoped PhpOffice readers.
  • An admin card in the Nextcloud design system (Vue + TypeScript), with per-cause extraction counts; the unified-search excerpt centres on the matched word, and its Date chip narrows over the stored modified.
  • The two settings endpoints are OCS (/ocs/v2.php/apps/fts_sql/…), with their contract in openapi.json: generated from the controllers by the official extractor, committed, and kept honest by a CI leg that regenerates it on every pull request. The same run generates the card's TypeScript types from the spec (openapi-typescript), so the endpoints it calls and the payloads it sends are compiler-checked.
  • Catalan and Spanish translations of the admin card — the official l10n flow, with the Catalan reviewed by Softcatalà.
  • A dark-theme app icon.
  • CI on the official Nextcloud template set — patched like every app outside the org — with coverage on the SQLite leg and dependency automation (dependabot, weekly audit and nextcloud/ocp PRs).
  • Benchmark stages with kept results: search quality over a fixed trilingual corpus, extraction peaks and speeds, scale (100k/1M) and access-filter correctness under load.
  • The four-engine integration matrix — in CI and mirrored locally — and a Playwright suite over the admin card.
  • A store manifest that says what ships: the full format list, the documentation URLs, the screenshots, the website and the repository.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAjCCAuoCAhQtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTE1NTIzWhcNMzYxMjMwMTE1NTIzWjASMRAwDgYD
VQQDDAdmdHNfc3FsMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1SAw
Jmfae5ieoueiL8M2rWzbZhtNK7braqp17ydnHDs/yfhsDSH7ieZCxAwZUHrOKo/E
sgEyrelc8VkZt32t6MXQyivmsu5hynQvnXG6JCE/dxsFIMfeMEw908BEQEDZ7CWM
vybYgGlS0GyjmP/sJmycgOIQu6bSWF/Pj9Q/PrQNGbeHb/RYnR2ezJZxjZUmKoJB
AuLKuu7PvtqVWNnT4lrFNmmuzE5QOW7qKLBtfQTgPh3ICcDa4Nou1dw1j8GbgkP2
1gUvRs6kt/tWmvzDBC5LJMM0FyGGIkIzbflVaVpAEbhamjc+rJdm8mI5NmhDcjyQ
nmrvo7S6Pez4lwnxK7ZppvIEKCCwDIrPW/DNurO6CS9Fp2Wzd2woPbipSjJlVTHW
kCyfef3dPewT6Tfvu1ZeoIdYoHY63sHF+IPUMriPe6vBOQIwcU+x9IldhQZEBJYM
xOrq8whXcRBbst6wSRE7NaqQwBQLOL/kw0mYk+fPtZOu38lB54ue/xjad1zIUqrv
sdvDI8pmNRIILsdo4JGJZ3DLizaq6VMQIwl5Qa4GObnva+nKEPOayTdJdoVKW6w5
bX2c3OqnaBNRcCP0YXIxeYcp12o374ZEZeIFRwJ8t0SAPTy6f9Xc+CxE1ggTUTID
wHCJ2Ol5GDEXthIGICycjBFUj6t0bV+8fPfWJPsCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAKjQxmoMhibMV4jmrEDNj6qmGIzBkSm76UG2B42URqCtjPk8p24YXe8Vs
Hre6r6k5g9tzLPGzc+y63Cv95iLln8b+5XfwFT8uWnjLpti1KUedWj6x5V+b1VYM
jPJA+XxC5sWQSsvSN6DU8+xocesm3rdz44s0aWrHVGvZR9iN9DmRodLfJfYY6wid
/WWh8miTitO77MtJ0kEG+/BysMpEdTsZC6RTT/swUV7jNjYcA/Q8vWMA1SvsgYKH
fxe/5kstFllmGxH9PRS3hmVze54rfz7YXtbWyQnehiCQM47HmPKtx1y22DnZJHo8
TGCAfOgpkZu7bK6UVpAyNefJBUwBDw==
-----END CERTIFICATE-----
SignatureWYz/iBhz+bZHl1/EKDDXXDpWZOWY2Q0eYxjruwfwB+Pm94hdx8cP17IvD3jCoT1yUkddZpdC5BFzVE/a1FXZ8vUn5/gUMGQtOFWf5860AB7iBzjQsSPpMkYVWDn3C6uktXyBxRdp5BZ/T2K358Vy+5itmFkx63/1H7a3nxSPwKsJcdHZPym1SdRaFlBtRhl/srqK+vL59HWGDiB1pJMyk1bZdMD9U8JnZz0nx0CMiaV0uXLrB9i+G7l7yiZTpa/lZmSxLEKTgd3urQFtn7UH+pMCGGvGFuFIodE4fI2GZVEYJI0hxMFfwfNyi91m0028yNVqSuBOm1qgEaMSeeIitS2N+4NTLxgwfv5Ps4zk5slnXD2BZZX0Ig8HutRFtJ6PzkdDK/9hHgU48YSMDoJzgitJVBdQzjW2/RRJ3LRvJFsunMQfNig3qJIawYWQFi9Oi7zJYg9ObYUytis5qvJf7jekq2Jsheq56vZNBYoIP+FLdzktN94vu7s4gJsr1dR6yBJr9VLkEbHGrCOafB12JtOXxsh5eDSsOg+2AUvAaL1i6llFM8ZHoY7tlgRjUaXk1KdPaDGlPhzpbcbxjTdbaG7mp+ShRtjBUEa+aemdWJj3K09H6Ji+BeRIhwi00kX8QIprRIa/P+bh3G47mprD9vxejfeT9bl+46lEpwnKMRk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=34.0.0,<35.0.0
Databases PostgreSQL >=14.0.0
MySQL
SQLite
Minimum Integer bits32
PHP>=8.2.0