Framework
Klar ist, dass Kajona eine strenge Trennung der Logik von der Präsentation verfolgt. Ebenso ist die Datenhaltung / die Persistenz an sich von den beiden erwähnten Schichten zu trennen. Daraus ergibt sich ein dreistufiger Aufbau des Systems:

Deutlich werden soll hier, dass es keine direkte Verbindung der Präsentationsschicht und der Datenbank gibt. Nur so können Sicherheitsmechanismen effektiv implementiert werden. Ein weiterer Vorteil ist, dass ein Entwickler der Präsentationsschicht nicht den Aufbau der Datenbank kennen muss. Er fordert die benötigten Daten einfach beim Model an, und freut sich dann des Lebens. Wie die Daten vom Model beschaffen werden, ist der Präsentation prinzipiell egal.
Analog verhält es sich mit der Relation des Models zur Datenbank. Dem Model ist es egal, ob die Datenbankschicht die Werte in eine Datenbank, oder in eine XML-Datei schreibt. So lange das Model die Daten erhält, ist alles wunderbar.
Diese Gegebenheiten prägen des Framework-Charakter des Systems. Alle Schnittstellen sind sauber definiert, so dass ein Erweitern des Systems einfach und schnell vorgenommen werden kann.
Des Weiteren wird in Kajona strikt zwischen Portal und Administration unterschieden. Das Portal wird zur Darstellung der Inhalte verwendet, die Administration zur Erfassung und Bearbeitung der Inhalte sowie zur Verwaltung des Systems.
Bei einer Anfrage an das System wird also, je nach Art der Anfrage, in das Portal oder die Adminstration verzweigt.

Module
Kajona ist modular aufgebaut. Das bedeutet, dass zusammengehörige Funktionen in Modulen gebündelt werden, und somit nur bei Bedarf in das System installiert werden. Das Erweitern eines bestehenden Systems kann auf Grund dieser Modularität jederzeit vorgenommen werden. Besteht Bedarf für eine Downloadverwaltung, so kann das Modul „Downloads“ nachträglich in das System installiert werden, um dieses um die nun benötigten Funktionen zu erweitern.
Der Aufbau eines Moduls ist hierbei klar definiert und besteht aus festen Blöcken:

Datenbank
Kajona benötigt eine Datenbank, um die Inhalte, die über die Administration erfasst werden, speichern zu können. Aktuell existieren Treiber für MySQL, denkbar ist aber jede andere SQL-fähige Datenbank.
Das Datenbankschema von Kajona ist dabei von den nachfolgenden Eigenschaften gekennzeichnet.
Global Unique Ids (GUIDs).
Guids sind über die Systemgrenze hinweg eindeutig. Dies hat dann Vorteile, wenn man Datensätze des aktuellen Systems in ein Fremdsystem importieren möchte. Da die Erzeugung der IDs nicht die Datenbank, sondern Kajona übernimmt, sind die Ids bereits vor dem Einfügen in die Datenbank bekannt. Ein Rückfragen der verwendeten ID nach einem Insert entfällt also.
Ebenso werden keine zusätzlichen Referenzschlüssel mehr benötigt, da alle Primärschlüssel auf Grund der GUIDs ja bereits eindeutig sind und somit direkt referenziert werden können.
Systemtabelle.
Die Systemtabelle dient als zentrale Verwaltungsinstanz und bildet die Strukturen des Systems ab. Verwendet wird hierfür eine Baumstruktur.
Benötigt man mehr Details zu einem Datensatz, als in der Systemtabelle vorhanden, so können diese über JOINs aus weiteren Tabellen hinzu verknüpft werden. Dazu gehören Tabellen wie die Rechte-Tabelle, Datum-Tabelle, Element-Tabelle oder die Modul-Tabelle.
Benötigt man einen Ausschnitt aus der Baumstruktur, so wird einfach die Systemtabelle mit sich selbst verknüpft.

Rechtesystem
Das Rechtesystem in Kajona orientiert sich an der bereits beschriebenen Baumstruktur der Systemtabelle. Auf Grund dieses Aufbaus ist eine rekursive Rechtevergabe innerhalb des Systems möglich, Datensätze können also von übergeordneten Datensätzen ihre Rechte erben.
Diese Kette der Vererbung kann an jeder Stelle der Hierarchie unterbrochen werden. Angenommen, es gibt ein paar Seiten, die nur registrierten Benutzern zur Verfügung stehen sollen, so benötigen diese spezielle Rechte. Der eine Weg wäre nun, die Rechte jeder Seite anzupassen. Der schönere Weg aber ist, alle Seiten in einem Ordner abzulegen. Diesem Ordner gibt man dann die angepassten Rechte – die darin enthaltenen Seiten und Unterordner erben dann automatisch die angepassten Rechte. Diesen Sachverhalt soll auch die nächste Grafik erläutern.

Vom Konzept der Rechtevergabe her ist das Rechtesystem an dem von UNIX angelehnt. Die Vergabe von Rechten erfolgt also nicht per User, sondern per Gruppe. Hierbei gilt, das beliebig viele Benutzer in beliebig vielen Gruppen Mitglied sein dürfen.
Da die Rechte aber Gruppenabhängig vergeben werden gilt ebenso: Ein User ohne Gruppe ist ein User ohne Rechte. Dieser hat dann gegenbenenfalls sogar weniger Rechte als ein Gast!
Es gibt in Kajona zwei vordefinierte Gruppen: Gäste und Administratoren. Gäste sind all die Benutzer, die nicht angemeldet sind. Mitglieder der Gruppe Administratoren hingegen haben superglobale Admin-Rechte, dürfen also alles.


