Flowable/all-in-one Docker image /identity REST API endpoint

When I launch the flowable/all-in-one image:

# docker pull flowable/all-in-one

docker run -d --name flowable \
  -p 8080:8080 \
  --env-file ldap-env.txt \
  flowable/all-in-one

And then check the logs:

docker logs flowable

Output:


    //////////          &&&& &&&                                          ,,,         ,,,
  //////////////     &&&&&&& &&&                                          ,,,         ,,,
 ///          ///   &&&      &&&                                          ,,,         ,,,
 ////////     ///   &&&&&&&& &&&   &&&&&&&   &&&   &&&    &&&  ,,,,,,,,,, ,,,,,,,,,   ,,,   ,,,,,,,
 //////   //  ///   &&&&&&&& &&& &&&&   &&&& &&&   &&&    &&& ,,,    ,,,, ,,,,   ,,,, ,,, ,,,    ,,
 ///    ////  ///   &&&      &&& &&&     &&& &&&   &&&    &&& ,,      ,,, ,,,     ,,, ,,, ,,,,,,,,,
 //    /////  ///   &&&      &&& &&&    &&&& &&&   &&&    &&& ,,,    ,,,, ,,,,    ,,, ,,, ,,,
     ///////////    &&&      &&&  &&&&&&&&    &&&&&&&&&&&&&&   ,,,,,,,,,,   ,,,,,,,,  ,,,  ,,,,,,,,

  :: Flowable :: (v6.5.0-SNAPSHOT)    :: Spring Boot ::  (v2.2.2.RELEASE)

