ICT:FinalConfig - Asset - v1
Final Configuration for the DigitalAsset Entity (v1 – No Numbering)
Document revision: 2026-02-17 by Mngr
This document defines the first stable implementation of the DigitalAsset entity. This version deliberately excludes automatic numbering, Lua modules, and JavaScript.
The objective of v1 is to validate: - entity structure - foreign keys - recursion - dashboard interaction - long-term compatibility with future deterministic identifiers
This configuration follows exactly the same architectural rules as the Organisation entity.
Numbering and identifier automation will be introduced in a later version once the structural baseline is validated with real data.
Design Principles
The DigitalAsset entity follows these non-negotiable rules:
- The page name is the immutable technical identifier (**Code**)
- All relations use the page name as foreign key
- The Label is optional and human-readable
- All interaction happens via dashboards and forms
- Pages are configuration records and must not be browsed directly
- Explicit configuration is preferred over implicit automation
Cargo Table
Template:DigitalAsset
<noinclude>
DigitalAsset data template (v1 – no numbering)
</noinclude>
{{#cargo_declare:
|_table=DigitalAssets
|Code=Page
|Label=String
|Chapter=Page
|Place=Page
|Organisation=Page
|Parent=Page
|AssetSourceType=Page
|AssetType=Page
|File=Page
|Language=String
|Description=Text
|Notes=Text
|AIProcessed=Boolean
|CitationText=Text
|Permalink=String
|Repository=String
|Rights=String
|IsPublishable=Boolean
}}
{{#cargo_store:
|Code={{FULLPAGENAME}}
|Label={{{Label|}}}
|Chapter={{{Chapter|}}}
|Place={{{Place|}}}
|Organisation={{{Organisation|}}}
|Parent={{{Parent|}}}
|AssetSourceType={{{AssetSourceType|}}}
|AssetType={{{AssetType|}}}
|File={{{File|}}}
|Language={{{Language|}}}
|Description={{{Description|}}}
|Notes={{{Notes|}}}
|AIProcessed={{{AIProcessed|}}}
|CitationText={{{CitationText|}}}
|Permalink={{{Permalink|}}}
|Repository={{{Repository|}}}
|Rights={{{Rights|}}}
|IsPublishable={{{IsPublishable|}}}
}}
== {{{Label|{{PAGENAME}}}}} ==
{{DISPLAYTITLE:{{{Label|{{PAGENAME}}}}}}}
Once the template is created, the Cargo table must be created manually. If the table structure is modified, the table must be recreated and swapped via the Cargo administration interface.
The field Code stores the full page name and acts as the stable technical identifier used for all relations.
Page Form
Form:DigitalAsset
<noinclude>
Form for creating and editing DigitalAsset pages (v1).
</noinclude>
{{{info
|no summary
|no preview
|no minor edit
|no watch
|no footer
}}}
''Fields marked with (*) are required.''
{{{for template|DigitalAsset}}}
{| class="formtable"
! Code
| {{PAGENAME}}
|-
! Label
| {{{field|Label}}}
|-
! Chapter (*)
| {{{field|Chapter
|input type=combobox
|values from namespace=Chapter
|existing values only
}}}
|-
! Place
| {{{field|Place
|input type=combobox
|values from namespace=Place
|existing values only
|placeholder=Optional – leave empty if using Organisation
}}}
|-
! Organisation
| {{{field|Organisation
|input type=combobox
|values from namespace=Organisation
|existing values only
|placeholder=Optional – leave empty if using Place
}}}
|-
! Parent asset
| {{{field|Parent
|input type=combobox
|values from namespace=DigitalAsset
|existing values only
|placeholder=Top level (no parent)
}}}
|-
! Asset source type
| {{{field|AssetSourceType
|input type=combobox
|values from namespace=AssetSourceType
|existing values only
}}}
|-
! Asset type
| {{{field|AssetType
|input type=combobox
|values from namespace=AssetType
|existing values only
}}}
|-
! File
| {{{field|File
|input type=upload
}}}
|-
! Language
| {{{field|Language|input type=text|size=20}}}
|-
! Description
| {{{field|Description|input type=textarea}}}
|-
! Notes
| {{{field|Notes|input type=textarea}}}
|-
! AI processed
| {{{field|AIProcessed|input type=checkbox}}}
|-
! Citation text
| {{{field|CitationText|input type=textarea}}}
|-
! Permalink
| {{{field|Permalink|input type=text|size=60}}}
|-
! Repository
| {{{field|Repository|input type=text|size=60}}}
|-
! Rights
| {{{field|Rights|input type=text|size=60}}}
|-
! Publishable
| {{{field|IsPublishable|input type=checkbox}}}
|}
{{{standard input|save}}}
{{{end template}}}
The Page Form intentionally avoids: - automatic page name generation - JavaScript logic - mandatory field flags
Mandatory requirements are communicated via text and enforced by user discipline in this version.
Dashboard Page
Dashboard:DigitalAsset
= 🗂️ Costa Sano Research DIGITAL ASSET Dashboard =
📖 [[Dashboard:DigitalAsset/Help|Need Help?]]
{| class="wikitable sortable"
! Code !! Label !! Chapter !! Place !! Organisation !! Type
{{#cargo_query:
tables=DigitalAssets
|fields=_pageName,_pageTitle,Label,Chapter,Place,Organisation,AssetType
|where=_pageNamespace=3014
|order by=_pageTitle
|format=template
|template=DigitalAssetRow
|named args=yes
|cache=no
}}
|}
Choose an asset code corresponding to the table above and respecting the naming conventions.
{{#forminput:
form=DigitalAsset
|namespace=DigitalAsset
|button text=➕ New asset
|returnto=Dashboard:DigitalAsset
}}
<div style="text-align:right; font-size:90%;">
Last updated: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} – {{CURRENTTIME}} UTC
</div>
Dashboard tables are positional. The number and order of: - table headers - Cargo query fields - row template cells MUST match exactly.
Only the first column (Code) is clickable and leads to the edit form.
Row Transclusion Template
Template:DigitalAssetRow
<includeonly>
|-
| {{#formlink:
form=DigitalAsset
|target={{{_pageName}}}
|link text={{{_pageTitle}}}
|returnto=Dashboard:DigitalAsset
}}
| {{{Label}}}
| {{#if:{{{Chapter|}}}|{{#titleparts:{{{Chapter}}}|1}}|—}}
| {{#if:{{{Place|}}}|{{#titleparts:{{{Place}}}|1}}|—}}
| {{#if:{{{Organisation|}}}|{{#titleparts:{{{Organisation}}}|1}}|—}}
| {{#if:{{{AssetType|}}}|{{#titleparts:{{{AssetType}}}|1}}|—}}
</includeonly>
Parent, Place, Organisation, and AssetType are displayed as plain text to prevent navigation to record pages.
Example Asset Page (v1)
{{DigitalAsset
|Label=Photograph – Early Costa Sano activities
|Chapter=Chapter:CH03
|Place=Place:BERCK
|Organisation=
|AssetType=AssetType:Photo
|File=File:example.jpg
|Description=Photograph of early Costa Sano activities.
|Notes=Scanned from original archive.
|AIProcessed=true
|IsPublishable=true
}}
This page is a configuration record and must be accessed via the dashboard.
Status
This document defines **DigitalAsset v1**.
Automatic numbering, deterministic identifiers, Lua modules, and JavaScript will be introduced in a future version after structural validation.