Skip to content

Commit 531726d

Browse files
committed
MODWRKFLOW-68: Fix permission names and bring in folio-module-descriptor-validator.
Remove all of the `*.all` permissions as they are now recommended against directly in the tech council module acceptance criteria. Use only 4 sections (`first.second.third.fourth`). 1. The first is always `workflow` (also known as module prefix). 2. The second is dependent on the purpose, but maintains the current design and now uses underscores (also known as resource). 3. The third must either bey `item` or `collection` (also known as scope). 4. The fourth is one of the allowed verbs, generally **REST** verbs (also known as action). An underscore instead of a dash is used so that only word characters are used in this group and so that the expansion expands with spaces instead of dashes. The action verbs, like `activate`, are technical valid as per the documentation. However, modules like `folio-module-descriptor-validator` and ecosystems like **Eureka** do not treat these as such. The unsupported verbs, such as `activate`, are simply moved into the second section using underscores. This brings in `folio-module-descriptor-validator` with the appropriate plugin repository and latest version. see: https://folio-org.atlassian.net/wiki/spaces/FOLIJET/pages/156368925/Permissions+naming+convention#Use-of-punctuation see: https://folio-org.atlassian.net/wiki/spaces/TC/pages/1626144774/Permission+Naming+Guidelines
1 parent 09f0bb8 commit 531726d

2 files changed

Lines changed: 74 additions & 93 deletions

File tree

service/descriptors/ModuleDescriptor-template.json

