update project with new architecture

This commit is contained in:
2023-04-13 07:46:35 +02:00
parent d0a3b10cfe
commit 67a02c33a2
333 changed files with 3764 additions and 1254 deletions

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,4 @@
{
"schema":"nationchains/schema/schemas.json",
"lastupdate":0
}

View File

@@ -0,0 +1,19 @@
{
"title":"Nation definition",
"description":"A nation from apXtrib social world",
"$comment":"",
"properties":{
"nationId":{
"title":"Unique nation name",
"description":"A unique string that define a nation a-z and 0-9 onlyin a social world"
},
"dtcreate":{
"title":"Creation date",
"description":"Nation date of creation"
},
"contracts":{
"title":"Social contract of the nation",
"description":"A uri of the signed js contract that rules this nation"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"nationnamedesc":"Nom unique d'une nation dans un monde social",
"nationnamedesclong":"Nom unique identifiant une nation dans le monde social créer par un maire d'une nouvelle ville avec un contrat sociale specifique",
"nationnameinfo":"<p> Une nation posséde un nom unique, un contrat sociale (contracts/name.js) signé et validé par tous les maires des villes associées à cette nation </p>",
"statusdesc":"Statut de la nation",
"statusactive":"Nation active"
}

View File

@@ -0,0 +1,42 @@
{
"ERRcritical": "Critical Error",
"loginAlreadyExist": "Login already exists",
"emailAlreadyExist":"Email already exists",
"failtoWritefs":"Fail to write on system",
"successfullCreate": "Successfully created",
"successfullDelete": "Successfully deleted",
"serverNeedAuthentification":"This server needs authentification",
"forbiddenAccess":"Forbidden Access",
"userNotAllowtoCreate":"User is not allow to create",
"userNotAllowtoUpdate":"User is not allow to update",
"userNotAllowtoDelet":"User is not allow to delete",
"uuidNotFound":"Paggans {{uuid}} not found for {{tribeName}}",
"useremailNotfound":"Email not found",
"loginDoesNotExist":" Login does not exist",
"checkCredentials":" Check yopur credentials"
"wrongPassword":"Check your password",
"invalidData":"Check your data",
"pswToosimple":"Password too simple, need to contain at least 8 caracters lower and uppercase, number and @! ...",
"ERRemail":"Check your email",
"ERRnewnewbisdiff":"Both password are not the same",
"paganiddesc":"unique id",
"paganiddesclong":"Unique Identification based on UUID.v4()",
"paganidinfo":"<p> UUID v4 allow a client to generate a unique code without centralisation, base on a timestamp and a salt it looks like 7d8291c0-e137-11e8-9f7b-1dc8e57bed33</p>",
"logindesc":"login",
"logininfo":"<p>Login have to be unique into a town (composed of letter: a to z and 0 to 9)</p><p> To exchange outside of a town, we use PublicKey / uuid or login@tribeId.townId.nationId.dns</p>",
"pswdesc":"A strong password minimum 8char uper lower number specialm char",
"biographydesc":"Few words about you",
"publickeyinfo":"<p>This key was generated by your browser, keep the private key related to this public key.</p><p>We garanty your total control by this way</p>.",
"imgavatardesc":"Upload an avatar",
"imgavatarinfo":"For best results, use an image at least 128px by 128px in .jpg format",
"emaildesc":"Email de recuperation de mot de passe",
"telephonedesc":"Phone",
"familyNamedesc":"Last name",
"givenNamedesc":"First name",
"additionalNamedesc":"Nickname",
"additionalNamesinfo":"<p>Carrefull a pseudo is unique into an instance of apxtrib to be sure to contact the right person check pseudo@ domain</p>.<p> Pseudo can be changed that is not the case of login.</p>",
"dtcreatedesc":"Creation date",
"dtupdatedesc":"last update",
"dtlastlogindesc":"Last login access",
"accessrightsdesc":"Your accessrigts"
}

View File

@@ -0,0 +1,41 @@
{
"ERRcritical": "Erreur critique",
"loginAlreadyExist": "Ce login exist déjà",
"emailAlreadyExist":"Cet email exist déjà",
"failtoWritefs":"Impossible d'ecrire sur le serveur",
"successfullCreate": "Création réussit",
"successfullDelete": "Mise à jour effectuée",
"serverNeedAuthentification":"Ce serveur a besoin d'une authentification",
"forbiddenAccess":"Accès interdit",
"userNotAllowtoCreate":"Pas d'autorisation de creation",
"userNotAllowtoUpdate":"Pas d'autorisatiuon de mise à jour",
"userNotAllowtoDelet":"Pas d'autorisation de suppression",
"uuidNotFound":"Le paîen {{uuid}} n'existe pas dans la tribu {{tribeName}}",
"useremailNotfound":"Email introuvable",
"loginDoesNotExist":" Login introuvable",
"checkCredentials":" Vérifier vos parametres d'accès"
"wrongPassword":"Vérifier votre mot de passe",
"invalidData":"Vérifier vos données",
"pswToosimple":"Votre mot de passe est trop simple, doit contenir au moins 8 caractères avec des lettres majusculmes, minuscules des nombres et au moins un caractere special @! ...",
"ERRemail":"Vérifier votre email",
"ERRnewnewbisdiff":"Les 2 mots de passe ne sont pas identique",
"uuiddesc":"Identifiant",
"uuiddesclong":"Identifiant unique au format UUID.v4()",
"uuidinfo":"<p> L'usage d'UUID v4 permet de générer un code unique sans centralisation, car il est basé sur un timestamp et une clé crypto ce qui donne un code du type 7d8291c0-e137-11e8-9f7b-1dc8e57bed33 </p>",
"logindesc":"login",
"logininfo":"<p>Le login doit être unique sur une instance d'apxtrib.</p><p> Pour échanger en dehors d'une instance apxtrib on utilise la clé public du user ou pour un humain login@trib.town§.nation.xx avec le nom du domaine qui heberge l'instance</p><p> Ou encore login@domain.xx tout domain.xx utilisé pour heberger un espace web client /tribeid/www/</p>",
"biographydesc":"Vous en quelques mots",
"publickeyinfo":"<p>Cette clé est générée par votre navigateur, garder précisuesement votre clé privée que seule vous connaissez. En cas de perte de cette clé tous vos actifs seront perdus.</p><p>Cette méthode nous permet de vous garantir un contrôle total décentralisé.</p>",
"imgavatardesc":"Changer votren avatar",
"imgavatarinfo":"Pour un meilleur rendu, une mage carré de 128pc en foat jpg",
"emaildesc":"Email",
"telephonedesc":"Tel",
"familyNamedesc":"Nom",
"givenNamedesc":"Prénom",
"additionalNamedesc":"Pseudo",
"additionalNamesinfo":"<p>Nom avec lequel vous souhaitez qu'on vous reconnaisse sur l'instance de l'apxtrib </p><p>Attention ce nom n'est unique que sur une instance d'apxtrib. Un même speudo peut-être utilisé sur un autre serveur pour garantir l'identité vérifié pseudo@ domaine de rattachement.</p>",
"dtcreatedesc":"Date de creation",
"dtupdatedesc":"Dernière mise à jour",
"dtlastlogindesc":"Dernier accès au login",
"accessrightsdesc":"Vos droits d'accès"
}

View File

@@ -0,0 +1,8 @@
{
"townnamedesc":"A unique town name in a nation for a social world",
"townnamedesclong":"Unique town name in the social world created by a mayor.",
"townnameinfo":"<p> A town is defined by this unique name and a contratcs/townname.js signed by each druid that create a tribe inside this town</p>",
"antsnationdesc":"ants nation",
"statusdesc":"Town's status",
"statusactive":"Active Town"
}

View File

@@ -0,0 +1,8 @@
{
"townnamedesc":"Nom unique d'une ville dans une nation",
"townnamedesclong":"Nom unique identifiant une ville dans une nation d'un monde social, créer par un maire d'une nouvelle ville avec un contrat sociale specifique",
"townnameinfo":"<p> Une ville posséde un nom unique, un contrat sociale (contracts/name.js) signé et validé par tous les maires des villes associées à cette nation </p>",
"antsnationdesc":"nation des ants",
"statusdesc":"Statut de la ville",
"statusactive":"Ville active"
}

View File

@@ -0,0 +1,28 @@
{
"$schema":"http://json-schema.org/schema#",
"$id":"nationchains/socialworld/objects/schema/nations",
"title": "Nation definition",
"description": "A nation from apXtrib world",
"$comment":"see ./lg/nations_lg.json for description in your languange lg",
"type": "object",
"properties": {
"nationId": {
"type": "string",
"pattern":"^[a-z0-9]*$"
},
"dtcreate": {
"type": "string",
"format":"datetime"
},
"contracts":{
"type": "string",
"format":"uri"
}
},
"required": ["nationId", "dtcreate","contracts"],
"additionalProperties":false,
"apxprimarykey":["nationId"],
"apxsearchindex": [
{ "key": "nationId", "value": [] }
]
}

86
nationchains/schema/pagans.json Executable file
View File

@@ -0,0 +1,86 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "nationchains/schema/pagans",
"title":"Pagan definition",
"description": "A pagan is an uuid to manage identity by deliver a way to its owner to proof he owns from a privatekey in the socialworld of apXtrib and manage access keys deliver by druid or mayor to interact physical ressource (CRUD on it).",
"type": "objects",
"properties":{
"paganId":{
"description": "|Pagans|paganiddesc",
"apxdesclong": "|Pagans|paganiddesclong"
"apxinfo":"|Pagans|paganidinfo",
"type": "string",
"apxtype":"uuidv4"
},
"login":{
"description": "|Pagans|logindesc",
"type": "string",
"pattern":"^[a-z0-9]*$",
"apxinfo": "|Pagans|logininfo"
},
"password":{
"description": "|Pagans|pswdesc",
"type": "string"
},
"townId":{
"description":"",
"type":"string",
"$apxenumkey": "socialworld/objects/nations/searchindex/towns_townId_all.json"
},
"tribeId":{
"description":"",
"type":"string",
"$apxenumkey": "tribes/objects/tribes/searchindex/tribes_tribeId_all.json"
},
"publicKey":{
"description": "|Pagans|publickeydesc",
"type":"string",
"apxinfo": "|Pagans|publickeyinfo"
},
"biography":{
"description": "|Pagans|biographydesc",
"type":"string",
"pattern":"^.{O,150}$"
},
"imgavatar":{
"description": "|Pagans|imgavatardesc",
"apxinfo": "|Pagans|imgavatarinfo",
"type":"string",
"apxtype":"file"
},
"emailrecup":{
"description":"|Pagans|emaildesc",
"tpl": "input",
"type": "email",
"check": ["emailadress", "unique"],
},
"dtcreate":{
"description": "|Pagans|dtcreatedesc",
"type":"string",
"pattern":"^[0-9]{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$",
"default": "moment(new Date()).format('YYYY-MM-DD')"
},"dtupdate": {
"description": "|Pagans|dtupdatedesc",
"type":"string",
"pattern":"^[0-9]{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$",
"default": "moment(new Date()).format('YYYY-MM-DD')"
},"dtlastlogin" {
"description": "|Pagans|dtlastlogindesc",
"type":"string",
"pattern":"^[0-9]{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$",
"default": "moment(new Date()).format('YYYY-MM-DD')"
},"accessrights": {
"description": "|Pagans|accessrightsdesc",
"type":"object",
"$ref":"socialworld/schema/accessright.json"
}
},
"required": ["paganId","login","townId", "tribeId"],
"apxprimarykey": "paganId",
"apxunique":["login"],
"apxsearchindex": [
{ "key": "login", "value": "paganId" },
{ "key": "email", "value": "paganId" },
{ "key": "token", "value": "paganId" }
]
}

View File

@@ -0,0 +1,45 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "socialworld/objects/schema/towns",
"title": "Town",
"description": "A town belonging to a nation from apXtrib world",
"type": "object",
"properties": {
"townId": {
"description": "|Towns|townnamedesc",
"desclong": "|Townss|townnamedesclong",
"info": "|Towns|townnameinfo",
"type": "string",
"pattern":"^[a-z0-9]*$"
},
"nationId": {
"description": "|Towns|nationdesc",
"desclong": "|Townss|nationdesclong",
"type": "string",
"$apxenumkey": "socialworld/objects/nations/searchindex/nations_uuid_uuid.json"
},
"status": {
"desc": "|Towns|statusdesc",
"default": "active",
"type": "string",
"$apxenumkey": "data",
"data": {
"chain": { "desc": "|Towns|statuschain" },
"tochain": { "desc": "|Towns|statustosync" },
"unchain": { "desc": "|Towns|statusunchain" }
}
},
"url": {
"desc": "|Towns|urldesc",
"type": "string",
"apxtype":"url"
}
},
"required": ["townId", "status", "nationId", "url"],
"apxprimarykey": "townId",
"apxsearchindex": [
{ "key": "status", "value": "townId" },
{ "key": "nationId", "value": "townId" },
{ "key": "townId", "value": [] }
]
}

