Skip to content

[FEATURE] Ripristinare CLI gerarchico instance-first (pattern Docker) #93

@fporcari

Description

@fporcari

Summary

Ripristinare il pattern CLI gerarchico della versione precedente, dove l'istanza è il primo argomento.

Current Behavior

mail-proxy serve default-mailer
mail-proxy tenants list           # ← opera su quale istanza?
mail-proxy accounts list

I comandi entity (tenants, accounts, messages) non sanno su quale istanza operare.

Expected Behavior (vecchia API)

# Instance-first pattern (come Docker)
mail-proxy <instance> <command> [args]

# Esempi
mail-proxy default-mailer serve
mail-proxy default-mailer stop
mail-proxy default-mailer tenants list
mail-proxy default-mailer mytenant accounts list
mail-proxy default-mailer mytenant messages list --status pending

# Comandi globali (senza istanza)
mail-proxy list                   # Lista tutte le istanze
mail-proxy create myserver        # Crea nuova istanza

Benefits

  1. Chiaro contesto: Sempre esplicito su quale istanza si opera
  2. Multi-istanza: Facile gestire più istanze contemporaneamente
  3. Consistente: Pattern familiare (Docker, kubectl, aws cli)
  4. Tab completion: Più facile implementare autocompletamento

Implementation Notes

Richiede ristrutturazione del CLI:

  • Comando root rileva se primo arg è un'istanza esistente
  • Se sì, carica config istanza e crea subgroup dinamico
  • Se no, usa comandi globali (list, create, help)

Riferimento: commit f21600e aveva questa struttura

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions