Skip to content

feat: introduce workspaces#138

Closed
binarycat0 wants to merge 27 commits intoapache:mainfrom
binarycat0:feature/console/introduce-workspaces
Closed

feat: introduce workspaces#138
binarycat0 wants to merge 27 commits intoapache:mainfrom
binarycat0:feature/console/introduce-workspaces

Conversation

@binarycat0
Copy link
Copy Markdown
Contributor

@binarycat0 binarycat0 commented Jan 23, 2026

Motivation

The console previously relied on environment variables to configure a single Polaris context (server, realm, and authentication). This approach does not align with the idea of a management console that can be used across different realms and environments, and it limits flexibility when working with multiple Polaris setups or experimenting with authentication methods.

Introducing workspaces shifts the focus from static, environment-based configuration to a user-managed model. A workspace represents an isolated Polaris context (server + realm + auth), making it possible to use one console instance to interact with multiple Polaris environments in a consistent and scalable way.

This change is also a preparatory step for upcoming OIDC integration in the Console UI:
[WIP] #125

Features

  • Support for multiple workspaces, each representing a distinct Polaris context
  • Workspace configuration managed via the UI instead of environment variables
  • Each workspace encapsulates:
    • Polaris server URL
    • Realm and realm header name
    • Authentication configuration
  • Ability to authenticate into multiple workspaces and switch between them
  • Multiple authentication model (currently client credentials; OIDC unblocked for future work)

Benefits

  • Use a single console instance to work with multiple Polaris environments
  • Clean separation of realms and authentication contexts via workspaces
  • No need to reconfigure or restart the console when switching environments
  • Improved UX through explicit workspace selection and session persistence
  • Establishes a clear foundation for OIDC and additional auth providers

Additional Details

  • Removed dependency on environment variables for realm and auth configuration
  • Added workspace selection to the login flow
  • Authentication state is scoped per workspace
  • Design intentionally aligns workspaces with future extensibility (auth providers, policies, UX improvements)

cc: @jbonofre @sohanhonavar @adam-christian-software @dimas-b


Modified login form

image

Ability to chose between the multiple workspaces and auth methods

image

Dummy warning about WIP on the OIDC implementation

image

Workspaces Management space

image

Show active worskpace. Switching between workspaces

image

@dimas-b dimas-b requested a review from jbonofre January 23, 2026 17:35
Copy link
Copy Markdown

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice improvement, @binarycat0 ! I think this feature is worth adding to Polaris UI.

I cannot say much about actual code change, but I ran this UI in my local and it worked very well. Some UX notes below.

  • In the "create workspace" there are auto-filled values, but I do not see an easy way to accept them... the Create button does not work unless I type in the same values manually.
  • When under Home it's not clear what workspace I'm in. Current Realm is shown, though, but it's not 1:1 with workspace.
  • Workspaces show all possible workspaces, but on the left-hand pane this page is parallel to Catalogs, while Catalogs is specific to the current workspace, I assume, right? This is kind of awkward. I'd proposed to remove the Workspaces page from the left-hand pane and only show the current workspace when the user is logged in.

@binarycat0
Copy link
Copy Markdown
Contributor Author

Very nice improvement, @binarycat0 ! I think this feature is worth adding to Polaris UI.

I cannot say much about actual code change, but I ran this UI in my local and it worked very well. Some UX notes below.

* In the "create workspace" there are auto-filled values, but I do not see an easy way to accept them... the `Create` button does not work unless I type in the same values manually.

* When under Home it's not clear what workspace I'm in. Current Realm is shown, though, but it's not 1:1 with workspace.

* `Workspaces` show all possible workspaces, but on the left-hand pane this page is parallel to `Catalogs`, while `Catalogs` is specific to the current workspace, I assume, right? This is kind of awkward. I'd proposed to remove the `Workspaces` page from the left-hand pane and only show the current workspace when the user is logged in.

Hello! Thanks for the interesting findings and your experience, it's very valuable.
It's totally worth to populate the default values in the form's fields for new entries, so I will think how to manage this.

Yeah, I'm agree about workspaces, it's really not obvious which is active and how to switch between them and if it's available even. I have a couple ideas how to manage this, I will give it a try.

@binarycat0
Copy link
Copy Markdown
Contributor Author

During my work on this PR I introduce "prettier" linting tool and then later I decided to move linting-changes as separate PR.
Depends on: #139

@binarycat0 binarycat0 force-pushed the feature/console/introduce-workspaces branch from f12c9e6 to 226b572 Compare January 27, 2026 13:18
@binarycat0 binarycat0 marked this pull request as ready for review January 27, 2026 13:32
dimas-b
dimas-b previously approved these changes Jan 27, 2026
Copy link
Copy Markdown

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update, @binarycat0 ! The workspaces UI LGTM now, but I hope someone more familiar with the framework can review too...

@jbonofre ?

@dimas-b dimas-b dismissed their stale review January 27, 2026 16:29

I tried adding a new workspace with a non-default Polaris URI, but it did not appear to be used by UI :|

@binarycat0 binarycat0 marked this pull request as draft January 29, 2026 11:39
@binarycat0
Copy link
Copy Markdown
Contributor Author

blocked by: #147

@binarycat0 binarycat0 force-pushed the feature/console/introduce-workspaces branch from f1d4ba4 to b021fec Compare February 1, 2026 16:53
@binarycat0 binarycat0 marked this pull request as ready for review February 1, 2026 17:40
@binarycat0
Copy link
Copy Markdown
Contributor Author

Ready for review.

@binarycat0 binarycat0 closed this Mar 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants