Alternative UI to Camunda BPM Webapps (Tasklist, Cockpit, and Admin) + More!
Default app is a "Kitchen Sick" app that covers runtime and history apis.
Contributions and collaboration is always welcomed.
- Extendable
- Customizable
- Enterprise Friendly
- White-label Friendly
- Theme-able
- Runtime and History API access!
- Swap APIs for your custom endpoints
- What more do you need?
See Docker folder
Analyze your BPMN Element configurations (WIP):
- open terminal at
./src/MainApp
- run
dotnet run
- got to
localhost:5001
Requires HTTPS on the Camunda API endpoint.
Development use only.
@Configuration
class CamundaConfig {
@Bean
fun processCorsFilter(): FilterRegistrationBean<*> {
val source = UrlBasedCorsConfigurationSource()
val config = CorsConfiguration()
config.allowCredentials = true
config.addAllowedOrigin("https://localhost:5001")
config.addAllowedHeader("*")
config.addAllowedMethod("*")
source.registerCorsConfiguration("/**", config)
val bean = FilterRegistrationBean(CorsFilter(source))
bean.order = 0
return bean
}
}
@Configuration
class CamundaSecurityFilter {
@Bean
fun processEngineAuthenticationFilter(): FilterRegistrationBean<*> {
val registration = FilterRegistrationBean<Filter>()
registration.setName("camunda-auth")
registration.filter = getProcessEngineAuthenticationFilter()
registration.addInitParameter(
"authentication-provider",
"org.camunda.bpm.engine.rest.security.auth.impl.HttpBasicAuthenticationProvider"
)
registration.addUrlPatterns("/engine-rest/*")
return registration
}
@Bean
fun getProcessEngineAuthenticationFilter(): Filter {
return ProcessEngineAuthenticationFilter()
}
}
application.yml
server.ssl.key-store: classpath:keystore.p12
server.ssl.key-store-password: MYPASSWORD
server.ssl.key-store-type: PKCS12
server.ssl.key-alias: tomcat
async Task SetupDocumentationOverlays()
{
var overlays = _bpmnViewer.BpmnElements.FindAll(el => el.BusinessObject.HasDocumentation())
.Select(i => new OverlayConfig(i.InternalId, element =>
{
return new OverlayConfig(
elementId: i.InternalId,
overlayRenderFragment: _ => @<MudIcon Icon="@Icons.Filled.HistoryEdu" Size="Size.Small"/>,
positionTop: -25,
positionLeft: (element.Width / 2) - 5,
tags: new[] {"documentation"}
);
}));
_overlayConfigs.AddRange(overlays);
}