NotariumҚұжаттама
Құжаттама нұсқасы: latest
KZ

Кеңістіктер мен жобалар

Notarium ұйымдастырудың екі бірлігін ажыратады: кеңістік (space) — оқшауланған қор әрі қауіпсіздік шекарасы, және жоба — кеңістіктің ішіндегі белгіленген қалта. Бұл — әртүрлі міндеті бар түрлі нысандар: кеңістік оқшаулайды, жоба жұмысты ұйымдастырады.

Кеңістік — оқшаулау бірлігі

Кеңістік — өзіне-өзі жеткілікті білім қоры: өз индексі, графы, іздеуі, ағашы, тарих журналы және өз қатысушылар құрамы бар. Кеңістіктер қиылыспайды: біреуінің жазбалары, іздеуі мен байланыстары екіншісінен көрінбейді. Кеңістік бірден екі рөл атқарады — ұйымдастыру («жеке» / «жұмыс» / «мұрағат») және қауіпсіздік шекарасы: кім нені көретіні дәл кеңістік деңгейінде шешіледі.

  • Әр кеңістікке нақ бір қозғалтқыш данасы қызмет етеді — оқшаулауды сәулеттің өзі қамтамасыз етеді.
  • Кеңістіктің бірегейлігі — тұрақты ішкі space_id; slug (URL-safe: кіші латын әріптері, цифрлар, дефистер мен астын сызулар — [a-z0-9_-]) — қайта аталатын мекенжай әрі URL-хэндл, ал displayName — адам оқитын белгі. Slug-ты қайта атау қауіпсіз: ескі атау alias-тарихқа өтіп, әрі қарай резолвтеле береді (/s/<ескі> ағымдағыға редиректтейді).
  • Мекенжайлау: интерфейсте /s/<slug> және REST-те /api/s/<slug>/….

Рөлдер мен құпиялылық туралы толығырақ — Қатынау моделі бөлімінде.

Жеке кеңістік

Әр пайдаланушыда жеке кеңістік — оның әдепкі үйі — кепілдікпен болады:

  • ол есептік жазба берілгенде құрылады және жойылмайды;
  • әдепкі лендинг ретінде қызмет етеді әрі агенттердің сіз туралы жеке жадын мен профиліңізді сақтайды;
  • бұл — толыққанды жұмыс кеңістігі: бөлек ештеңе ашпай-ақ, онда бірден жазба жүргізіп, жобаларды белгілеуге болады.
Жеке кеңістікке екінші қатысушыны шақыруға болмайды

Бұл — жеке кеңістіктің әдеттегіден жалғыз айырмашылығы. Оқуға қатынауы бар басқа қатысушы сіздің жеке жадыңыз бен жеке жазбаларыңызды көрер еді — сондықтан жеке кеңістікке шақырулар интерфейсте жасырылып қана қоймай, серверде тыйым салынған.

Жоба — белгіленген қалта

Жоба — жеңіл, міндетті емес нысан: кеңістіктің ішіндегі жоба деп белгіленген қарапайым қалта-ішкіағаш. Контент міндетті түрде жобаларда тұрмауы да мүмкін — белгіленбеген қалта жай ғана қалта болып қала береді.

Белгі — қалтаның түбіріндегі .notariummeta dot-файлы (тұрақты id бар JSON). Ол кез келген жылжытуда, оның ішінде сыртқы (git, файл менеджері) жылжытуда да қалтамен бірге саяхаттайды — жобаның бірегейлігі тек дерекқорда емес, қалтаның өзінде зәкірленеді.

myspace/
├─ research/
│  └─ .notariummeta      ← белгіленген қалта = жоба
├─ inbox/                ← қарапайым қалта (жоба емес)
└─ ...
  • Мекенжайлау — (space, slug) хэндлі GitLab-тың group/project моделі бойынша. Жобаның slug-ы кеңістік ішінде бірегей; кеңістіктер арасындағы аттас жобаларды space өрісі ажыратады. Түбірлік жоба жай ғана <space>-ке жиырылады (мысалы, main, main/main емес).
  • Жобаның slug-ыdisplayName-нен немесе жолдың соңғы сегментінен (бүкіл жолдан емес) транслитерацияланған kebab-тұлға.
  • Қалтаны белгілеу, белгіні алып тастау немесе «New project» құру — адамның әрекеттері (space:write рұқсаты). Агент контейнерлер құрмайды: ол мазмұнның иесі, ал адам — құрылымның иесі.
  • Кеңістік құру оның түбірін жоба ретінде автоматты белгілейді — агент қолмен белгілемей-ақ, <space>-ке бірден жаза алуы үшін.

Жоба — ауқым әрі мекенжай, бірақ қауіпсіздік шекарасы емес: қатынау туралы шешім әрдайым кеңістіктегі мүшелікте қалады. Агент жобаларды қалай мекенжайлайтыны — Ниет құралдары бөлімінде.

Талаптар мен шекаралар

Жобалар қызметтік дерекқор мен жергілікті белгілер қоймасына сүйенеді — оларсыз жобаны ашу мүмкін емес.