ltisuite-26-0 0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. ltisuite_26_0-0/LICENSE +66 -0
  2. ltisuite_26_0-0/PKG-INFO +120 -0
  3. ltisuite_26_0-0/README.md +88 -0
  4. ltisuite_26_0-0/pyproject.toml +39 -0
  5. ltisuite_26_0-0/src/ltisuite_26_0/__init__.py +2 -0
  6. ltisuite_26_0-0/src/ltisuite_26_0/api/__init__.py +2 -0
  7. ltisuite_26_0-0/src/ltisuite_26_0/api/item.py +117 -0
  8. ltisuite_26_0-0/src/ltisuite_26_0/api/search.py +619 -0
  9. ltisuite_26_0-0/src/ltisuite_26_0/appsaas/__init__.py +2 -0
  10. ltisuite_26_0-0/src/ltisuite_26_0/appsaas/admininst.py +86 -0
  11. ltisuite_26_0-0/src/ltisuite_26_0/appsaas/dptresinstmgr.py +83 -0
  12. ltisuite_26_0-0/src/ltisuite_26_0/appsaas/instsbackupinplace.py +22 -0
  13. ltisuite_26_0-0/src/ltisuite_26_0/appsaas/instsclustermgr.py +85 -0
  14. ltisuite_26_0-0/src/ltisuite_26_0/common/__init__.py +2 -0
  15. ltisuite_26_0-0/src/ltisuite_26_0/common/servlet.py +12 -0
  16. ltisuite_26_0-0/src/ltisuite_26_0/common/svc.py +23 -0
  17. ltisuite_26_0-0/src/ltisuite_26_0/common/utils.py +131 -0
  18. ltisuite_26_0-0/src/ltisuite_26_0/core/__init__.py +2 -0
  19. ltisuite_26_0-0/src/ltisuite_26_0/core/actlogjson.py +7 -0
  20. ltisuite_26_0-0/src/ltisuite_26_0/core/adminserver.py +20 -0
  21. ltisuite_26_0-0/src/ltisuite_26_0/core/adminuser.py +113 -0
  22. ltisuite_26_0-0/src/ltisuite_26_0/core/backup.py +154 -0
  23. ltisuite_26_0-0/src/ltisuite_26_0/core/backupinplace.py +28 -0
  24. ltisuite_26_0-0/src/ltisuite_26_0/core/executor.py +72 -0
  25. ltisuite_26_0-0/src/ltisuite_26_0/core/maintenance.py +20 -0
  26. ltisuite_26_0-0/src/ltisuite_26_0/core/ping.py +8 -0
  27. ltisuite_26_0-0/src/ltisuite_26_0/core/strongbox.py +47 -0
  28. ltisuite_26_0-0/src/ltisuite_26_0/distrib/__init__.py +2 -0
  29. ltisuite_26_0-0/src/ltisuite_26_0/distrib/actor.py +8 -0
  30. ltisuite_26_0-0/src/ltisuite_26_0/distrib/engine.py +40 -0
  31. ltisuite_26_0-0/src/ltisuite_26_0/distrib/ltilaunch.py +53 -0
  32. ltisuite_26_0-0/src/ltisuite_26_0/distrib/ltimgr.py +33 -0
  33. ltisuite_26_0-0/src/ltisuite_26_0/distrib/ltisession.py +10 -0
  34. ltisuite_26_0-0/src/ltisuite_26_0/distrib/participant.py +8 -0
  35. ltisuite_26_0-0/src/ltisuite_26_0/distrib/projectAdmin.py +42 -0
  36. ltisuite_26_0-0/src/ltisuite_26_0/distrib/projectsonres.py +29 -0
  37. ltisuite_26_0-0/src/ltisuite_26_0/orient/__init__.py +2 -0
  38. ltisuite_26_0-0/src/ltisuite_26_0/orient/adminodb.py +38 -0
  39. ltisuite_26_0-0/src/ltisuite_26_0/portal.py +1122 -0
  40. ltisuite_26_0-0/src/ltisuite_26_0/portlets.py +428 -0
  41. ltisuite_26_0-0/src/ltisuite_26_0/public_default_conf.json +1 -0
  42. ltisuite_26_0-0/src/ltisuite_26_0/store/__init__.py +2 -0
  43. ltisuite_26_0-0/src/ltisuite_26_0/store/assetsctrl.py +16 -0
  44. ltisuite_26_0-0/src/ltisuite_26_0/store/cidserver.py +92 -0
  45. ltisuite_26_0-0/src/ltisuite_26_0/store/storesquare.py +30 -0
  46. ltisuite_26_0-0/src/ltisuite_26_0/system_default_conf.json +1 -0
  47. ltisuite_26_0-0/src/ltisuite_26_0/urltree/__init__.py +2 -0
  48. ltisuite_26_0-0/src/ltisuite_26_0/urltree/servlets.py +63 -0
  49. ltisuite_26_0-0/src/ltisuite_26_0/wsp/__init__.py +2 -0
  50. ltisuite_26_0-0/src/ltisuite_26_0/wsp/adminpack.py +247 -0
  51. ltisuite_26_0-0/src/ltisuite_26_0/wsp/adminwsp.py +258 -0
  52. ltisuite_26_0-0/src/ltisuite_26_0/wsp/drf.py +21 -0
  53. ltisuite_26_0-0/src/ltisuite_26_0/wsp/drv.py +40 -0
  54. ltisuite_26_0-0/src/ltisuite_26_0/wsp/export.py +99 -0
  55. ltisuite_26_0-0/src/ltisuite_26_0/wsp/gen.py +73 -0
  56. ltisuite_26_0-0/src/ltisuite_26_0/wsp/history.py +36 -0
  57. ltisuite_26_0-0/src/ltisuite_26_0/wsp/importSvc.py +28 -0
  58. ltisuite_26_0-0/src/ltisuite_26_0/wsp/itemdyngen.py +25 -0
  59. ltisuite_26_0-0/src/ltisuite_26_0/wsp/itemtype.py +32 -0
  60. ltisuite_26_0-0/src/ltisuite_26_0/wsp/lifecycle.py +29 -0
  61. ltisuite_26_0-0/src/ltisuite_26_0/wsp/search.py +22 -0
  62. ltisuite_26_0-0/src/ltisuite_26_0/wsp/version.py +16 -0
  63. ltisuite_26_0-0/src/ltisuite_26_0/wsp/wspmetaeditor.py +71 -0
  64. ltisuite_26_0-0/src/ltisuite_26_0/wsp/wspsrc.py +172 -0
  65. ltisuite_26_0-0/src/ltisuite_26_0/wsp/wsptask.py +62 -0