Lines changed: 52 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,17 @@
139139
{
140140
"methods": ["POST"],
141141
"pathPattern": "/workflows/import",
142-
"permissionsRequired": ["workflow.workflows.item.post"]
142+
"permissionsRequired": ["workflow.workflows_import.item.post"]
143143
},
144144
{
145145
"methods": ["GET"],
146146
"pathPattern": "/workflows/search",
147-
"permissionsRequired": ["workflow.workflows.collection.get"]
147+
"permissionsRequired": ["workflow.workflows_search.collection.get"]
148148
},
149149
{
150150
"methods": ["DELETE"],
151151
"pathPattern": "/workflows/{id}",
152-
"permissionsRequired": ["workflow.workflows.item.delete"]
152+
"permissionsRequired": ["workflow.workflows_local.item.delete"]
153153
},
154154
{
155155
"methods": ["GET"],
@@ -169,12 +169,12 @@
169169
{
170170
"methods": ["PUT"],
171171
"pathPattern": "/workflows/{id}/activate",
172-
"permissionsRequired": ["workflow.workflows.item.activate"]
172+
"permissionsRequired": ["workflow.workflows_activate.item.put"]
173173
},
174174
{
175175
"methods": ["PUT"],
176176
"pathPattern": "/workflows/{id}/deactivate",
177-
"permissionsRequired": ["workflow.workflows.item.deactivate"]
177+
"permissionsRequired": ["workflow.workflows_deactivate.item.put"]
178178
},
179179
{
180180
"methods": ["DELETE"],
@@ -184,32 +184,32 @@
184184
{
185185
"methods": ["GET"],
186186
"pathPattern": "/workflows/{id}/history",
187-
"permissionsRequired": ["workflow.workflows.item.get"]
187+
"permissionsRequired": ["workflow.workflows_history.item.get"]
188188
},
189189
{
190190
"methods": ["POST"],
191191
"pathPattern": "/workflows/{id}/start",
192-
"permissionsRequired": ["workflow.workflows.item.startTrigger"]
192+
"permissionsRequired": ["workflow.workflows_start_trigger.item.post"]
193193
},
194194
{
195195
"methods": ["DELETE"],
196196
"pathPattern": "/workflows/{id}/startTrigger",
197-
"permissionsRequired": ["workflow.workflows.item.startTrigger"]
197+
"permissionsRequired": ["workflow.workflows_start_trigger.item.delete"]
198198
},
199199
{
200200
"methods": ["GET"],
201201
"pathPattern": "/workflows/{id}/startTrigger",
202-
"permissionsRequired": ["workflow.workflows.item.startTrigger"]
202+
"permissionsRequired": ["workflow.workflows_start_trigger.item.get"]
203203
},
204204
{
205205
"methods": ["PUT"],
206206
"pathPattern": "/workflows/{id}/startTrigger",
207-
"permissionsRequired": ["workflow.workflows.item.startTrigger"]
207+
"permissionsRequired": ["workflow.workflows_start_trigger.item.put"]
208208
},
209209
{
210210
"methods": ["GET"],
211211
"pathPattern": "/workflows/{id}/tasks",
212-
"permissionsRequired": ["workflow.workflows.item.tasks"]
212+
"permissionsRequired": ["workflow.workflows_tasks.item.get"]
213213
}
214214
]
215215
},
@@ -253,15 +253,6 @@
253253
"displayName": "Workflow - action - get collection",
254254
"description": "Get action collection"
255255
},
256-
{
257-
"permissionName": "workflow.actions.all",
258-
"displayName": "Workflow - action - all permissions",
259-
"description": "Entire set of permissions needed to use the workflow actions",
260-
"subPermissions": [
261-
"workflow.actions.collection.get"
262-
],
263-
"visible": false
264-
},
265256
{
266257
"permissionName": "workflow.events.collection.get",
267258
"displayName": "Workflow - event - get event",
@@ -272,16 +263,6 @@
272263
"displayName": "Workflow - event - emit event",
273264
"description": "Emit event"
274265
},
275-
{
276-
"permissionName": "workflow.events.all",
277-
"displayName": "Workflow - event - all permissions",
278-
"description": "Entire set of permissions needed to use the workflow events",
279-
"subPermissions": [
280-
"workflow.events.collection.get",
281-
"workflow.events.collection.post"
282-
],
283-
"visible": false
284-
},
285266
{
286267
"permissionName": "workflow.nodes.collection.get",
287268
"displayName": "Workflow - node - get node collection",
@@ -307,19 +288,6 @@
307288
"displayName": "Workflow - node - put node item",
308289
"description": "Update node item"
309290
},
310-
{
311-
"permissionName": "workflow.nodes.all",
312-
"displayName": "Workflow - node - all permissions",
313-
"description": "Entire set of permissions needed to use the workflow triggers",
314-
"subPermissions": [
315-
"workflow.nodes.collection.get",
316-
"workflow.nodes.item.delete",
317-
"workflow.nodes.item.get",
318-
"workflow.nodes.item.post",
319-
"workflow.nodes.item.put"
320-
],
321-
"visible": false
322-
},
323291
{
324292
"permissionName": "workflow.triggers.collection.get",
325293
"displayName": "Workflow - trigger - get trigger collection",
@@ -345,19 +313,6 @@
345313
"displayName": "Workflow - trigger - put trigger item",
346314
"description": "Update trigger item"
347315
},
348-
{
349-
"permissionName": "workflow.triggers.all",
350-
"displayName": "Workflow - trigger - all permissions",
351-
"description": "Entire set of permissions needed to use the workflow triggers",
352-
"subPermissions": [
353-
"workflow.triggers.collection.get",
354-
"workflow.triggers.item.delete",
355-
"workflow.triggers.item.get",
356-
"workflow.triggers.item.post",
357-
"workflow.triggers.item.put"
358-
],
359-
"visible": false
360-
},
361316
{
362317
"permissionName": "workflow.tasks.collection.get",
363318
"displayName": "Workflow - task - get task collection",
@@ -383,31 +338,23 @@
383338
"displayName": "Workflow - task - put task item",
384339
"description": "Update task item"
385340
},
386-
{
387-
"permissionName": "workflow.tasks.all",
388-
"displayName": "Workflow - task - all permissions",
389-
"description": "Entire set of permissions needed to use the workflow tasks",
390-
"subPermissions": [
391-
"workflow.tasks.collection.get",
392-
"workflow.tasks.item.delete",
393-
"workflow.tasks.item.get",
394-
"workflow.tasks.item.post",
395-
"workflow.tasks.item.put"
396-
],
397-
"visible": false
398-
},
399341
{
400342
"permissionName": "workflow.workflows.collection.get",
401343
"displayName": "Workflow - item - get workflow item collection",
402344
"description": "Get workflow collection"
403345
},
404346
{
405-
"permissionName": "workflow.workflows.item.activate",
347+
"permissionName": "workflow.workflows_search.collection.get",
348+
"displayName": "Workflow - item - search workflow item collection",
349+
"description": "Search workflow collection"
350+
},
351+
{
352+
"permissionName": "workflow.workflows_activate.item.put",
406353
"displayName": "Workflow - item - activate workflow item",
407354
"description": "Activate workflow item"
408355
},
409356
{
410-
"permissionName": "workflow.workflows.item.deactivate",
357+
"permissionName": "workflow.workflows_deactivate.item.put",
411358
"displayName": "Workflow - item - deactivate workflow item",
412359
"description": "Deactivate workflow item"
413360
},
@@ -416,11 +363,21 @@
416363
"displayName": "Workflow - item - delete workflow item",
417364
"description": "Delete workflow item"
418365
},
366+
{
367+
"permissionName": "workflow.workflows_local.item.delete",
368+
"displayName": "Workflow - item - local delete workflow item",
369+
"description": "Delete workflow item without querying workflow engine (not recommended)"
370+
},
419371
{
420372
"permissionName": "workflow.workflows.item.get",
421373
"displayName": "Workflow - item - get workflow item",
422374
"description": "Get workflow item"
423375
},
376+
{
377+
"permissionName": "workflow.workflows_history.item.get",
378+
"displayName": "Workflow - item - get workflow history item",
379+
"description": "Get workflow item"
380+
},
424381
{
425382
"permissionName": "workflow.workflows.item.patch",
426383
"displayName": "Workflow - item - patch workflow item",
@@ -431,38 +388,40 @@
431388
"displayName": "Workflow - item - post workflow item",
432389
"description": "Create workflow item"
433390
},
391+
{
392+
"permissionName": "workflow.workflows_import.item.post",
393+
"displayName": "Workflow - item - import workflow item",
394+
"description": "Import workflow item"
395+
},
434396
{
435397
"permissionName": "workflow.workflows.item.put",
436398
"displayName": "Workflow - item - put workflow item",
437399
"description": "Update workflow item"
438400
},
439401
{
440-
"permissionName": "workflow.workflows.item.startTrigger",
441-
"displayName": "Workflow - item - start trigger",
442-
"description": "Add, remove, or initiate start trigger on workflow item"
402+
"permissionName": "workflow.workflows_start_trigger.item.delete",
403+
"displayName": "Workflow - item - start trigger - delete",
404+
"description": "Delete a start trigger for a workflow item"
443405
},
444406
{
445-
"permissionName": "workflow.workflows.item.tasks",
446-
"displayName": "Workflow - item - workflow item tasks",
447-
"description": "Get workflow item tasks"
407+
"permissionName": "workflow.workflows_start_trigger.item.get",
408+
"displayName": "Workflow - item - start trigger - get",
409+
"description": "Get a start trigger for a workflow item"
410+
},
411+
{
412+
"permissionName": "workflow.workflows_start_trigger.item.post",
413+
"displayName": "Workflow - item - start trigger - post",
414+
"description": "Create a start trigger for a workflow item"
448415
},
449416
{
450-
"permissionName": "workflow.workflows.all",
451-
"displayName": "Workflow - item - all permissions",
452-
"description": "Entire set of permissions needed to use the workflow items",
453-
"subPermissions": [
454-
"workflow.workflows.collection.get",
455-
"workflow.workflows.item.activate",
456-
"workflow.workflows.item.deactivate",
457-
"workflow.workflows.item.delete",
458-
"workflow.workflows.item.get",
459-
"workflow.workflows.item.patch",
460-
"workflow.workflows.item.post",
461-
"workflow.workflows.item.put",
462-
"workflow.workflows.item.startTrigger",
463-
"workflow.workflows.item.tasks"
464-
],
465-
"visible": false
417+
"permissionName": "workflow.workflows_start_trigger.item.put",
418+
"displayName": "Workflow - item - start trigger - put",
419+
"description": "Update a start trigger for a workflow item"
420+
},
421+
{
422+
"permissionName": "workflow.workflows_tasks.item.get",
423+
"displayName": "Workflow - item - workflow item tasks",
424+
"description": "Get workflow item tasks"
466425
}
467426
],
468427
"requires": [ ],

