3.2. Global Unique Identifier (GUID) pour Vitam

3.2.1. Spécifier ProcessId

Pour surcharger/spécifier le processId, qui par défaut prend la valeur du PID du processus Java, il faut utiliser la property suivante:

-Dfr.gouv.vitam.processId=nnnnn

Où nnnnn est un nombre entre 0 et 2^22 (4194304).

3.2.2. GUID Factory

Usage:

Il faut utiliser le helper approprié en fonction du type d’objet pour lequel on souhaite créer un GUID.

3.2.2.1. Pour la partie interne Vitam

  • Obligatoire en Interne Vitam: le ServerIdentity doit être initialisé (inutile en mode client Vitam)
ServerIdentity.getInstance.setFromMap(Map);
ServerIdentity.getInstance.setFromPropertyFile(File);
ServerIdentity.getInstance.setName(String).setRole(String).setPlatformId(int);
  • Pour un Unit et son Unit Logbook associé :
GUID unitGuid = GUIDFactory.newUnitGUID(tenantId);
  • Pour un ObjectGroup et son ObjectGroup Logbook associé :
GUID objectGroupGuid = GUIDFactory.newObjectGroupGUID(tenantId);
// or
GUID objectGroupGuid = GUIDFactory.newObjectGroupGUID(unitParentGUID);
  • Pour un Object et son Binary object associé :
GUID objectGuid = GUIDFactory.newObjectGUID(tenantId);
// or
GUID objectGuid = GUIDFactory.newObjectGUID(objectGroupParentGUID);
  • Pour une Opération (process):
GUID operationGuid = GUIDFactory.newOperationIdGUID(tenantId);
  • Pour un Request Id (X-Request-Id) :
GUID requestIdGuid = GUIDFactory.newRequestIdGUID(tenantId);
  • Pour un SIP / Manifest / Seda like informations Id:
GUID manifestGuid = GUIDFactory.newManifestGUID(tenantId);
  • Pour un Logbook daily Id (Operation, Write):
GUID writeLogbookGuid = GUIDFactory.newWriteLogbookGUID(tenantId);
  • Pour un storage operation Id:
GUID storageOperationGuid = GUIDFactory.newStorageOperationGUID(tenantId);
  • Pour savoir si un GUID est par défaut associé à une Règle WORM :
GUID storageOperationGuid.isWorm();

3.2.2.2. Pour la partie interne et public Vitam

  • Pour récupérer un GUID depuis sa réprésentation :
GUID guid = GUIDReader.getGUID(stringGuid);
GUID guid = GUIDReader.getGUID(byteArrayGuid);

Où le « stringGuid » peut être dans sa forme BASE16 / BASE32 / BASE64 ou ARK.

3.2.3. Attention

  • Personne ne devrait utiliser les helpers constructeurs directs (newUuid). * Ces méthodes sont réservées à des usages spéciaux futurs non encore définis.