@@ -0,0 +1,66 @@
1
+ scenari.kelis.fr
2
+ LTI-suite END-USER SOFTWARE LICENSE AGREEMENT
3
+
4
+ A source code version of LTI-suite that you may use, modify and
5
+ distribute is available to you free-of-charge from
6
+ https://download.scenari.software/LTI-suite
7
+ under the MPL 1.1, GPL 2.0, LGPL 2.1 or CeCILL 2.0 license.
8
+
9
+ The accompanying executable code version of ##app.name## and related
10
+ documentation (the "product") is made available to you under the terms of this
11
+ LTI-suite end-user software license agreement (the "agreement").
12
+
13
+ By selecting the "accept" option, or by installing or using ##app.name##,
14
+ you are consenting to be bound by the agreement. If you do not agree to the
15
+ terms and conditions of this agreement, do not selecting the "accept" option,
16
+ and do not install or use any part of ##app.name##.
17
+
18
+ During the LTI-suite installation process, and at later times, you may
19
+ be given the option of installing additional components from third-party
20
+ software providers. The installation and use of those third-party components
21
+ may be governed by additional license agreements.
22
+
23
+ 1. LICENSE GRANT. scenari.kelis.fr grants you a
24
+ non-exclusive license to use the executable code version of the product.
25
+ This agreement will also govern any software upgrades provided by
26
+ scenari.kelis.fr that replace and/or supplement the original product,
27
+ unless such upgrades are accompanied by a separate license, in which case
28
+ the terms of that license will govern.
29
+
30
+ 2. TERMINATION. If you breach this agreement your right to use the product will
31
+ terminate immediately and without notice, but all provisions of this
32
+ agreement except the license grant (paragraph 1) will survive termination
33
+ and continue in effect. Upon termination, you must destroy all copies of the
34
+ product.
35
+
36
+ 3. PROPRIETARY RIGHTS. Portions of the Product are available in source code
37
+ form under the terms of the MPL 1.1, GPL 2.0, LGPL 2.1 or CeCILL 2.0
38
+ (collectively,"open source licenses") from https://download.scenari.software/LTI-suite.
39
+ Nothing in this agreement will be construed to limit any rights granted
40
+ under the open source licenses. Subject to the foregoing,
41
+ scenari.kelis.fr, for itself and on behalf of its licensors, hereby
42
+ reserves all intellectual property rights in the product, except for the
43
+ rights expressly granted in this agreement. You may not remove or alter any
44
+ trademark, logo, copyright or other proprietary notice in or on the product.
45
+ This license does not grant you any right to use the trademarks, service
46
+ marks or logos of scenari.kelis.fr or its licensors.
47
+
48
+ 4. DISCLAIMER OF WARRANTY. The product is provided "as is" with all faults.
49
+ To the extent permitted by law, scenari.kelis.fr and
50
+ scenari.kelis.fr's licensors hereby disclaim all warranties, whether
51
+ express or implied, including without limitation warranties that the product
52
+ is free of defects, merchantable, fit for a particular purpose and
53
+ non-infringing. You bear entire risk as to selecting the product for your
54
+ purposes and as to the quality and performance of the product. This
55
+ limitation will apply notwithstanding the failure of essential purpose of
56
+ any remedy. Some jurisdictions do not allow the exclusion or limitation of
57
+ implied warranties, so this disclaimer may not apply to you.
58
+
59
+ 5. LIMITATION OF LIABILITY. Except as required by law, scenari.kelis.fr
60
+ will not be liable for any indirect, special, incidental, consequential or
61
+ exemplary damages arising out of or in any way relating to this agreement
62
+ or the use of or inability to use the product, including without limitation
63
+ damages for loss of goodwill, work stoppage, lost profits, loss of data,
64
+ and computer failure or malfunction, even if advised of the possibility of
65
+ such damages and regardless of the theory (contract, tort or otherwise)
66
+ upon which such claim is based.
@@ -0,0 +1,120 @@
1
+ Metadata-Version: 2.4
2
+ Name: ltisuite_26_0
3
+ Version: 0
4
+ Summary: Application d'administration en ligne de commande et package de développement Python pour LTI-suite 26.0
5
+ Author-email: Kelis <contact@kelis.fr>
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Classifier: Intended Audience :: System Administrators
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: CeCILL-B Free Software License Agreement (CECILL-B)
11
+ Classifier: License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)
12
+ Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
13
+ Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System
21
+ Classifier: Topic :: Documentation
22
+ Classifier: Topic :: Terminals
23
+ Classifier: Topic :: Terminals :: Terminal Emulators/X Terminals
24
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
+ License-File: LICENSE
26
+ Requires-Dist: requests>2
27
+ Project-URL: Documentation, https://doc.scenari.software/${product.name}@${product.version}
28
+ Project-URL: Forum, https://forums.scenari.org/c/solserv/${product.name}
29
+ Project-URL: Homepage, https://scenari.software
30
+ Project-URL: Source, https://source.scenari.software/git/dev-core
31
+
32
+ # Application d'administration en ligne de commande et package de développement Python pour LTI-suite 26.0
33
+
34
+ `ltisuite_26_0` fournit :
35
+ * une application en ligne de commande permettant d'administrer un serveur LTI-suite 26.0 ;
36
+ * un package de développement Python permettant d'instancier un objet `portal` à utiliser avec l'API [scenaripy_api](https://pypi.org/project/scenaripy-api).
37
+
38
+ ## Utilisation de la commande d'administration
39
+ ```
40
+ ltisuite_26_0 [commande] [paramètres] [conf] [-v]
41
+ - [commande] : Voir la liste des commandes disponibles avec --help.
42
+ - [paramètres] : Certaines commandes acceptent des paramètres, voir les détails avec --help
43
+
44
+ - [conf] : paramètres de la configuration du serveur. Valeurs possibles :
45
+ -u [login] ou --user [login] : surcharge du nom de l'utilisateur
46
+ -p [password] ou --password [password] : surcharge du mot de passe
47
+ -c [./maconf.json] ou --conf [./maconf.json] : surcharge de la conf du portail
48
+ -l ou --local : chargement de la conf système pour un usage depuis le serveur hébergeant LTI-suite 26.0
49
+
50
+ - [-v] : ajouter -v ou --verbose [level] pour rendre l'exécutable plus bavard.
51
+ Valeurs de level possibles :
52
+ -v debug : tous les logs de niveau debug
53
+ -v info : tous les logs de niveau info (une ligne de log par appel réussi)
54
+ -v warning : tous les logs de niveau warning
55
+ -v error : tous les logs de niveau erreur (valeur par défaut). Les logs d'erreur sont également publiées sur le flux stderr.
56
+ -v none : désactive les logs d'erreur sur la sortie standard (les erreurs restent publiées sur le flux stderr).
57
+ ```
58
+
59
+ Utiliser l'aide intégrée (--help) pour consulter la liste des commandes disponibles.
60
+
61
+ ```shell
62
+ # Affichage de l'aide
63
+ ltisuite_26_0 --help
64
+
65
+ # Enregistrer la configuration dans un fichier pour éditer URLs, user ou mot de passe
66
+ ltisuite_26_0 print_conf > conf.json
67
+
68
+ # Ping avec verbosité `debug` pour tester sa configuration
69
+ ltisuite_26_0 ping -c conf.json -v debug
70
+ ```
71
+
72
+ ## Exemples de scripts pour de gestion des backups
73
+ **Se référer à la [documentation en ligne](https://doc.scenari.software/${product.name}@${product.version}/linux) pour plus de détails sur les backups**
74
+
75
+ Pour créer une copie des données à backuper
76
+ ```shell
77
+ ltisuite_26_0 backup_pre -c conf.json
78
+ # scripter ici la sauvegarde des données
79
+ ltisuite_26_0 backup_post -c conf.json
80
+ ```
81
+
82
+ Pour un backup du répertoire de données sans créer de copie
83
+ ```shell
84
+ ltisuite_26_0 backupinplace_pre -c conf.json
85
+ # scripter ici la sauvegarde des données
86
+ ltisuite_26_0 backupinplace_post -c conf.json
87
+ ```
88
+
89
+ Scripter ses backups en Python
90
+ ```python
91
+ import ltisuite_26_0.portal
92
+
93
+ portal = ltisuite_26_0.portal.new_portal(overridden_conf_file="conf.json")
94
+ portal.backup_pre() # ou portal.backupinplace_pre()
95
+ # Scripter ici la sauvegarde des données
96
+ portal.backup_post() # ou portal.backupinplace_pre()
97
+ ```
98
+
99
+ ## Utiliser ce package avec scenaripy_api
100
+
101
+ Vous devez installer `scenaripy_api` au préalable :
102
+ ```shell
103
+ pip install scenaripy_api
104
+ ```
105
+
106
+ Quelle que soit la version de votre serveur, il est recomandé d'utiliser **la dernière version** de `scenaripy_api`.
107
+
108
+ Exemple d'utilisation de l'API :
109
+ ```python
110
+ import scenaripy_api
111
+ import ltisuite_26_0.portal
112
+
113
+ # Création de l'objet portal
114
+ portal = ltisuite_26_0.portal.new_portal(overridden_conf_file="conf.json")
115
+
116
+ # Appel d'une méthode de l'API
117
+ scenaripy_api.create_or_update_user(portal, account="mon-compte-user", first_name="Prénom", last_name="Nom", roles=["main:reader"], other_props={"password" : "Mon-Password"})
118
+ ```
119
+ Pour plus d'information, se référer à la [documentation de l'API](https://doc.scenari.software/SCENARIbuilder/apipython).
120
+
@@ -0,0 +1,88 @@
1
+ # Application d'administration en ligne de commande et package de développement Python pour LTI-suite 26.0
2
+
3
+ `ltisuite_26_0` fournit :
4
+ * une application en ligne de commande permettant d'administrer un serveur LTI-suite 26.0 ;
5
+ * un package de développement Python permettant d'instancier un objet `portal` à utiliser avec l'API [scenaripy_api](https://pypi.org/project/scenaripy-api).
6
+
7
+ ## Utilisation de la commande d'administration
8
+ ```
9
+ ltisuite_26_0 [commande] [paramètres] [conf] [-v]
10
+ - [commande] : Voir la liste des commandes disponibles avec --help.
11
+ - [paramètres] : Certaines commandes acceptent des paramètres, voir les détails avec --help
12
+
13
+ - [conf] : paramètres de la configuration du serveur. Valeurs possibles :
14
+ -u [login] ou --user [login] : surcharge du nom de l'utilisateur
15
+ -p [password] ou --password [password] : surcharge du mot de passe
16
+ -c [./maconf.json] ou --conf [./maconf.json] : surcharge de la conf du portail
17
+ -l ou --local : chargement de la conf système pour un usage depuis le serveur hébergeant LTI-suite 26.0
18
+
19
+ - [-v] : ajouter -v ou --verbose [level] pour rendre l'exécutable plus bavard.
20
+ Valeurs de level possibles :
21
+ -v debug : tous les logs de niveau debug
22
+ -v info : tous les logs de niveau info (une ligne de log par appel réussi)
23
+ -v warning : tous les logs de niveau warning
24
+ -v error : tous les logs de niveau erreur (valeur par défaut). Les logs d'erreur sont également publiées sur le flux stderr.
25
+ -v none : désactive les logs d'erreur sur la sortie standard (les erreurs restent publiées sur le flux stderr).
26
+ ```
27
+
28
+ Utiliser l'aide intégrée (--help) pour consulter la liste des commandes disponibles.
29
+
30
+ ```shell
31
+ # Affichage de l'aide
32
+ ltisuite_26_0 --help
33
+
34
+ # Enregistrer la configuration dans un fichier pour éditer URLs, user ou mot de passe
35
+ ltisuite_26_0 print_conf > conf.json
36
+
37
+ # Ping avec verbosité `debug` pour tester sa configuration
38
+ ltisuite_26_0 ping -c conf.json -v debug
39
+ ```
40
+
41
+ ## Exemples de scripts pour de gestion des backups
42
+ **Se référer à la [documentation en ligne](https://doc.scenari.software/${product.name}@${product.version}/linux) pour plus de détails sur les backups**
43
+
44
+ Pour créer une copie des données à backuper
45
+ ```shell
46
+ ltisuite_26_0 backup_pre -c conf.json
47
+ # scripter ici la sauvegarde des données
48
+ ltisuite_26_0 backup_post -c conf.json
49
+ ```
50
+
51
+ Pour un backup du répertoire de données sans créer de copie
52
+ ```shell
53
+ ltisuite_26_0 backupinplace_pre -c conf.json
54
+ # scripter ici la sauvegarde des données
55
+ ltisuite_26_0 backupinplace_post -c conf.json
56
+ ```
57
+
58
+ Scripter ses backups en Python
59
+ ```python
60
+ import ltisuite_26_0.portal
61
+
62
+ portal = ltisuite_26_0.portal.new_portal(overridden_conf_file="conf.json")
63
+ portal.backup_pre() # ou portal.backupinplace_pre()
64
+ # Scripter ici la sauvegarde des données
65
+ portal.backup_post() # ou portal.backupinplace_pre()
66
+ ```
67
+
68
+ ## Utiliser ce package avec scenaripy_api
69
+
70
+ Vous devez installer `scenaripy_api` au préalable :
71
+ ```shell
72
+ pip install scenaripy_api
73
+ ```
74
+
75
+ Quelle que soit la version de votre serveur, il est recomandé d'utiliser **la dernière version** de `scenaripy_api`.
76
+
77
+ Exemple d'utilisation de l'API :
78
+ ```python
79
+ import scenaripy_api
80
+ import ltisuite_26_0.portal
81
+
82
+ # Création de l'objet portal
83
+ portal = ltisuite_26_0.portal.new_portal(overridden_conf_file="conf.json")
84
+
85
+ # Appel d'une méthode de l'API
86
+ scenaripy_api.create_or_update_user(portal, account="mon-compte-user", first_name="Prénom", last_name="Nom", roles=["main:reader"], other_props={"password" : "Mon-Password"})
87
+ ```
88
+ Pour plus d'information, se référer à la [documentation de l'API](https://doc.scenari.software/SCENARIbuilder/apipython).
@@ -0,0 +1,39 @@
1
+ [build-system]
2
+ requires = ["flit_core >=3.9,<4"]
3
+ build-backend = "flit_core.buildapi"
4
+ [project]
5
+ name = "ltisuite_26_0"
6
+ version = "0"
7
+ description = "Application d'administration en ligne de commande et package de développement Python pour LTI-suite 26.0"
8
+ license = {file = "LICENSE"}
9
+ authors = [{name = "Kelis", email = "contact@kelis.fr"}]
10
+ readme="README.md"
11
+ requires-python = ">=3.10"
12
+ dependencies = ["requests>2"]
13
+ classifiers = [
14
+ "Intended Audience :: System Administrators",
15
+ "Intended Audience :: Developers",
16
+ "License :: CeCILL-B Free Software License Agreement (CECILL-B)",
17
+ "License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)",
18
+ "License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
19
+ "License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)",
20
+ "Operating System :: OS Independent",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.10",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Programming Language :: Python :: 3.13",
26
+ "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System",
27
+ "Topic :: Documentation",
28
+ "Topic :: Terminals",
29
+ "Topic :: Terminals :: Terminal Emulators/X Terminals",
30
+ "Topic :: Software Development :: Libraries :: Python Modules"
31
+ ]
32
+ [project.urls]
33
+ Homepage= "https://scenari.software"
34
+ Documentation= "https://doc.scenari.software/${product.name}@${product.version}"
35
+ Source= "https://source.scenari.software/git/dev-core"
36
+ Forum= "https://forums.scenari.org/c/solserv/${product.name}"
37
+
38
+ [project.scripts]
39
+ ltisuite_26_0 = "ltisuite_26_0.portal:__main"
@@ -0,0 +1,2 @@
1
+
2
+ __all__ = ["portal", "portlets", "api", "appsaas", "common", "core", "distrib", "orient", "store", "urltree", "wsp"]
@@ -0,0 +1,2 @@
1
+
2
+ __all__ = ["item", "search"]
@@ -0,0 +1,117 @@
1
+ """Ce module contient des constantes (sous forme d'Enum) et structures de données (préfixe pour items spécifiques, statuts de dérivation ou de calque de travail, champs de description d'un item et structure de données spécifique aux exports pour envoi des données)."""
2
+
3
+ from typing import TypedDict, NotRequired
4
+
5
+ from ..common.utils import StrEnum
6
+
7
+ class EItemPrefix(StrEnum):
8
+ """Liste de valeurs de préfixe d'un chemin vers un item (src_uri). Les fonctions adressées par ces préfixes sont disponibles en DB uniquement."""
9
+ AIR_PREFIX = "/~air/" # Préfixe d'un air item
10
+ """Test attribute doc"""
11
+ EXT_PREFIX = "/~ext/" # Préfixe d'un item externe
12
+ TRANSIENT_PREFIX = "/~transient/"
13
+ ANNOT_PREFIX = "/~annot/"
14
+ HISTORY_PREFIX = "/~history/" # Préfixe d'un item en historique
15
+ TRASH_PREFIX = "/~history~trash/" # Préfixe d'un item en corbeille
16
+
17
+
18
+ class EDrvState(StrEnum):
19
+ """État d'un item dans un atelier dérivé."""
20
+ erased = "erased" # Item supprimé
21
+ notOverriden = "notOverriden" # Item non surchargé, jamais marqué "achevé"
22
+ notOverridenDone = "notOverridenDone" # Item non surchargé, marqué achevé
23
+ createdDone = "createdDone" # Item spécifique à l'atelier dérivé, marqué achevé
24
+ overridenDone = "overridenDone" # Item surchargé dans l'atelier dérivé, marqué achevé
25
+ createdNew = "createdNew" # Item spécifique à l'atelier dérivé, mais non marqué achevé
26
+ overridenNew = "overridenNew" # Item surchargé dans l'atelier dérivé, mais non marqué achevé
27
+ notOverridenDirty = "notOverridenDirty" # Item non surchargé, marqué achevé puis déphasé
28
+ createdDirty = "createdDirty" # Item spécifique à l'atelier dérivé, marqué achevé puis déphasé
29
+ overridenDirty = "overridenDirty" # Item surchargé dans l'atelier dérivé, marqué achevé puis déphasé
30
+ createdNotComputed = "createdNotComputed" # Item spécifique à l'atelier dérivé, état inconnu
31
+ notComputed = "notComputed" # État de l'item inconnu
32
+
33
+
34
+ class EDrfState(StrEnum):
35
+ """État d'un item dans un atelier calque de travail."""
36
+ erased = "erased" # Item supprimé
37
+ notOverriden = "notOverriden" # Item inchangé
38
+ overriden = "overriden" # Item modifié
39
+ created = "created" # Item créé dans l'atelier calque
40
+ createdDeleted = "createdDeleted" # Item créé puis supprimé
41
+ notComputed = "notComputed" # État de l'item inconnu
42
+
43
+
44
+ class ESrcField(StrEnum):
45
+ """Liste des champs de données possiblement associés à un item."""
46
+ # NB : seuls les champs commentés avec le caractère # ont valeur d'API.
47
+ srcUri = "srcUri" # Chemin de l'item.
48
+ srcId = "srcId" # ID d'un item (attention, un ID n'est pas stable). [NON API]
49
+ itSubItem = "itSubItem" # XML ID d'un sub-item. Supporté par certains modèles uniquement. [NON API]
50
+
51
+ item = "item" # demande à a fois : itSt, itSgn, itModel [NON API]
52
+ sdOdb = "sdOdb" # demande à la fois : srcUri, srcSt, srcDt, srcRi, srcRoles, srcId, srcStamp, srcUser, itSt, itSgn et itModel [NON API]
53
+
54
+ srcNm = "srcNm" # Retourne le nom de la ressource. [NON API]
55
+ srcSt = "srcSt" # Retourne le status de la ressource (de type int, 1 pour un fichier, 2 pour un dossier et -1 si la ressource n'existe pas). [NON API]
56
+ srcDt = "srcDt" # `Timestamp` de dernière modification.
57
+ srcStamp = "srcStamp" # Retourne une chaîne d'empreinte (hash) du contenu. [NON API]
58
+ srcTreeDt = "srcTreeDt" # Retourne la date de dernière modification de la ressource et son arborescence fille. [NON API]
59
+ srcSi = "srcSi" # Retourne la taille du contenu. [NON API]
60
+ srcTy = "srcTy" # Retourne le content-type associé à ce contenu. [NON API]
61
+ srcRi = "srcRi" # Retourne les droits d'accès sous la forme d'un int. Ce champ est un indice utilisé par l'IHM Scenari. Ne pas utiliser en dehors. [NON API]
62
+ srcRoles = "srcRoles" # Retourne les rôles résolus pour cette ressource. [NON API]
63
+ srcUser = "srcUser" # Utilisateur ayant effectué la dernière modification.
64
+ srcLiveUri = "srcLiveUri" # URL "live" d'un nœud placé en historique ou supprimé. [NON API]
65
+ srcTrashed = "srcTrashed" # srcTrashed pour savoir si ce nœud a été explicitement placé en corbeille (contrairement à `srcSt` qui renvoie -1 si le nœud OU au moins un nœud de son contexte ascendant a été supprimé). [NON API]
66
+ metaComment = "metaComment" # Pour récupérer un commentaire associé à cet item (pour une entrée d'historique par exemple). [NON API]
67
+ metaFlag = "metaFlag" # Flag (retourné sous forme de int) associé à cet item (pour une entrée d'historique par exemple). [NON API]
68
+
69
+ cidEndPoints = "cidEndPoints" # Liste des dernières destination d'envoi via CID de cet item. [NON API]
70
+
71
+ drvState = "drvState" # État de dérivation.
72
+ drvAxisDefCo = "drvAxisDefCo" # Axis auquel appartient le contenu par défaut de cette dérivation.
73
+
74
+ drfState = "drfState" # État de surcharge dans un atelier calque de travail.
75
+
76
+ itTi = "itTi" # Titre d'un item.
77
+ itSt = "itSt" # Statut d'un item (-1 : n'existe pas, -2 : item en conflit, -99 : statut inconnu, 1 : statut ok, 2 : contient des warnings, 3, item en erreur, 11 : état asynchrone d'un item en cours de validation). [NON API]
78
+ itSgn = "itSgn" # Signature de l'item. [NON API]
79
+ itModel = "itModel" # Code du modèle associé à l'item
80
+ itFullUriInOwnerWsp = "itFullUriInOwnerWsp" # fullUri d'un item dans son atelier propriétaire. Utilisé par l'atelier qui inclut un item externe. [NON API]
81
+ itSubItems = "itSubItems" # Liste des sub-items contenu dans cet item. [NON API]
82
+ itSubItemAnc = "itSubItemAnc" # Permet d'obtenir la liste des propriétés des subItems ancêtres du subItem pointé. [NON API]
83
+
84
+ lcSt = "lcSt" # État du cycle de vie.
85
+ lcDt = "lcDt" # Date du dernier changement de cycle de vie.
86
+ lcBy = "lcBy" # Utilisateur ayant déclenché le dernier changement de cycle de vie.
87
+ lcTrP = "lcTrP" # True si une transition est en cours. [NON API]
88
+
89
+ rspUsrs = "rspUsrs" # Pour obtenir une liste des users et de leurs responsabilités associés à un item donné. [NON API]
90
+ rspSt = "rspSt" # Statut des responsabilité de l'item (-1 : inconnu, 1 : ok, 3 : en erreur). [NON API]
91
+
92
+ tkPending = "tkPending" # La tâche est en cours. [NON API]
93
+ tkPendingCount = "tkPendingCount" # Nombre de tâches en cours associées à une source. [NON API]
94
+ tkForthcoming = "tkForthcoming" # La tâche est planifiée. [NON API]
95
+ tkForthcomingCount = "tkForthcomingCount" # Nombre de tâches planifiées associées à une source. [NON API]
96
+
97
+ tkDeadline = "tkDeadline" # Deadline de la tâche. [NON API]
98
+ tkCompletedDt = "tkCompletedDt" # Date du passage à l'état complété de la tâche. [NON API]
99
+ tkCompletedBy = "tkCompletedBy" # User qui a passé la tâche à l'état complété. [NON API]
100
+
101
+ actStage = "actStage" # État de l'action (completed, pending, forthcoming). [NON API]
102
+ actTi = "actTi" # Titre de l'action. [NON API]
103
+ actCts = "actCts" # Liste des source liées à cette action. [NON API]
104
+
105
+ wspOwner = "wspOwner" # Code de l'atelier propriétaire de la source. [NON API]
106
+
107
+
108
+ class JSendProps(TypedDict):
109
+ """
110
+ Structure de données permettant de spécifier un envoi de contenu HTTP via le service remoteContent de Scenari.
111
+ """
112
+ url: str
113
+ method: NotRequired[str] # Valeur par défaut : "GET"
114
+ timeout: NotRequired[int] # Pas de `timeout` par défaut
115
+ headerProps: NotRequired[dict[str, str | list[str]]]
116
+ addQSParams: NotRequired[dict[str, str]] # Ajout de querystring en plus de ceux possiblement présents dans l'URL
117
+ setQSParams: NotRequired[dict[str, str]] # Remplacement de querystring déjà présent dans l'URL