2020-01-07 02:23:53.715  INFO 1 --- [           main] o.f.u.m.a.FlowableModelerApplication     : Starting FlowableModelerApplication v6.5.0-SNAPSHOT on 25d7e898c602 with PID 1 (/opt/tomcat/webapps/flowable-modeler/WEB-INF/classes started by tomcat in /opt/tomcat)
2020-01-07 02:23:53.735  INFO 1 --- [           main] o.f.u.m.a.FlowableModelerApplication     : No active profile set, falling back to default profiles: default
2020-01-07 02:23:56.519  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2020-01-07 02:23:56.564  INFO 1 --- [           main] o.s.w.c.ContextLoader                    : Root WebApplicationContext: initialization completed in 2542 ms
2020-01-07 02:23:56.665  WARN 1 --- [           main] uration$JodaDateTimeJacksonConfiguration : Auto-configuration of Jackson's Joda-Time integration is deprecated in favor of using java.time (JSR-310).
2020-01-07 02:23:57.537  INFO 1 --- [           main] c.z.h.HikariDataSource                   : flowable-ui-modeler - Starting...
2020-01-07 02:23:57.979  INFO 1 --- [           main] c.z.h.HikariDataSource                   : flowable-ui-modeler - Start completed.
2020-01-07 02:23:57.992  INFO 1 --- [           main] o.f.u.m.c.DatabaseConfiguration          : database product name: 'H2'
2020-01-07 02:23:57.993  INFO 1 --- [           main] o.f.u.m.c.DatabaseConfiguration          : using database type: h2
2020-01-07 02:23:58.933  INFO 1 --- [           main] o.f.u.m.c.DatabaseConfiguration          : Configuring Liquibase
2020-01-07 02:23:59.639  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : SELECT COUNT(*) FROM PUBLIC.ACT_DE_DATABASECHANGELOGLOCK
2020-01-07 02:23:59.656  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : CREATE TABLE PUBLIC.ACT_DE_DATABASECHANGELOGLOCK (ID INT NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED TIMESTAMP, LOCKEDBY VARCHAR(255), CONSTRAINT PK_ACT_DE_DATABASECHANGELOGLOCK PRIMARY KEY (ID))
2020-01-07 02:23:59.660  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : SELECT COUNT(*) FROM PUBLIC.ACT_DE_DATABASECHANGELOGLOCK
2020-01-07 02:23:59.664  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : DELETE FROM PUBLIC.ACT_DE_DATABASECHANGELOGLOCK
2020-01-07 02:23:59.665  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : INSERT INTO PUBLIC.ACT_DE_DATABASECHANGELOGLOCK (ID, LOCKED) VALUES (1, FALSE)
2020-01-07 02:23:59.667  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : SELECT LOCKED FROM PUBLIC.ACT_DE_DATABASECHANGELOGLOCK WHERE ID=1
2020-01-07 02:23:59.676  INFO 1 --- [           main] l.l.StandardLockService                  : Successfully acquired change log lock
2020-01-07 02:24:00.854  INFO 1 --- [           main] l.c.StandardChangeLogHistoryService      : Creating database history table with name: PUBLIC.ACT_DE_DATABASECHANGELOG
2020-01-07 02:24:00.855  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : CREATE TABLE PUBLIC.ACT_DE_DATABASECHANGELOG (ID VARCHAR(255) NOT NULL, AUTHOR VARCHAR(255) NOT NULL, FILENAME VARCHAR(255) NOT NULL, DATEEXECUTED TIMESTAMP NOT NULL, ORDEREXECUTED INT NOT NULL, EXECTYPE VARCHAR(10) NOT NULL, MD5SUM VARCHAR(35), DESCRIPTION VARCHAR(255), COMMENTS VARCHAR(255), TAG VARCHAR(255), LIQUIBASE VARCHAR(20), CONTEXTS VARCHAR(255), LABELS VARCHAR(255), DEPLOYMENT_ID VARCHAR(10))
2020-01-07 02:24:00.857  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : SELECT COUNT(*) FROM PUBLIC.ACT_DE_DATABASECHANGELOG
2020-01-07 02:24:00.857  INFO 1 --- [           main] l.c.StandardChangeLogHistoryService      : Reading from PUBLIC.ACT_DE_DATABASECHANGELOG
2020-01-07 02:24:00.858  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : SELECT * FROM PUBLIC.ACT_DE_DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
2020-01-07 02:24:00.859  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : SELECT COUNT(*) FROM PUBLIC.ACT_DE_DATABASECHANGELOGLOCK
2020-01-07 02:24:00.920  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : CREATE TABLE PUBLIC.ACT_DE_MODEL (id VARCHAR(255) NOT NULL, name VARCHAR(400) NOT NULL, model_key VARCHAR(400) NOT NULL, description VARCHAR(4000), model_comment VARCHAR(4000), created TIMESTAMP, created_by VARCHAR(255), last_updated TIMESTAMP, last_updated_by VARCHAR(255), version INT, model_editor_json CLOB, thumbnail BLOB, model_type INT, CONSTRAINT PK_ACT_DE_MODEL PRIMARY KEY (id))
2020-01-07 02:24:00.925  INFO 1 --- [           main] l.c.ChangeSet                            : Table ACT_DE_MODEL created
2020-01-07 02:24:00.926  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : CREATE INDEX PUBLIC.idx_proc_mod_created ON PUBLIC.ACT_DE_MODEL(created_by)
2020-01-07 02:24:00.928  INFO 1 --- [           main] l.c.ChangeSet                            : Index idx_proc_mod_created created
2020-01-07 02:24:00.929  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : CREATE TABLE PUBLIC.ACT_DE_MODEL_HISTORY (id VARCHAR(255) NOT NULL, name VARCHAR(400) NOT NULL, model_key VARCHAR(400) NOT NULL, description VARCHAR(4000), model_comment VARCHAR(4000), created TIMESTAMP, created_by VARCHAR(255), last_updated TIMESTAMP, last_updated_by VARCHAR(255), removal_date TIMESTAMP, version INT, model_editor_json CLOB, model_id VARCHAR(255) NOT NULL, model_type INT, CONSTRAINT PK_ACT_DE_MODEL_HISTORY PRIMARY KEY (id))
2020-01-07 02:24:00.932  INFO 1 --- [           main] l.c.ChangeSet                            : Table ACT_DE_MODEL_HISTORY created
2020-01-07 02:24:00.932  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : CREATE INDEX PUBLIC.idx_proc_mod_history_proc ON PUBLIC.ACT_DE_MODEL_HISTORY(model_id)
2020-01-07 02:24:00.933  INFO 1 --- [           main] l.c.ChangeSet                            : Index idx_proc_mod_history_proc created
2020-01-07 02:24:00.934  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : CREATE TABLE PUBLIC.ACT_DE_MODEL_RELATION (id VARCHAR(255) NOT NULL, parent_model_id VARCHAR(255), model_id VARCHAR(255), relation_type VARCHAR(255), CONSTRAINT PK_ACT_DE_MODEL_RELATION PRIMARY KEY (id))
2020-01-07 02:24:00.935  INFO 1 --- [           main] l.c.ChangeSet                            : Table ACT_DE_MODEL_RELATION created
2020-01-07 02:24:00.936  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : ALTER TABLE PUBLIC.ACT_DE_MODEL_RELATION ADD CONSTRAINT fk_relation_parent FOREIGN KEY (parent_model_id) REFERENCES PUBLIC.ACT_DE_MODEL (id)
2020-01-07 02:24:00.945  INFO 1 --- [           main] l.c.ChangeSet                            : Foreign key constraint added to ACT_DE_MODEL_RELATION (parent_model_id)
2020-01-07 02:24:00.946  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : ALTER TABLE PUBLIC.ACT_DE_MODEL_RELATION ADD CONSTRAINT fk_relation_child FOREIGN KEY (model_id) REFERENCES PUBLIC.ACT_DE_MODEL (id)
2020-01-07 02:24:00.948  INFO 1 --- [           main] l.c.ChangeSet                            : Foreign key constraint added to ACT_DE_MODEL_RELATION (model_id)
2020-01-07 02:24:00.948  INFO 1 --- [           main] l.c.ChangeSet                            : ChangeSet META-INF/liquibase/flowable-modeler-app-db-changelog.xml::1::flowable ran successfully in 34ms
2020-01-07 02:24:00.950  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : SELECT MAX(ORDEREXECUTED) FROM PUBLIC.ACT_DE_DATABASECHANGELOG
2020-01-07 02:24:00.961  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : INSERT INTO PUBLIC.ACT_DE_DATABASECHANGELOG (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, DESCRIPTION, COMMENTS, EXECTYPE, CONTEXTS, LABELS, LIQUIBASE, DEPLOYMENT_ID) VALUES ('1', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', NOW(), 1, '8:e70d1d9d3899a734296b2514ccc71501', 'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', '', 'EXECUTED', NULL, NULL, '3.8.0', '8363840859')
2020-01-07 02:24:00.964  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : ALTER TABLE PUBLIC.ACT_DE_MODEL ADD tenant_id VARCHAR(255)
2020-01-07 02:24:00.976  INFO 1 --- [           main] l.c.ChangeSet                            : Columns tenant_id(varchar(255)) added to ACT_DE_MODEL
2020-01-07 02:24:00.977  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : ALTER TABLE PUBLIC.ACT_DE_MODEL_HISTORY ADD tenant_id VARCHAR(255)
2020-01-07 02:24:00.982  INFO 1 --- [           main] l.c.ChangeSet                            : Columns tenant_id(varchar(255)) added to ACT_DE_MODEL_HISTORY
2020-01-07 02:24:00.982  INFO 1 --- [           main] l.c.ChangeSet                            : ChangeSet META-INF/liquibase/flowable-modeler-app-db-changelog.xml::3::flowable ran successfully in 19ms
2020-01-07 02:24:00.984  INFO 1 --- [           main] l.e.j.JdbcExecutor                       : INSERT INTO PUBLIC.ACT_DE_DATABASECHANGELOG (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, DESCRIPTION, COMMENTS, EXECTYPE, CONTEXTS, LABELS, LIQUIBASE, DEPLOYMENT_ID) VALUES ('3', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', NOW(), 2, '8:3a9143bef2e45f2316231cc1369138b6', 'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', '', 'EXECUTED', NULL, NULL, '3.8.0', '8363840859')
2020-01-07 02:24:00.986  INFO 1 --- [           main] l.l.StandardLockService                  : Successfully released change log lock
2020-01-07 02:24:01.370  INFO 1 --- [           main] o.s.s.w.DefaultSecurityFilterChain       : Creating filter chain: Ant [pattern='/api/**'], [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5b3d20cc, org.springframework.security.web.context.SecurityContextPersistenceFilter@1b621efe, org.springframework.security.web.header.HeaderWriterFilter@79ed2670, org.springframework.security.web.authentication.logout.LogoutFilter@452946df, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@632fce34, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@65cb9158, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@4e51d06e, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@2f94abcc, org.springframework.security.web.session.SessionManagementFilter@783f8e9b, org.springframework.security.web.access.ExceptionTranslationFilter@71e70f8d, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@24415283]
2020-01-07 02:24:01.384  INFO 1 --- [           main] o.s.s.w.DefaultSecurityFilterChain       : Creating filter chain: org.flowable.ui.common.security.ActuatorRequestMatcher@1b3d68b6, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5c33ab81, org.springframework.security.web.context.SecurityContextPersistenceFilter@4d0cb2c5, org.springframework.security.web.header.HeaderWriterFilter@526d278, org.springframework.security.web.authentication.logout.LogoutFilter@23d06658, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@77f0b0de, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2189ac45, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@128f0f1e, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@558c3671, org.springframework.security.web.session.SessionManagementFilter@13814eba, org.springframework.security.web.access.ExceptionTranslationFilter@14df06df, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2d349056]
2020-01-07 02:24:01.388  INFO 1 --- [           main] o.s.s.w.DefaultSecurityFilterChain       : Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@3f2919c7, org.springframework.security.web.context.SecurityContextPersistenceFilter@f51c595, org.springframework.security.web.header.HeaderWriterFilter@7f475bd5, org.springframework.security.web.authentication.logout.LogoutFilter@4411aea2, org.flowable.ui.common.filter.FlowableCookieFilter@7f8510d3, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@41717985, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@4ad1b8d, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7a4c28d, org.springframework.security.web.session.SessionManagementFilter@78a724c3, org.springframework.security.web.access.ExceptionTranslationFilter@72b79b29, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@3a4d2ad]
2020-01-07 02:24:01.983  INFO 1 --- [           main] o.s.s.c.ThreadPoolTaskExecutor           : Initializing ExecutorService 'applicationTaskExecutor'
2020-01-07 02:24:02.158  INFO 1 --- [           main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page: class path resource [static/index.html]
2020-01-07 02:24:02.414  INFO 1 --- [           main] o.s.b.a.e.w.EndpointLinksResolver        : Exposing 13 endpoint(s) beneath base path '/actuator'
2020-01-07 02:24:02.592  INFO 1 --- [           main] o.f.u.m.a.FlowableModelerApplication     : Started FlowableModelerApplication in 9.871 seconds (JVM running for 15.411)
2020-01-07 02:24:02.768  INFO 1 --- [           main] o.s.w.s.DispatcherServlet                : Initializing Servlet 'Flowable Modeler App API Servlet'
2020-01-07 02:24:02.865  INFO 1 --- [           main] o.s.w.s.DispatcherServlet                : Completed initialization in 97 ms

...

There is no mention of REST API endpoints?

Try:

curl -i 'http://flowable:test@localhost:8080/flowable-task/process-api/identity/users/rob.ferguson'

Output:

{
    "message": "Not found",
    "exception": "Could not find a user with id 'rob.ferguson'."
}

Try:

curl -i 'http://flowable:test@localhost:8080/flowable-task/process-api/runtime/tasks?assignee=rob.ferguson'

Output:

{
    "data": [
        {
            "id": "c3a48b57-30f6-11ea-806d-0242ac110004",
            "url": "http://localhost:8080/flowable-task/process-api/runtime/tasks/c3a48b57-30f6-11ea-806d-0242ac110004",
            "owner": null,
            "assignee": "rob.ferguson",
            "delegationState": null,
            "name": "My First Task",
            "description": "My first Flowable task",
            "createTime": "2020-01-07T02:38:19.062Z",
            "dueDate": null,
            "priority": 50,
            "suspended": false,
            "claimTime": null,
            "taskDefinitionKey": null,
            "scopeDefinitionId": null,
            "scopeId": null,
            "scopeType": null,
            "tenantId": "",
            "category": null,
            "formKey": null,
            "parentTaskId": null,
            "parentTaskUrl": null,
            "executionId": null,
            "executionUrl": null,
            "processInstanceId": null,
            "processInstanceUrl": null,
            "processDefinitionId": null,
            "processDefinitionUrl": null,
            "variables": []
        }
    ],
    "total": 1,
    "start": 0,
    "sort": "id",
    "order": "asc",
    "size": 1
}

Try:

curl -i 'http://flowable:test@localhost:8080/flowable-task/process-api/identity/users/c3a48b57-30f6-11ea-806d-0242ac110004'

Output:

{
    "message": "Not found",
    "exception": "Could not find a user with id 'c3a48b57-30f6-11ea-806d-0242ac110004'."
}

See: Flowable Issue: 1958 - flowable/all-in-one Docker image missing REST API endpoints

Hi,

I’ve added a comment to the issue.

Regards,

Yvo

Hi Yvo,

Thanks, I have responded to your feedback.

In short, it works for non-LDAP users but not for LDAP users.

Cheers
Rob