View File

@@ -0,0 +1,45 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "nationchains/schema/tribes",
"title": "Tribes",
"description": "A tribe belonging to a town",
"type": "object",
"properties": {
"townId": {
"description": "|Towns|townnamedesc",
"desclong": "|Townss|townnamedesclong",
"info": "|Towns|townnameinfo",
"type": "string",
"pattern":"^[a-z0-9]*$"
},
"nationId": {
"description": "|Towns|nationdesc",
"desclong": "|Townss|nationdesclong",
"type": "string",
"$apxenumkey": "socialworld/objects/nations/searchindex/nations_uuid_uuid.json"
},
"status": {
"desc": "|Towns|statusdesc",
"default": "active",
"type": "string",
"$apxenumkey": "data",
"data": {
"chain": { "desc": "|Towns|statuschain" },
"tochain": { "desc": "|Towns|statustosync" },
"unchain": { "desc": "|Towns|statusunchain" }
}
},
"url": {
"desc": "|Towns|urldesc",
"type": "string",
"apxtype":"url"
}
},
"required": ["townId", "status", "nationId", "url"],
"apxprimarykey": "townId",
"apxsearchindex": [
{ "key": "status", "value": "townId" },
{ "key": "nationId", "value": "townId" },
{ "key": "townId", "value": [] }
]
}

