It is possible to create a namespace via the CLI, but how to do it using Java SDK?
Programmatically it is done through gRPC API exposed by the service.
In Java the generated gRPC client is accessible through WorkflowServiceStubs:
WorkflowServiceStubs service =
WorkflowServiceStubs.newInstance(
WorkflowServiceStubsOptions.newBuilder().setTarget(serviceAddress).build());
RegisterNamespaceRequest request =
RegisterNamespaceRequest.newBuilder()
.setNamespace(NAMESPACE)
.setWorkflowExecutionRetentionPeriod(Durations.fromDays(7))
.build();
service.blockingStub().registerNamespace(request);
In Go SDK you can use higher-level NamespaceClient:
client, err := client.NewNamespaceClient(client.Options{HostPort: ts.config.ServiceAddr})
...
err = client.Register(ctx, &workflowservice.RegisterNamespaceRequest{
Name: name,
WorkflowExecutionRetentionPeriod: &retention,
})
OP and additional discussion here.