Giter Club home page Giter Club logo

galapagos's People

Contributors

1123 avatar 8mk avatar ahmedullah-neyazi-hg avatar albrechtflo-hg avatar gunnark avatar hussam-hg avatar jimbethancourt avatar jonashess avatar lucapette avatar polatemre-hg avatar snyk-bot avatar stephanstapel avatar ueberschaersilas-hg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

galapagos's Issues

Developer API keys for Confluent Cloud

Similar to developer certificates, it should also be possible to obtain developer API keys for Kafka clusters based on Confluent Cloud. However, an artificial expiry date must be implemented here, after which Galapagos will delete this API key again.

Unify and streamline naming patterns

Currently, naming patterns for topics, consumer groups etc. can only be configured in an inconsistent and not very flexible way. Additionally, in the frontend, not everything configured in the backend for the naming patterns is considered correctly (especially when deviating from the Hermes default values).

As a Galapagos administrator, I want to be able to centrally configure patterns and naming rules for

  • Topic names
  • Internal Topic prefixes
  • Consumer Group prefixes
  • Transactional ID prefixes

As a Galapagos user, I want to easily get an overview over the prefixes which are valid for my application. Also, I want to see the applicable naming convention for Topic names directly in the UI, as far as feasible.

Naming persistence

Galapagos should persist the prefixes associated with an application, although this would not be necessary from a "naming logic" point of view. The relevant information what prefixes are valid for use by an application are determined by

  • Galapagos Configuration
  • Name of the (known) Application
  • Potential aliases of the (known) Application

KnownApplications are entities which are provided by external means, e.g. via JSON Import or via external tooling writing them directly to galapagos.internal.known-applications topic. These may change at any time, but an application should not (immediately) lose the right to write to its internal topics only because its name changed in an external (e.g. Enterprise Architecture) system. So we must decouple this a bit.

Additionally, there is an Admin Job for updating application ACLs from stored metadata. As this may - in principle - also be called at any time, this should also not change application rights "only" because its metadata in an external system changed.

For this reason, even the current implementation already stores valid prefixes for an application in ApplicationMetadata and thus in the internal topic galapagos.internal.application-metadata. This is stored when the certificate for the application is created on a given environment.

When streamlining the naming logic, the metadata should include all valid prefixes at the time of certificate creation on the first environment. When creating certificates for later stages, the prefixes of the first stage shall be copied automatically.

Update process

When e.g. the name of the KnownApplication changes for an already "registered" application and a user wants to make use of the changed prefix, they will have to recreate (or "extend") the certificate on the first environment, and then on all following stages. This is not completely intuitive, but still logical, as the first environment usually is where the new prefix will be used first.

As this may also cause previous rights to be revoked, the user shall get an explicit notification about changes in rights when these are detected, every time a certificate is issued / extended.

Open Questions

Even during certificate extension, rights on the affected stage may be revoked immediately also for the running production application (as the ACLs are assigned to the "user names" in the certificates, not to the certificates themselves). This is not following the Principle of least surprise, and should be mitigated somehow. Potential solutions are:

  • Offer user the option to keep previous prefixes
  • Issue a new identity even when creating extension certificates, with changed rights only assigned to new identity. Would require some "housekeeping" to remove previous identities after certificate expiry.

"Generate certificate" button is enabled when it shouldn't be

When generating a certificate on the Prod, right after doing the same on dev stage, The radio button for "Generate private key" is now selected, but disabled because we are on a production environment. Nevertheless, the button "Generate certificate" is enabled because the radio button is selected.

Delete Json-Schema with Subscribers using a feature toggle

As Application Topic Owner I want to be able to delete a published Schema Version even if there are subscribers on the respective Topic. This way I am not bound to the Developer Teams and can just delete a Json-Schema If i want to .
Deleting a schema of a Topic with subscribers should only be possible on the DEV-Stage, on all other stages the feature toggle will not be used. Please Note that the schema still must not be deletable if it is already staged to the next environment.
The feature toggle has to be defined in the application.properties file.

Downgrade ng-bootstrap

The current Version of ng-bootstrap uses bootstrap 5 but galapagos works with bootstrap 4.6

Split Single Topic Component into smaller Components

The html template for the single-topic component has become very large (+400 lines of code), so that the overview is quickly lost here. Thus, in the context of this ticket, the single-topic component should be divided into several individual components. These components then have their own html templates, which in turn leads to better readability.

Partition Count for Galapagos Metadata Topics should be 1

Currently, Galapagos creates its Metadata Topics with a Partition Count of 3. This has no advantage, as even with multiple instances of Galapagos running, each instance fully reads each metadata topic. But in environments like Confluent Cloud, where you pay for each Topic Partition, this causes unnecessary costs. So, Galapagos should create Metadata Topics with a Partition Count of 1.

Radiobuttons disabled in certificate dialog

When opening the certificate dialog on the PROD-Stage, then both radio buttons are disabled, but actually only the second one should be disabled, the CSR radio button should still be selectable.
On the DEV-Stage it works fine, both button can be choosen, but generating a certificate on PROD using the CSR mode is not possible and should be fixed in this issue.

The initial JSON schema is not reset after creating a topic