View File

@@ -0,0 +1,45 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "nationchains/schema/www",
"title": "Town",
"description": "A pace web available for a domaine, with accessright",
"type": "object",
"properties": {
"townId": {
"description": "|Towns|townnamedesc",
"desclong": "|Townss|townnamedesclong",
"info": "|Towns|townnameinfo",
"type": "string",
"pattern":"^[a-z0-9]*$"
},
"nationId": {
"description": "|Towns|nationdesc",
"desclong": "|Townss|nationdesclong",
"type": "string",
"$apxenumkey": "socialworld/objects/nations/searchindex/nations_uuid_uuid.json"
},
"status": {
"desc": "|Towns|statusdesc",
"default": "active",
"type": "string",
"$apxenumkey": "data",
"data": {
"chain": { "desc": "|Towns|statuschain" },
"tochain": { "desc": "|Towns|statustosync" },
"unchain": { "desc": "|Towns|statusunchain" }
}
},
"url": {
"desc": "|Towns|urldesc",
"type": "string",
"apxtype":"url"
}
},
"required": ["townId", "status", "nationId", "url"],
"apxprimarykey": "townId",
"apxsearchindex": [
{ "key": "status", "value": "townId" },
{ "key": "nationId", "value": "townId" },
{ "key": "townId", "value": [] }
]
}