Von Version < 1.12 >
bearbeitet von awa
am 12.03.2020, 11:46
Auf Version < 1.11 >
bearbeitet von awa
am 12.03.2020, 11:09
< >
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -16,8 +16,6 @@
16 16  
17 17  Standardmäßig ist eine Servlet-Aktion für alle frei zugänglich. Da es in der Regel unerwünscht ist, dass jeder (auch unangemeldete) Nutzer Plugins installieren kann, kann das Deploy-Plugin durch ein Passwort abgesichert werden. Dazu muss in der Plugin-Konfiguration der Passwort-Hash hinterlegt werden und das Passwort dann im HTTP-POST-Request mitgesendet werden.
18 18  
19 -== Plugin-Konfiguration ==
20 -
21 21  == HTTP-Request-Aufbau ==
22 22  
23 23  Im Folgenden wird der Aufbau des HTTP-Requests beschrieben, um ein Plugin zu installieren, zu aktualisieren oder zu löschen.
... ... @@ -30,7 +30,7 @@
30 30  
31 31  Die //client-id// muss nicht angegeben werden, wenn das Plugin als System-Plugin installiert ist.
32 32  
33 -=== Request-Parameter ===
31 +=== Request-Parameter
34 34  
35 35  Die Parameter können direkt als URL-Parameter, als //multipart/form-data// oder als //application/x-www-form-urlencoded// übergeben werden. Folgende Parameter werden vom Deploy-Plugin unterstützt und können übergeben werden:
36 36  
... ... @@ -59,9 +59,9 @@
59 59  :; plugin-ident=manifest
60 60  :: //plugin-identifier// muss den Namen der Manifest-Eigenschaft und dessen Wert enthalten, im Format //ATTRIBUTE_NAME=VALUE//. Wird zum Beispiel //Implementation-Title=com.example.fc.plugin:my-plugin// übergeben wird, wird nach einem existierenden Plugin gesucht, welches im Manifest in der Eigenschaft //Implementation-Title// den Wert //com.example.fc.plugin:my-plugin// stehen hat.
61 61  :; plugin-ident=id
62 -:: //plugin-identifier// muss die gewünschte ID des Plugins enthalten, etwa //53// oder /893//.//
60 +:: //plugin-identifier// muss die gewünschte ID des Plugins enthalten, etwa //53// oder /893//.
63 63  :; plugin-ident=name
64 -:: //plugin-identifier// muss den gewünschten Names des Plugins enthalten, etwa //my-plugin.jar// oder /foobar.jar//.//
62 +:: //plugin-identifier// muss den gewünschten Names des Plugins enthalten, etwa //my-plugin.jar// oder /foobar.jar//.
65 65  :; plugin-ident=uuid
66 66  :: //plugin-identifier// muss die gewünschte UUID des Plugins enthalten, etwa //03022599-903d-429b-9822-80a324a542fc//.
67 67  Andernfalls wird das Plugin installiert, falls noch nicht vorhanden, oder aktualisiert, falls vorhanden.
... ... @@ -73,13 +73,12 @@
73 73  : Entweder //true// oder //false//. Ist diese Option auf //true// gesetzt und existiert das Plugin noch nicht (bezüglich der angegebenen //plugin-ident// und //plugin-identifier//), wird das Plugin nicht neu installiert und eine Fehlermeldung zurückgegeben. ; locale
74 74  : Die Sprache, welche während der Installation, Aktualisierung oder Löschung des Plugins verwendet werden soll, etwa //en// oder //de//. Beeinflusst nur einige Fehlermeldungen und kann in der Regel weggelassen werden.
75 75  
76 -=== Deploy-Action ===
74 +=== Deploy-Action
77 77  
78 78  Der Wert des Parameters //deploy-action// gibt an, was genau mit dem Plugin geschehen soll. Es gibt dabei die folgenden Möglichkeiten:
79 79  
80 80  ; save
81 81  : Überträgt das angegebene Plugin auf das FORMCYCLE-System. Es muss hierbei eine JAR-Datei übertragen werden. Falls das Plugin noch nicht existiert (und der Parameter //disallow-install// nicht gesetzt ist), wird das Plugin neu installiert und ist dann aktiviert. Andernfalls, falls das Plugin bereits existiert, wird es aktualisiert, dabei bleibt das Plugin aktiviert oder deaktiviert.
82 -
83 83  (((
84 84  {{code language="bash"}}
85 85   curl -X POST \
... ... @@ -92,10 +92,8 @@
92 92   "http://localhost:8080/formcycle/plugin?client-id=154&name=deploy-plugin"
93 93  {{/code}}
94 94  )))
95 -
96 96  ; delete
97 97  : Löscht das angegebene Plugin. Es darf hierbei keine JAR-Datei übertragen werden. Existiert das angegebene Plugin nicht, wird ein Fehler zurückgegeben. Beispiel:
98 -
99 99  (((
100 100  {{code language="bash"}}
101 101   curl -X POST \
... ... @@ -107,10 +107,8 @@
107 107   "http://localhost:8080/formcycle/plugin?client-id=154&name=deploy-plugin"
108 108  {{/code}}
109 109  )))
110 -
111 111  ; activate
112 112  : Aktiviert das angegebene Plugin. Es darf hierbei keine JAR-Datei übertragen werden. Existiert das angegebene Plugin nicht, wird ein Fehler zurückgegeben. Beispiel:
113 -
114 114  (((
115 115  {{code language="bash"}}
116 116   curl -X POST \
... ... @@ -122,10 +122,8 @@
122 122   "http://localhost:8080/formcycle/plugin?client-id=154&name=deploy-plugin"
123 123  {{/code}}
124 124  )))
125 -
126 126  ; deactivate
127 127  : Deaktiviert das angegebene Plugin. Es darf hierbei keine JAR-Datei übertragen werden. Existiert das angegebene Plugin nicht, wird ein Fehler zurückgegeben. Beispiel:
128 -
129 129  (((
130 130  {{code language="bash"}}
131 131   curl -X POST \
... ... @@ -137,11 +137,9 @@
137 137   "http://localhost:8080/formcycle/plugin?client-id=154&name=deploy-plugin"
138 138  {{/code}}
139 139  )))
140 -
141 141  ; update-properties
142 142  : Aktualisiert die Eigenschaften des angegebenen Plugins. Es darf hierbei keine JAR-Datei übertragen werden. Entweder die Eigenschaft //clear-properties// oder //property// sollte gesetzt sein. Existiert das angegebene Plugin nicht, wird ein Fehler zurückgegeben. Beispiel:
143 -
144 -(((
133 + (((
145 145  {{code language="bash"}}
146 146  # Löscht alle vorhandenen Plugin-Eigenschaften und setzt dann die Eigenschaft "foo" auf den Wert "bar"
147 147   curl -X POST \
... ... @@ -152,112 +152,10 @@
152 152   -F clear-properties=false \
153 153   -F property=foo=bar \
154 154   "http://localhost:8080/formcycle/plugin?client-id=154&name=deploy-plugin"
155 -{{/code}}
156 -)))
144 +{{/code}})))
157 157  
158 -== Response ==
146 +== Response
159 159  
160 -Das Deploy-Plugin liefert einen Statuscode und ein JSON-Objekt mit den Details zurück. Der Status-Code ist 2xx, falls das Deploy-Plugin erfolgreich ausgeführt wurde.
161 161  
162 -Das JSON-Objekt hat dabei [[die folgende Struktur>>https://json-schema.org/]]:
163 163  
164 -{{code language="json"}}
165 -{
166 - "$schema": "http://json-schema.org/schema",
167 - "description": "Represents the response of the deploy plugin servlet.",
168 - "required": [
169 - "success",
170 - "statusCode",
171 - "details",
172 - "message",
173 - "requestParameters"
174 - ],
175 - "properties": {
176 - "success": {
177 - "type": "boolean",
178 - "title": "Success status",
179 - "description": "true if the deploy plugin servlet was executed successfully, or false otherwise"
180 - },
181 - "statusCode": {
182 - "type": "number",
183 - "title": "HTTP status code",
184 - "description": "The status code of the HTTP request that contains this response."
185 - },
186 - "details": {
187 - "type": "object",
188 - "title": "Result details",
189 - "description": "Detailed information about the plugin processed by the deploy plugin servlet.",
190 - "oneOf": [
191 - {
192 - "description": "If the deploy plugin servlet was successful, details about the successfully executed action.",
193 - "required": [
194 - "id",
195 - "uuid",
196 - "name",
197 - "active",
198 - "message"
199 - ],
200 - "properties": {
201 - "id": {
202 - "type": "number",
203 - "title": "Plugin ID",
204 - "description": "The database ID of the processed plugin."
205 - },
206 - "uuid": {
207 - "type": "string",
208 - "title": "Plugin UUID",
209 - "description": "The UUID of the processed plugin."
210 - },
211 - "name": {
212 - "type": "string",
213 - "title": "Plugin name",
214 - "description": "The name of the processed plugin, i.e. the file name of the plugin JAR file."
215 - },
216 - "active": {
217 - "type": "boolean",
218 - "title": "Plugin activation status",
219 - "description": "true if the plugin is now active, false if it is now inactive."
220 - },
221 - "message": {
222 - "type": "string",
223 - "title": "Result message",
224 - "description": "Human-readable message describing the performed action."
225 - }
226 - }
227 - },
228 - {
229 - "required": [
230 - "exceptionType",
231 - "exceptionMessage"
232 - ],
233 - "description": "If the deploy plugin servlet was unsuccessful, details about the error that occurred.",
234 - "properties": {
235 - "exceptionType": {
236 - "type": "string",
237 - "title": "Exception type",
238 - "description": "The type of the error that occurred, a fully-classified name of the Java exception class."
239 - },
240 - "exceptionMessage": {
241 - "type": "string",
242 - "title": "Exception message",
243 - "description": "The human-readable message of the error that occurred."
244 - }
245 - }
246 - }
247 - ]
248 - },
249 - "message": {
250 - "type": "string",
251 - "title": "Result message",
252 - "description": "A human-readable message that describes this result."
253 - },
254 - "requestParameters": {
255 - "type": "object",
256 - "title": "Request parameters",
257 - "description": "The parameters of the request that triggered this response."
258 - }
259 - }
260 -}
261 -{{/code}}
262 -
263 263  == Beispiel für Maven ==
Copyright 2000-2025