If I enter a JSON schema directly when creating a topic, create the topic and then create another topic, the JSON schema can still be seen in the corresponding text field. The other text fields on the "Create topic" page are emptied after creating a topic, but this one is not.

"Data Settings" for topics on the "Create Topic" Page

Basically, each topic requires a number of technical settings that are necessary for proper operation or for working with the topic by applications. Users should be given maximum support in setting the correct topic settings. For that, there shpuld be a new Section on the "Create Topic" Page, where the following Data for a Topic should be captured from the user:

  1. Contains the the Topic personal data?
  2. Which Cleanup-strategy should be used (Log Compaction, Deletion or both)?
  3. Criticality (how critical is the data on the topic?)
  4. Estimation of the size of the topic

Toast are currently only in German

Even if i change the Language Settings and the whole site is on english, the toast will stay in german. That makes it hard to understand for non-german user.

Kafka Version not shown for Confluent Cloud mode

Since adding support for Confluent Cloud, it was not possible to easily get the Version number of the managed Kafka Cluster. As a workaround, the UI should on the dashboard page show the String "Confluent Cloud", if the current environment is in the "ccloud" mode.

GitHub Release does not update pom.xml

Currently, creating a GitHub Release (via GitHub UI) does not update the pom.xml with the non-SNAPSHOT version.

The pom.xml should be updated by the release.yml script, and the updated file should then be commited and form the "real" commit for the performed release. The tag of the release should also be updated to point at this commit.

UI tests are not executed o Github

Currently, the existing UI-Tests are not executed, because they are not integrated in den CI Process. The Tests should be executed when ever merging into the next_minor branch.

Upgrade Angular to 10.2

We are still at Angular 8. To use latest features like the Angular plugin for ESLint (also see #9), we should move to at least 10.2. Later Angular versions are still not fully supported by all Angular libraries we use, so we should be fine with 10.2 for now.

Update to JUnit 5

Galapagos still uses JUnit 4 for backend testing. As a Galapagos developer I would like to write tests in JUnit 5 style in order to be able to use new features that allow me to write simpler tests.

Property galapagos.kafka.readonly not working

The property galapagos.kafka.readonly is currently not working. If this Property is set to "true", Galapagos will not perform any modification operations in Kafka. Currently this property has no effects and should be fixed.

Generate API Keys for Confluent Cloud Support

As part of the support of Confluent Cloud, we will have to generate API keys from Galapagos. Since there is currently no officially available API for creating and deleting API keys, we have to use a command line client and "wrap" with Java - or use the "unofficial" API that the command line client uses.

Button "Delete Schema Version" is visible for non-Topic Owners

The Button "Delete Schema Version" is visible even if I am not the owner of the currently viewed Topic. Luckily, it does not work in this case, as the backend detects my missing authorization for that topic.

There seems to be just a small check for isOwnerOfTopic missing since the 1.8.0 release.

certificates-workdir property outdated in preconfigured config files

In both application-dev.properties and application-ccloud.properties, the property galapagos.kafka.certificates-workdir=file:${java.io.tmpdir}/galapagos is defined, although it is no longer in use since Galapagos 2.1.0. Instead, this property should be defined on each certificate-based environment, e.g.

galapagos.kafka.environments[0].certificates.certificatesWorkdir=file:${java.io.tmpdir}/galapagos

application-dev.properties should be adjusted accordingly, and the old property should just be removed from application-ccloud.properties.

Topic Name Generation doesn't always work

If you first select an application which has no API-Key, and then switch to another application, it doesn't generate a name for this topic and the Button to create a Topic is still deactivated.

Include Java Formatting validation in Build

Analogous to #9, we should also include a validation of Java Formatting Rules in the build process.

As a Galapagos Maintainer, I want to make sure that every contribution adheres to our Java Formatting Rules. I do not want to have to check formatting rules when reviewing changes.

As a Galapagos Contributor, I want easy access to the Galapagos Java Formatting Rules. They should be available in a format which I can use in most IDEs (maybe after installing a plugin). Also, auto-formatting Java Code should be available via a Maven Goal.

New Admin Job "Create Backup"

As a Galapagos administrator, I would like to be able to automatically create a backup of the productive metadata. This should be possible via a new Admin job. The JSON output should then be written to standard output. Using this JSON i can see all the metadata currently active within Galapagos or i can also import this JSON using the already present admin job "ImportBackupJob".

Galapagos Logo in UI

The Galapagos logo should also be found in the UI. Preferably in a place where it is permanently visible.

New Adminjob "DeleteApiKeyJob"

As a Galapagos Admin i want to be able to delete the tooling API Key, which can be generated using the already present Adminjob "GenerateToolingApiKeyJob". To do so, there should be a new Adminjob "DeleteApiKeyJob". This Job should also delete all the corresponding ALCs that are associated with thta key.

Add Change Description for Schema Version

As Application Topic Owner I want to be able to Add a change description for a published Schema Version. This way the subscribers of a specific topic can see what was added since the last published Schema.
For this purpose the UI should contain a new input field under the textarea, where a new Schema gets published. Note: The input field should only appear for Schemas with Version two or above! For a initial Schema this makes no sense to enter a change Description. This change description should of course also be shown on the single topic page and in the email which gets sent to the subscribers, such that interested Teams can see immediately what was changed. The Change Description has to be a required field.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.