memphis icon indicating copy to clipboard operation
memphis copied to clipboard

CLI alignment

Open yanivbh1 opened this issue 3 years ago • 15 comments

Description

During the last few versions (since 0.3.5), Memphis CLI has not been aligned with the latest features and management abilities as the SDK. Memphis CLI should be able to perform every management action as can be done via the GUI and/or the SDKs.

yanivbh1 avatar Jan 01 '23 21:01 yanivbh1

Hey, I would like to give it a try :) I assume the feature list can be found in the release notes(?)

abrl91 avatar Jan 03 '23 09:01 abrl91

Hey @abrl91 :) That's a significant "good first issue" and a contribution, also should be fun to do :) We do keep well-formed release notes, but I am not sure if it will help us with that task. Either way, I think we should start by listing all the possible functionalities in Memphis, tag which is required for the CLI or can be performed via the CLI, and then head to the code. What do you think?

yanivbh1 avatar Jan 03 '23 09:01 yanivbh1

Hey @abrl91 :) That's a significant "good first issue" and a contribution, also should be fun to do :) We do keep well-formed release notes, but I am not sure if it will help us with that task. Either way, I think we should start by listing all the possible functionalities in Memphis, tag which is required for the CLI or can be performed via the CLI, and then head to the code. What do you think?

Sounds great. But how do I know what features are involved and can be performed via the CLI?

abrl91 avatar Jan 03 '23 11:01 abrl91

@abrl91 I suggest we start with a list of all the features and then map them together. For example -

  • Create/Modify station
  • Create/Modify tags
  • Create/Modify users
  • Installation (via terraform side script)

and so forth

yanivbh1 avatar Jan 03 '23 11:01 yanivbh1

@yanivbh1 cool. I'll do it

abrl91 avatar Jan 03 '23 19:01 abrl91

@abrl91 Great, thank you! We can use this thread

yanivbh1 avatar Jan 03 '23 19:01 yanivbh1

I'll start working on it tomorrow evening

abrl91 avatar Jan 04 '23 09:01 abrl91

@yanivbh1 I'm not sure about this list...I also didn't find something related to installation via terraform. I also noticed that there are some bugfixes related to the user input and I wasn't sure if I needed to list them.

Can you review it please?

  • Create/Modify station

    • add remove & update dlstream for old&new stations #571
    • Idempotency support for stations  #493
    • delete station + idempo OW schema station list  #513
    • Add redundant station removal to "kill zombie resources" loop  #379
    • Allow '.' in station names (swap '.' internally with '#' for station names)  #383
    • create station unify the components  #401
    • add RemoveSchemaFromStation + GetUpdatesForSchema #405
    • Remove schema from station  #430
    • Create station schema #417
    • add get all stations endpoint #342
  • Create/Modify tags

    • remove e2e tags  #474
    • backend for tags  #389
    • added backend for schema tags by @shay23b in #398
    • Tags for new entity  #424
    • updated responses of tags  #425
  • Create/Modify users

    • Add user creation to staging cluster #638
    • handle empty username  #315
    • Signup endpoint  #320
  • Installation (via terraform side script)

abrl91 avatar Jan 06 '23 16:01 abrl91

@abrl91, perfect. I am on it. I will review ASAP.

yanivbh1 avatar Jan 07 '23 17:01 yanivbh1

@abrl91

The following CLI functionanllity should be exist or need to be created Root = First CLI level.

Root: Connect Functionallity already exist

Root: Station

  • Create (Options: name, replicas, idempotency window, attach schema, dead-letter station, 1st retention policy, storage type)
  • Modify (DLS)
  • Delete
  • DLS (List message based on type / Resend based on message type / Drop by msg id)
  • List all stations
  • List producers of specific station
  • List consumers of specific station

Root: User Functionallity is aligned

Root: Cluster

  • Update
  • Info

Root: Installation In case Memphis does not installed. There should be the following menu:

  • Kubernetes (The CLI will make sure 'kubectl' installed + target the correct cluster and deploy)
  • Docker compose (The CLI will make sure 'docker engine' is installed and running and run installation command)
  • Cloud deployment (The CLI will initiate a terraform installation script that will be exposed here

yanivbh1 avatar Jan 08 '23 07:01 yanivbh1

Hey @yanivbh1 Sorry for the late response, I had a busy week. I'll start working on this issue today or tomorrow. Just to be sure - where can I find the source code? In this repo or in the CLI repo?

abrl91 avatar Jan 13 '23 07:01 abrl91

Hey @abrl91, sorry it took me some time to answer. Everything is great, and every help is truly amazing. As the CLI is a standalone component, Memphis CLI repo can be found here https://github.com/memphisdev/memphis-cli

yanivbh1 avatar Jan 14 '23 11:01 yanivbh1

looks like dead beef what's the status?

g41797 avatar Nov 06 '23 07:11 g41797

Expired tofu...

abrl91 avatar Nov 06 '23 16:11 abrl91

Hey @g41797 and @abrl91 , Love the used terms :) Currently not prioritized. Once back to the table, it will be updated here.

yanivbh1 avatar Nov 06 '23 21:11 yanivbh1