[Intum](https://intum.pl/pomoc.md) / [Platforma twórców](https://intum.pl/pomoc/platforma-tworcow.md)

# [Platform — własne moduły w intum](https://intum.pl/pomoc/platforma-tworcow/wlasne-moduly.md) | [API](#api)

## Do czego służy moduł Platform?

Moduł **Platform** pozwala tworzyć własne moduły w intum — dodawać nowe sekcje do systemu, które działają jak natywne elementy aplikacji. Dzięki temu możesz rozbudować intum o dowolne funkcje bez ingerencji w kod źródłowy.

Każdy moduł to ścieżka URL (np. `/raporty`, `/baza`) powiązana ze źródłem treści — stroną CMS, aplikacją Noe, bazą wiedzy lub zewnętrznym plikiem JavaScript.

## Jak włączyć moduł Platform?

1. Przejdź do **Konto → Moduły** (`/account/modules`)
2. Znajdź moduł **Platform** na liście
3. Kliknij przełącznik aby go włączyć

Po włączeniu w menu pojawi się sekcja **Platform** z listą Twoich modułów.

## Co można podłączyć jako moduł?

Każdy moduł może być powiązany z jednym z czterech źródeł:

- **Noe::App** — pojedyncza aplikacja Noe (Svelte, JS, HTML). Idealne do prostych narzędzi i dashboardów. [Więcej o Noe →](/pomoc/noe-ai)
- **Plik JavaScript (source_url)** — zewnętrzna aplikacja JS (np. zbudowana w Svelte, React, Vue). Podajesz URL do pliku JS, a moduł ładuje go w elemencie `<div id="intum_platform_module">`. Idealne do aplikacji budowanych poza intum.
- **Cms::Site** — pełna strona CMS z wieloma podstronami, layoutami i szablonami Liquid. W stronach CMS możesz osadzać dowolny kod JavaScript, Svelte, Vue, React — dzięki temu budujesz interaktywne aplikacje bezpośrednio w CMS. Idealne do złożonych modułów z wieloma stronami. [Więcej o CMS →](/pomoc/cms)
- **Kb::KnowledgeBase** — baza wiedzy z kategoriami, wpisami i wyszukiwaniem. Idealne do dokumentacji wewnętrznej. [Więcej o Bazie wiedzy →](/pomoc/baza-wiedzy)

## Moduł z pliku JavaScript

Zamiast podłączać istniejącą stronę CMS czy aplikację Noe, możesz podać URL do pliku JS w polu **Source URL**. Moduł załaduje ten plik i wykona go na stronie.

Aplikacja JS powinna montować się w elemencie `#intum_platform_module`:

```javascript
const target = document.getElementById("intum_platform_module")
// mount your app here
```

Plik JS może być serwowany z dowolnego źródła - z CDN, z własnego serwera, albo z assets intum. W trybie development wygodnie jest używać lokalnego dev servera (np. `http://localhost:3100/app.js`) z watch mode - zmieniasz kod, odświeżasz stronę i widzisz efekt.

To podejście pozwala budować moduły w dowolnym frameworku (Svelte, React, Vue, vanilla JS) z własnym procesem budowania, testami i deployem.

## Layout modułu

Każdy moduł może działać w jednym z dwóch trybów:

- **Z layoutem aplikacji (app)** — moduł wyświetla się wewnątrz standardowego interfejsu intum, z topbarem, sidebar i menu. Wygląda jak natywna część systemu. Przydatne gdy moduł ma pasować do reszty aplikacji.
- **Bez layoutu (none)** — moduł zajmuje całą stronę, bez elementów interfejsu intum. Przydatne dla samodzielnych aplikacji, landing page'y, widgetów lub modułów z własną nawigacją.

Tryb ustawiasz w polu **Layout** przy tworzeniu lub edycji modułu.

## Jak stworzyć nowy moduł?

1. Przejdź do **Platform → Moduły** (`/platform/modules`)
2. Kliknij **Nowy**
3. Wypełnij formularz:
   - **Nazwa** — wyświetlana w menu (np. "Raporty sprzedaży")
   - **Kod** — identyfikator modułu (np. `raporty`)
   - **URL** — ścieżka pod którą moduł będzie dostępny (np. `raporty` → `/raporty`). Można użyć `/*` na końcu żeby łapać podścieżki (np. `raporty/*` → `/raporty/cokolwiek`)
   - **Source URL** — opcjonalnie URL do pliku JS (zamiast źródła CMS/Noe/KB)
   - **Typ źródła** — wybierz Cms::Site, Noe::App lub Kb::KnowledgeBase (gdy nie używasz Source URL)
   - **Layout** — z layoutem aplikacji (sidebar, topbar) lub bez
   - **Uprawnienie** — opcjonalnie ogranicz dostęp do wybranego uprawnienia
4. Zapisz
5. Włącz moduł w **Konto → Moduły** (`/account/modules`) — pojawi się w menu

## URL z wildcard

URL modułu może kończyć się na `/*` — wtedy łapie sam adres bazowy i wszystkie podścieżki:

- `myapp/*` — działa pod `/myapp`, `/myapp/dashboard`, `/myapp/settings/profile` itd.
- Podścieżka trafia do modułu jako kontekst nawigacji

Exact URL (bez `/*`) odpowiada tylko na dokładny adres. Jeśli istnieje moduł z dokładnym URL-em i jednocześnie inny z wildcardem - dokładny ma priorytet.

## Rozszerzanie istniejących modułów

Chcesz dodać nową opcję do istniejącego modułu, np. dodatkową stronę w sekcji Organize lub nowy widok w CRM? Wystarczy użyć `/` w URL modułu.

Wpisz jako URL **nazwę istniejącego modułu**, ukośnik `/` i **nazwę nowej opcji**. Nowa pozycja pojawi się automatycznie w menu tego modułu, obok standardowych opcji.

### Przykłady

| URL modułu | Efekt |
|---|---|
| `organize/raporty` | Nowa pozycja **Raporty** w menu **Organize** |
| `crm/analiza` | Nowa pozycja **Analiza** w menu **CRM** |
| `helpdesk/faq` | Nowa pozycja **FAQ** w menu **Helpdesk** |

## Kontrola dostępu

Każdy moduł może mieć ustawione **uprawnienie** (privilege). Jeśli jest ustawione, moduł widzi i może otworzyć tylko użytkownik z tym uprawnieniem. Jeśli pole jest puste — moduł jest dostępny dla wszystkich zalogowanych użytkowników.

## Adresy URL

Każdy moduł jest dostępny pod dwoma adresami:

- **Czysty URL**: `/url-modulu` (np. `/raporty`) — główna ścieżka
- **Bezpiecznik**: `/m/url-modulu` (np. `/m/raporty`) — zawsze działa, nawet jeśli URL koliduje z istniejącym modułem

---

## API

### Ogólne API

# Intum API

Dokumentacja API platformy [Intum](https://intum.pl) - system operacyjny firmy.

## Host

Host jest zawsze taki sam jak adres konta: `xxxx.intum.com` lub `xxx.intum.pl` (w zależności od ustawień konta)

## Autoryzacja

Wszystkie requesty API wymagają `api_token`:
- header: `Authorization: Bearer TOKEN`

Token możesz wygenerować w **Ustawienia Konta** → **Tokeny API**



---

## Powiązane

- [Tworzenie własnego SaaS-a na bazie intum](https://intum.pl/pomoc/platforma-tworcow/wlasny-saas.md)
- [Udostępnianie modułów innym użytkownikom](https://intum.pl/pomoc/platforma-tworcow/udostepnianie-modulow.md)
