Nastavení cookies

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.