1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Commit Graph

281 Commits

Author SHA1 Message Date
Roman
381d77c633
Refactoring extension-app compatibility checks (#5389) 2022-05-13 16:14:37 -04:00
Sebastian Malton
c376b848c9
Remove @types/react-select from npm/extensions/package.json (#5386) 2022-05-12 15:13:30 -04:00
Roman
74b4a752eb
Change engines.lens signature to only respect minimums (#5290)
Co-authored-by: Jim Ehrismann <40840436+jim-docker@users.noreply.github.com>
2022-05-12 14:18:25 -04:00
Sebastian Malton
dbdde19222
Add ability to hide KubeObjectMenu Edit and Remove buttons in extensions (#5107) 2022-05-04 12:44:31 -04:00
Roman
11f3cafac3
Expose Lens Monaco Editor component to extensions-api (#5264)
* Expose Lens Monaco Editor component to public, close #5094
2022-04-25 14:29:49 +03:00
Sebastian Malton
e977890677
Remove webpack.*.ts importing values from src/ (#4992) 2022-04-13 10:39:35 -04:00
Panu Horsmalahti
39b17334ba
Export getAppVersion in the extension API (#5239) 2022-04-12 11:18:44 -04:00
Panu Horsmalahti
1a29759bff
Enable consistent-type-imports eslint rule (#5205) 2022-04-06 10:34:16 -04:00
Janne Savolainen
8e8ad6663b
Fix LensRendererExtension.navigate() when extension is adding routes in "onActivate" callback (#5166)
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-04-01 14:30:15 +03:00
Iku-turso
a277cfcf02
Technical requirements for behavioural unit tests (#5084)
* Implement a lot of technical requirements for behavioural unit tests

Note: the crux of this was to make routing env-agnostic, and not based on URLs as magic strings, but instead something type-enforced.

Note: extension-based routes comply to same exact interface by "late-registering" their routes when installed. Routes are just injectables.

Note: another chunk of global shared state is no more.

Note: a lot of explicit side effects have been cornered to injectables.

Note: a lot of stuff has become reactive as part if this.

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make a directory commonly available

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Require id for <Select /> to prevent non-deterministic renders

This was caused by global state in a 3rd party lib: "react-select".

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Specify id for all <Select /> to satisfy previous commit

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Prevent explicit side effect in component by using existing dependency instead

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Extract instantiation of "conf" as injectables for causing side effects

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Introduce a legacy-helper to make gradual refactoring of inheritors of Singleton easier

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Make legacy unit tests for hotbar green and more simple by using the new legacy helper

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Temporarily kludge all unit tests green with a disclaimer about allowing side-effects

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Remove kludge in previous commit by explicitly permitting specific side effects where old unit tests require it

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Prevent old unit test with side effects from accessing file system

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Migrate to actual typing for di.permitSideEffects

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Prevent unit tests from failing because of non-standard method of HTML-element not present in js-dom

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Adapt integration tests to recent changes

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Fix code style

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Fix artifact from bad rebase

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Add a deprecation from a review comment

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Remove change that is not required

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove redundant comment

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix code style

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove redundant file

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix bad merge

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Improve variable name

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Tweak logger interface to be more descriptive

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make injecting legacy singleton always provide new instance

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove conditional typing when not needed

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Improve naming of variable

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove unnecessary code style changes

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove flag for causing side effects from too broad scope

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Override side-effects in unit test using injectable instead of monkey patching

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Flag some side-effects and add general overrides

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Fix unit tests in CI by removing explicit side-effect

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Remove explicit side-effect from getting default shell

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Introduce abstraction for getting absolute paths

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Switch to using abstraction for getting absolute path to control explicit side effect

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Introduce abstraction for joining paths

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Switch to using abstraction for joining paths to control explicit side effect

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix fake implementation for join paths

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix test after removing explicit side effect

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove explicit side effects from kubeconfig-syncs

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix arguments after removing explicit side effect

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make registrators not async for not being needed anymore

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make generalCatalogEntities non-observable, as there is no requirement

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Remove redundant code

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Simplify logic for registering general catalog entity sources

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Add TODO

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Replace function for getting application menu items with reactive solution

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix typo in interface name

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove global shared state usages of hot bar store

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove redundant enum

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
2022-03-31 16:57:05 +03:00
Iku-turso
ab4780f67c
Deprecate some undesirables (#5086) 2022-03-23 16:25:10 -04:00
Iku-turso
6b28f9e9c3
Bump injectable to 5.1.2 (#5010) 2022-03-17 08:15:21 -04:00
Alex Andreev
dd5dfb393d
Add 'Sync with computer' theme option (#4973) 2022-03-09 08:08:24 -05:00
Janne Savolainen
125a47a56d
Replace WorkloadsOverviewDetailRegistry with reactive solution (#4817)
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-03-04 10:04:38 +02:00
Janne Savolainen
54b87efd89
Replace KubeObjectStatusRegistry with reactive solution (#4815) 2022-03-03 07:55:57 -05:00
Sebastian Malton
0b32775d40
Enforce some naming conventions (#4813) 2022-03-01 13:06:53 -05:00
Janne Savolainen
b65f6e00ec
Update injectable library (#4842)
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
2022-02-25 11:10:13 -05:00
Steven Johnstone
625b00c247
Introduce and use "openBrowser" (#4876)
Co-authored-by: Steven Johnstone <sjohntone@mirantis.com>
2022-02-17 08:37:34 -05:00
Sebastian Malton
600bd659f6
Enforce member-delimiter-style using eslint (#4870) 2022-02-16 14:43:03 -05:00
Panu Horsmalahti
e626cc91d4
Don't block other extensions from loading if one activation fails (#4805)
* Don't block other extensions from loading if one activation fails.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Handle synchronous errors in onActivate

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Keep extensions that can't be activated in this.intances

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Return extensions that failed to be activated from loadExtensions to match old behavior.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Simplify style.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Simplify object. Remove unnecessary action.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2022-02-11 16:13:34 +02:00
Jim Ehrismann
9b9b8e0d05
ShellEnv extension api (#4802)
* adding extension api for terminal environment variables

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* modified shell env api to work as a transformer (WIP)

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* address some review comments

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* shell env modifiers now take a CatalogEntity in ShellEnvContext param

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* tweaks and bug fix

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* refactored to remove ShellEnvModifier code from shell-session to local-shell-session

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* further refactoring and documentation

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* added comment

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2022-02-10 16:01:59 -05:00
Juho Heikka
e950d3a77e
Expose Electron powerMonitor API to extensions (#4844) 2022-02-10 15:45:01 -05:00
Sebastian Malton
8480b2a1e5
Fix StatusBar extension API (#4838)
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
2022-02-10 09:08:59 -05:00
Sebastian Malton
76f48df56b
Fix rerendering of KubeObject views every 30s (#4801)
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
2022-02-03 09:11:28 -05:00
Janne Savolainen
ac42a6565f
Replace kube object menu registry with reactive solution (#4731)
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2022-01-31 10:16:29 -05:00
Sebastian Malton
0ce4e3d793
Full dependency inversion of <Dock> and all current tab kinds (#4757)
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-31 09:49:36 -05:00
Sebastian Malton
38790eb886
Upgrade to latest for all linting deps (#4755)
* Upgrade to eslint latest

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix OOM error

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* resolve PR comments

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2022-01-29 07:46:37 -05:00
Janne Savolainen
09b33633f7
Replace StatusBarRegistry with reactive solution (#4728) 2022-01-28 08:40:58 -05:00
Jari Kolehmainen
1cac3ca74c
Upgrade to Electron 14.2.4 (#4625)
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Jim Ehrismann <jehrismann@mirantis.com>
2022-01-27 10:23:36 -05:00
Jari Kolehmainen
57a2647a03
Export missing k8s api types for extensions (#4749)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2022-01-27 08:30:09 +02:00
Sebastian Malton
b3df5b4fc6
Fix pod logs dock tab (#4738)
- Move all dependencies into a transient LogsViewModel

- Remove dependencies on dockStore.selectedTab

- Make all bindings as late as possible, as per mobx rules

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2022-01-25 07:04:11 -05:00
Sebastian Malton
53ffc62391
Add extension API for registering custom category views (#4733) 2022-01-21 16:44:57 -05:00
Panu Horsmalahti
23c38b1f4e
Fix race condition with extension loading. (#4724)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2022-01-20 12:01:42 +02:00
Sebastian Malton
411b9a9a88
Add support for custom columns on catalog categories (#4708) 2022-01-19 10:22:22 -05:00
Jim Ehrismann
d31ab690c2
Refactor app-preferences-registry to use di (#4671)
* converting app-preferences to use di

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* address review comments and fix lint

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* use compact license header

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2022-01-19 08:54:45 -05:00
Panu Horsmalahti
79c01daf6a
Support extending KubernetesCluster in extensions (#4702)
* Support extending KubernetesCluster in extensions

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Simplify getItemsByEntityClass

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Make apiVersion string.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Improve entity loading for extension custom types.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Improve comment.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Fix lint.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Properly handle loading custom entity in cluster-frame

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Avoid .bind with .loadOnClusterRenderer

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Fix lint.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Revert style change.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Make loadOnClusterRenderer arrow function again, revert autoInitExtensions change as unnecessary

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Remove commented code.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Document extending KubernetesCluster in extension guides.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2022-01-19 14:57:42 +02:00
Janne Savolainen
589472c2b5
Shorten license header to reduce amount of clutter in top of the files (#4709)
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-18 10:18:10 +02:00
Janne Savolainen
edd9dcd44b
Fix duplicate import
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-14 08:04:25 +02:00
Janne Savolainen
00f6d6bc1f
Merge remote-tracking branch 'origin/master' into eliminate-gst-from-app-paths 2022-01-14 07:59:42 +02:00
Sebastian Malton
2ee47a442a
Reroute to landing page from previously registered extension cluster pages (#4385) 2022-01-12 08:47:42 -05:00
Sebastian Malton
d40071a9d5
Fix CommandOverlay for extension API (#4673) 2022-01-11 11:58:23 -05:00
Janne Savolainen
995983f0b0
Fix code style
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-11 14:03:51 +02:00
Janne Savolainen
8d87bd0985
Merge remote-tracking branch 'origin/master' into eliminate-gst-from-app-paths
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-11 13:56:23 +02:00
Janne Savolainen
e1a6d4c4a9
Merge remote-tracking branch 'origin/master' into eliminate-gst-from-app-paths 2022-01-10 17:13:20 +02:00
Janne Savolainen
ff9e9bd169
Re-implement some Extension API features using injectables
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-07 12:10:02 +02:00
Sebastian Malton
f8ae1149fb Make all of Command* injectable, with some others too
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2022-01-05 11:48:52 -05:00
Sebastian Malton
abe90ad92a Add CRDs to Command Palette and fix bugs
- Deprecate the "scope" on command registrations as it is buggy and
  generally unfixable

- Switch to mounting CommandContainer in each new frame so that there is
  no need to broadcast anything other than opening palette

- Add CRD entries to the command registry within each cluster

- Add navigate to CommandActionContext to simplify handling of root
  frame scoped URLs

- Switch to using DI for some of the deps

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2022-01-05 11:48:51 -05:00
Sebastian Malton
4f75acf2b4
Ban circular dependencies (#3547) 2022-01-05 11:35:44 -05:00
Janne Savolainen
4224937260
Merge remote-tracking branch 'origin/master' into eliminate-gst-from-app-paths
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-05 15:04:43 +02:00
Janne Savolainen
9d33fff906
Cascade different refactorings to eliminate global shared state from app paths
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-05 13:26:49 +02:00