Na našem webu používáme cookies.
Některé z nich jsou k fungování stránek nezbytné, ale o těch ostatních můžete rozhodnout sami.
# Moodle Marketplace listing copy
The English copy below is the primary Marketplace submission text. Replace
every value in square brackets before submission. Do not publish reviewer test
credentials or a live export URL.
## Submission metadata
- **Plugin name:** DataApps Search Suggestions
- **Frankenstyle component:** `local_fulltextsuggestions`
- **Plugin type:** Local plugin
- **Release:** 1.0.0
- **Maturity:** Stable
- **Supported Moodle versions:** 4.5–5.2
- **Licence:** GNU GPL v3 or later
- **Pricing disclosure:** The Moodle plugin is open source and free of charge. A separately contracted DataApps FTSS SaaS subscription is required for the suggestion service.
- **Suggested tags:** search, autocomplete, suggestions, course catalogue, full-text search, DataApps, external service
- **Source repository:** `[SOURCE_REPOSITORY_URL]`
- **Issue tracker:** `[ISSUE_TRACKER_URL]`
- **Documentation:** `[DOCUMENTATION_URL]`
- **Support:** `[SUPPORT_EMAIL_OR_URL]`
- **Service website:** https://www.data-apps.cz/
- **External privacy policy:** `[DATAAPPS_PRIVACY_POLICY_URL]`
- **External service terms:** `[DATAAPPS_TERMS_URL]`
- **Data processing agreement/contact:** `[DATAAPPS_DPA_URL_OR_CONTACT]`
## Short description
Connect Moodle course search to the DataApps FTSS service, providing fast
full-text suggestions from a secure, configurable course catalogue feed.
## Full description
DataApps Search Suggestions connects Moodle LMS to the externally operated
DataApps FTSS suggestion service. It loads the DataApps client on explicitly
selected Moodle pages and exposes a token-protected XML course feed used to
build the remote suggestion index.
The privacy-preserving default configuration keeps the browser integration
disabled. When enabled, the client is loaded only for authenticated, non-guest
users on global search pages. Administrators can explicitly extend this to all
non-administration pages.
### Key features
- Full-text course suggestions powered by the DataApps FTSS SaaS.
- Token-protected XML feed following the DataApps FTSS 1.0 format.
- Default feed scope limited to visible courses with enabled, passwordless
guest access.
- Optional export of all visible courses after an administrator privacy review.
- Optional keyword indexing from a selected course custom field; only fields
configured as visible to everybody are exported.
- Optional course overview images with a bundled generic fallback image.
- Configurable limit of 1–10,000 courses per feed.
- Moodle audit event for every successful feed export.
- Privacy API metadata for both external DataApps data flows.
- Moodle database, URL, file, custom-field, cache and event APIs are used; no
database engine or table-prefix assumptions are made.
- No Moodle core modifications and no additional Moodle plugin dependencies.
### External service requirement
This plugin does not provide the suggestion engine itself. A separate DataApps
FTSS account, subscription and suggestion Public ID are required. Service pricing,
availability, support, data retention and contractual terms are controlled by
DataApps and are not part of Moodle or this GPL-licensed plugin.
Before enabling the integration, the site operator must review the DataApps
terms and privacy information, establish an appropriate data-processing
agreement where required, and configure Moodle privacy notices and consent
controls according to local law.
## Requirements and connectivity
- Moodle 4.5, 5.0, 5.1 or 5.2.
- A PHP version supported by the selected Moodle release, with the DOM extension.
- A separately obtained DataApps suggestion Public ID.
- Outbound HTTPS access from users' browsers to `cdn.dataapps.cz`.
- HTTPS access from DataApps to the token-protected Moodle feed URL.
No Composer, npm or other server-side dependency installation is required.
## Installation
1. Install the ZIP through **Site administration > Plugins > Install plugins**,
or extract the `fulltextsuggestions` directory into Moodle's `local` directory.
2. Complete the Moodle upgrade from **Site administration > Notifications**.
3. Open **Site administration > Plugins > Local plugins > DataApps Search Suggestions**.
4. Review the data-protection information and select the permitted feed scope.
5. Register or sign in to DataApps, create a suggestion service and copy the
generated Moodle feed URL into its settings.
6. Open the suggestion detail in DataApps and copy its **Public ID** into the
**Suggestion Public ID** setting in Moodle.
7. Enable the browser integration only after the site's privacy review is complete.
Upgrades from the legacy 0.0.1 version rotate short export keys and disable the
browser client. Administrators must update the DataApps feed URL and explicitly
enable the integration again.
## Configuration notes
The default feed includes only visible courses with enabled, passwordless guest
access. Password-protected and hidden courses are excluded. The broader **All
visible courses** scope is an administrator opt-in and should be selected only
when those course names and URLs may be transferred to DataApps.
The export URL contains a secret query-string key. Treat the complete URL as a
credential. It may otherwise be captured by web-server, proxy or monitoring
logs. Use HTTPS, redact the `exportkey` parameter from logs and rotate the key
whenever disclosure is suspected.
## Privacy and external data processing
When the browser integration is enabled, code is loaded from the external
DataApps CDN. Depending on the remotely managed FTSS configuration, DataApps
can receive:
- search text entered into an enhanced field;
- suggestion interaction and selected-result information;
- encoded browser screen dimensions;
- the connecting IP address; and
- an optional pseudonymous FTSS browser cookie identifier.
When DataApps downloads the feed, the following catalogue fields can be sent:
- Moodle course ID;
- course full name and course URL;
- the configured public keyword custom-field value; and
- a course overview image URL, or a static generic plugin image URL.
The plugin stores no user profile or search-history data in its own database
tables. Moodle core logging records successful feed export events. DataApps is
a separate service whose retention, deletion, cookie and incident-response
settings must be agreed and documented by the site operator.
## Privacy statement for the Marketplace privacy field
This plugin integrates with the separately operated DataApps FTSS SaaS. When
enabled, users' browsers load scripts from `cdn.dataapps.cz`; search terms,
suggestion interactions, screen-size data, IP addresses and an optional
pseudonymous FTSS cookie identifier may be transferred to DataApps. A
token-protected feed can transfer configured course catalogue data, including
course IDs, names, URLs, a public custom field and optional course image URLs.
The plugin does not store user profile or search-history data in its own
database tables. Site operators must review DataApps retention, deletion,
cookie, security and data-processing terms before enabling the integration.
## Release notes — 1.0.0
Initial production-ready Marketplace release.
- Replaced the legacy direct PDO/MySQL export with portable Moodle APIs.
- Added strong generated keys, constant-time token validation and hardened feed responses.
- Added configurable guest-accessible and visible-course export scopes.
- Added public course custom-field keywords, standard course images and DataApps field limits.
- Added XML safety, empty-feed support and an export audit event.
- Added secure opt-in client loading and conservative defaults.
- Added Privacy API metadata, upgrade migration, documentation and PHPUnit tests.
- Declared support for Moodle 4.5–5.2.
## Private note for the Marketplace review team
This plugin requires the external DataApps FTSS service. Send working,
time-limited test credentials to the reviewer through the private review ticket,
not through the public listing:
- **Demo site:** `[REVIEW_DEMO_SITE_URL]`
- **Demo administrator credentials:** `[PROVIDE_PRIVATELY]`
- **Time-limited suggestion Public ID:** `[PROVIDE_PRIVATELY]`
- **DataApps test account/panel access:** `[PROVIDE_PRIVATELY_IF_REQUIRED]`
- **Expected test page:** Global search page on the demo site
The browser client is deliberately disabled after installation. To test it, the
reviewer must enter the supplied suggestion Public ID, keep the default `Global search pages
only` scope, and enable the integration. Feed authentication can be tested
independently with the generated export URL. Invalid or malformed keys return
HTTP 403 with an empty response; valid keys return UTF-8 FTSS XML.
The repository includes a Moodle Plugin CI workflow for Moodle 4.5–5.2 with
PostgreSQL and MariaDB. Local verification for release 1.0.0 used Moodle 4.5.6+,
PHP 8.2 and the MySQLi driver; the plugin PHPUnit suite contains 18 tests and 80
assertions.
---
# Česká pracovní verze
České texty slouží pro interní kontrolu a pozdější lokalizaci. Primárním textem
pro schvalování Marketplace je anglická verze výše.
## Krátký popis
Propojuje vyhledávání kurzů v Moodle se službou DataApps FTSS a poskytuje rychlé
fulltextové našeptávání z bezpečného, konfigurovatelného katalogového feedu.
## Plný popis
DataApps Search Suggestions propojuje Moodle LMS s externě provozovanou
službou DataApps FTSS. Na povolených stránkách načítá klienta DataApps a
zpřístupňuje tokenem chráněný XML feed kurzů, ze kterého se vytváří vzdálený
index pro našeptávání.
Integrace je po instalaci vypnutá. Ve výchozím nastavení ji lze aktivovat pouze
pro přihlášené uživatele kromě hostů a pouze na stránkách globálního
vyhledávání. Feed standardně obsahuje jen viditelné kurzy s aktivním a heslem
nechráněným přístupem pro hosty.
Plugin podporuje volitelný export všech viditelných kurzů, veřejného vlastního
pole s klíčovými slovy a náhledových obrázků kurzů. Používá Moodle API pro
databázi, URL, soubory, vlastní pole, cache, události a ochranu soukromí. Nemění
jádro Moodle a nevyžaduje žádný další Moodle plugin.
Pro funkční našeptávání je nutný samostatný účet, Public ID našeptávače a smluvní vztah se
službou DataApps FTSS. Cena služby, dostupnost, podpora, retenční pravidla a
zpracování dat nejsou součástí Moodle ani tohoto GPL pluginu.
## Česká informace o soukromí
Po aktivaci načítá prohlížeč uživatele skripty z externího DataApps CDN. Do
DataApps mohou být podle vzdálené konfigurace přeneseny hledané výrazy,
interakce s návrhy, rozměry obrazovky, IP adresa a volitelný pseudonymní
identifikátor FTSS cookie. Tokenem chráněný feed může předávat ID, název a URL
kurzu, hodnotu zvoleného veřejného vlastního pole a volitelně URL obrázku kurzu.
Plugin neukládá profily uživatelů ani historii hledání do vlastních databázových
tabulek. Provozovatel webu musí před aktivací posoudit právní titul, cookies,
retenci, výmaz, zabezpečení a smluvní podmínky DataApps.