service/pom.xml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
<properties>
1919
<openapi.server.port>9000</openapi.server.port>
20+
<folio-module-descriptor-validator.version>1.0.1</folio-module-descriptor-validator.version>
2021
<folio-spring.version>10.0.0</folio-spring.version>
2122
</properties>
2223

@@ -98,8 +99,29 @@
9899
</dependency>
99100
</dependencies>
100101

102+
<pluginRepositories>
103+
<pluginRepository>
104+
<id>folio-nexus</id>
105+
<name>FOLIO Maven repository</name>
106+
<url>https://repository.folio.org/repository/maven-folio</url>
107+
</pluginRepository>
108+
</pluginRepositories>
109+
101110
<build>
102111
<plugins>
112+
<plugin>
113+
<groupId>org.folio</groupId>
114+
<artifactId>folio-module-descriptor-validator</artifactId>
115+
<version>${folio-module-descriptor-validator.version}</version>
116+
<executions>
117+
<execution>
118+
<goals>
119+
<goal>validate</goal>
120+
</goals>
121+
</execution>
122+
</executions>
123+
</plugin>
124+
103125
<plugin>
104126
<groupId>org.apache.maven.plugins</groupId>
105127
<artifactId>maven-surefire-plugin</artifactId>

0 commit comments

Comments
 (0)