Skip to content

Commit

Permalink
Merge pull request #69 from i-Cell-Mobilsoft-Open-Source/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
gtamas committed Jun 22, 2020
2 parents 6f38a33 + 35ebbdf commit 70e24a6
Show file tree
Hide file tree
Showing 60 changed files with 10,116 additions and 2,740 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ node_modules
/tests/e2e/videos/
/tests/e2e/screenshots/

*.provisionprofile

# vscode
*.code-workspace
Expand Down
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,25 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.2] - 2020-06-21

### Added
- Lease management
- Creation of keys with TTL
- HTTPS connections
- SSL / TLS support
- Certificate based authentication
- Settings import / export
- Display profile settings in header


### Fixed
- Username pattern is now more relaxed
- App now works without internet connection
- Improved profile handling, added batter config management.
- List auto refresh issues (keys, leases etc)


## [0.1.2-beta.4] - 2019-08-19
### Added
- Quick help is now available everywhere
Expand Down
82 changes: 48 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

- [ETCD Manager](#etcd-manager)
* [Features](#features)
+ [Coming soon: v1.15](#coming-soon-v115)
+ [Available now](#available-now-v11)
+ [Coming: v1.3](#coming-up-v13)
+ [Available now](#available-now-v12)
+ [Planned](#planned)
* [Installation](#installation)
+ [End users..](#end-users)
Expand All @@ -32,48 +32,59 @@ Please note that currently ETCD V2 API **is not** supported! At the moment, we s

## Features

### Available now (v1.1)
### Available now (v1.2)

Currently, the following features are implemented:

- Manage (browse, create, edit, delete) keys.
- Key browser has multiple views: tree or pageable list.
- Show revisions of any key and revert to any previous value.
- Manage users
- Manage roles and permissions.
- Manage watchers. Supported event responders: app or desktop notification, app console logger.
- Assign or revoke user roles
- Display basic info about ETCD cluster and its nodes.
- Use multiple config profiles. Manage any number of ETCD clusters with dedicated settings.
- ETCD Authentication is supported (but it's optional).

### Coming soon (v1.15)

This next release is mainly for contributors. There will be no new features in this one, instead we gonna focus solely on making it easier to understand how the code works and how to get started with contributing. In order to achieve this, we'll refactor many parts of the code and we'll also try to provide better documentation for contributors and a project dashboard.
- Key management:
- Manage (browse, create, edit, delete) keys.
- Create keys with TTL
- Key browser has multiple views: tree or list with paging.
- Key list live updates: refresh list when the value of any key changes.
- Manage revisions: list revisions of any key and revert to any previous value.
- Settings and config:
- Able to use multiple config profiles, allowing you to manage any number of ETCD clusters with dedicated settings.
- Import / export settings: save settings to or load from file.
- Authentication and security:
- Basic authentication: (username / password)
- HTTPS client certificate authentication
- Supports both HTTP and HTTPS (secure) connections
- Supports no auth (ETCD with authentication disabled)
- Other functions:
- Display basic info about ETCD cluster and its nodes, perform health checks.
- Manage leases: list and revoke leases, view details.
- Manage users: create, update or delete users.
- Manage roles and permissions: create, update delete roles, assign / revoke permissions.
- Manage watchers. Supported event responders: app or desktop notification, app console logger.
- Intranet mode: works without internet connection.

### Coming up (v1.3)

This release is mainly for contributors. There will be no new features in this one. Instead, we gonna focus solely on making it easier to understand how the code works and how to get started with contributing. In order to achieve this, we'll refactor many parts of the code and we'll also try to provide better documentation for contributors and a project dashboard.

As for refactoring, some of the things we gonna change are:

- Better typing (add missing types, no "any", "unknown" and crap like that)
- Better typing (we gonna add missing types, no "any", "unknown" and crap like that)
- Better tests (we are planning to replace Spectron with Cypress)
- Smaller, more focused, easy to maintain components. We are considering to use the Vue 3 Composition API here.
- Smaller, more focused, easy to maintain components. We are going to to use the Vue 3 Composition API here.
- Better folder structure for source files.
- Proper DI support (for services, filters etc).
- Proper Dependency Injection support (for services, filters etc).
- Missing something? Please open a [feature request](https://github.com/icellmobilsoft/etcdmanager/issues)!


### Planned

We plan to add tons of cool features in the future. The most important ones are listed below.:

**Features**

- Watchers: more responders, such as Email, Log to file, Log to REST API, Slack, Whatsapp, Google Chat, Viber integration.
- Cluster: maintenance features and more detailed cluster info
- Rapid config: export / import
- Watchers: more responders, such as Email, Log to file, Log to REST API as well as app integrations like Slack, Google Chat, Viber etc.
- Cluster: maintenance / admin features and more detailed cluster info
- ETCD Dashboard: live dashboard with graphs.
- Lease management
- Complex queries using transactions.
- Diff tool: compare the revisions of any two keys (much like Total Commander).
- Report generation in different formats (HTML, PDF, XML etc)
- Better in-app console
- ... and much more!

**Future platforms**

Expand All @@ -86,15 +97,15 @@ A better organized overview of these plans will be available soon. Stay tuned :)

### End users..

The current stable (prod) version is 1.1. It's available for **Mac OS X (Mojave+)**, **MS Windows (7, 8, 10+)** and some major **Linux distros (Ubuntu 10.04+, Arch etc)**. The following are pre-built binaries and they are the recommended way to install.
The current stable (prod) version is 1.2. It's available for **Mac OS X (10.15.5 Catalina+)**, **MS Windows (7, 8, 10+)** and some major **Linux distros (Ubuntu 10.04+, Arch etc)**. The following are pre-built binaries and this is the recommended way to install.

If you are using a more or less recent major Linux distro (Ubuntu, Redhat, Suse etc), or Ubuntu LTS or some up-to-date rolling release distro like Arch, everything should work fine. Most older Linux systems should be supported as well. However, **very old** Linux versions might not work as expected. If you have difficulties installing the app, please report the problem in our issue tracker.
If you are using a more or less recent major Linux distro (Ubuntu, Redhat, Suse etc), or Ubuntu LTS or some up-to-date rolling release distro like Arch, everything should work fine. Most older Linux systems should be supported as well. However, **very old** Linux versions might not work as expected. If you have difficulties installing the app, please report the problem using our issue tracker.

Grab one now:

- [Windows](https://github.com/icellmobilsoft/etcdmanager/releases/download/v1.1.0/etcd-manager-1.1.0-win64.exe)
- [MacOS](https://github.com/icellmobilsoft/etcdmanager/releases/download/v1.1.0/etcd-manager-1.1.0-osx.dmg)
- [Linux](https://github.com/icellmobilsoft/etcdmanager/releases/download/v1.1.0/etcd-manager-1.1.0-linux.AppImage)
- [Windows](https://github.com/icellmobilsoft/etcdmanager/releases/download/v1.2.0/etcd-manager-1.2.0-win64.exe)
- [MacOS](https://github.com/icellmobilsoft/etcdmanager/releases/download/v1.2.0/etcd-manager-1.2.0-osx.dmg)
- [Linux](https://github.com/icellmobilsoft/etcdmanager/releases/download/v1.2.0/etcd-manager-1.2.0-linux.AppImage)

Other packages are available for download as well, please see the [releases](https://github.com/icellmobilsoft/etcdmanager/releases) page.

Expand All @@ -112,11 +123,14 @@ snap install etcd-manager
You may install the dev version by cloning this repository.

```
git clone https://github.com/icellmobilsoft/etcdmanager.git
git clone https://github.com/i-Cell-Mobilsoft-Open-Source/etcdmanager.git
```

Or you may also install the NPM package (although this is ***not recommended***, since the package might not contain the latest code).

First of all, you must install Yarn. Please see [this page](https://classic.yarnpkg.com/en/docs/install) for details.


```
yarn add etcd-manager
cd node_modules/etcd-manager
Expand Down Expand Up @@ -150,19 +164,19 @@ Finally, start the dev server in the following way:
yarn electron:serve
```

This will start a dev build, and the app should appear shortly.
This will start a dev build and the app should appear shortly.

## Usage and support

First of all, in order to work properly, ETCD Manager must be configured.

You need to provide only two mandatory settings: the **host** and the **port** ETCD is running at. You'll find these on the **settings** screen, under the **ETCD tab**.
If your ETCD host requires authentication, you will also need to provide a password / username pair, which you can do under the **auth tab**. Please note that (for now), you have to enable ETCD authentication **manually** (e.g.: via etcdctl). We gonna add GUI for this in the future.
If your ETCD host requires authentication, you will also need to provide a password / username pair or certificates / keys, which you can do under the **auth tab**.
There are several additional configuration options, but those are all optional.

Detailed documentation is not available (yet), but you may want to activate **quick help**, which is available everywhere. Press **CTRL / CMD + H** to open the help pane. Here you'll find some basic info as well as all the **keyboard shortcuts**. This should be enough to get you started.

If you still need help, please feel free to contact us. Open an [issue](https://github.com/icellmobilsoft/etcdmanager/issues) (question / support request).
If you still need help, please feel free to contact us. Create a [issue](https://github.com/icellmobilsoft/etcdmanager/issues) (question / support request).

Once the documentation is ready, we'll upload it to the website.

Expand Down
18 changes: 11 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "etcd-manager",
"version": "1.1.0",
"version": "1.2.0",
"description": "Multi-platform ETCD v3 client and GUI",
"author": "Tamas Geschitz <[email protected]>",
"scripts": {
Expand All @@ -23,14 +23,15 @@
"main": "background.js",
"dependencies": {
"@grpc/proto-loader": "^0.5.1",
"@trodi/electron-splashscreen": "^0.3.4",
"@trodi/electron-splashscreen": "^1.0.0",
"core-js": "^3.3.2",
"electron-updater": "^4.2.0",
"etcd3": "^0.2.11",
"grpc": "1.24.2",
"list-to-tree": "^2.2.3",
"lodash-es": "^4.17.11",
"markdown": "^0.5.0",
"marked": "^1.0.0",
"mousetrap": "^1.6.3",
"protobufjs": "^6.8.8",
"uuid": "^3.3.2",
Expand All @@ -47,25 +48,28 @@
},
"devDependencies": {
"@types/lodash-es": "^4.17.3",
"@types/marked": "^0.7.4",
"@types/mousetrap": "^1.6.3",
"@types/uuid": "^3.4.4",
"@types/vuelidate": "^0.7.5",
"@vue/cli": "^4",
"@vue/cli-plugin-babel": "^4.1.1",
"@vue/cli-plugin-typescript": "^4.1.1",
"@vue/cli-service": "^4.1.1",
"@vue/cli-plugin-babel": "^4.3.1",
"@vue/cli-plugin-typescript": "^4.3.1",
"@vue/cli-service": "^4.3.1",
"babel-loader": "^8.1.0",
"chai": "^4.2.0",
"chai-as-promised": "^7.1.1",
"electron": "^6",
"electron-builder": "^21",
"electron-icon-builder": "^1.0.1",
"husky": "^3.0.0",
"husky": "^4.2.5",
"mocha": "^6.2.0",
"node-sass": "^4.9.0",
"sass-loader": "^8",
"spectron": "^8",
"tslint-config-airbnb": "^5.11.1",
"typescript": "^3.4.3",
"tslint-config-prettier": "^1.18.0",
"typescript": "^3.8.3",
"vue-cli-plugin-electron-builder": "^1.3.2",
"vue-devtools": "^5.0.0-beta.1",
"vue-template-compiler": "^2.5.21"
Expand Down
20 changes: 20 additions & 0 deletions public/WHATSNEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## New features:

- HTTPS client certificate authentication
- Secure connections (HTTPS / SSL / TLS support)
- Create keys with TTL
- Key list live updates: refresh list when the value of any key changes.
- Import / export settings: save settings to or load from file.
- Profile info is now displayed in app header
- Improved config profile management
- Manage leases: list and revoke leases, view details.
- Intranet mode: works without internet connection.

## Fixes

- Username now supports special characters
- Password patterns have been improved
- Several CSS issues fixed which caused the UI to display break without network access
- Several user and role management issues fixed
- Watcher notification fixes.
- and many more..
Loading

0 comments on commit 70e24a6

Please sign in to comment.