Skip to content

Commit 1f93a46

Browse files
committed
JwtService e UseService cetrallizati. DatabaseInitilizer nella versione sqlite. Creazione stato INVIATA e SCADUTA
1 parent 4178bee commit 1f93a46

File tree

25 files changed

+465
-908
lines changed

25 files changed

+465
-908
lines changed

README.md

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -494,21 +494,7 @@ L’applicazione e i database posso essere eseguiti anche su Minikube, l’ambie
494494

495495
## 📦 Versione SQLite per Replit
496496
Sviluppato un adapter specifico per usare sqlite per tutte le basi dati necessarie al corretto funzionamento del servizio, studiato per funzionare anche nel cloud Replit.
497-
- Utilizzado SQLite come unico database per tutte le funzionalità (annotazioni, utenti, storico) non ha nessuna dipendenza da servizi esterni: è possibile eseguire tutto in locale, ideale per prove locali o test. Previsto un profilo Spring Boot specifico `sqlite`. I comandi per eseguire il microservizio in locale con questo profilo sono:
498-
```
499-
mvn clean package
500-
java -jar application/target/application-1.0.0.jar \
501-
--spring.profiles.active=sqlite \
502-
--spring.datasource.url=jdbc:sqlite:/tmp/database.sqlite \
503-
--server.port=8082
504-
```
505-
- E' stato creato un docker-compose specifico, così da gestire il volume dei dati con docker. Script di avvio e arresto già pronti per esecuzione locale: per eseguire tutto in locale eseguire lo script:
506-
```
507-
cd script/sqlite-locale/
508-
./start-all.sh
509-
```
510-
- L'applicazione web sarà disponibile su [http://localhost:8082](http://localhost:8082)
511-
- Interfaccia di gestione SQLite su [http://localhost:8084](http://localhost:8084). All'inizio il database è vuoto quindi non c'è memmeno un utente, si può inserire da interfaccia web oppure chiamare l'API:
497+
- La versione che usa SqLite ha una classe che crea tre utenti di prova partendo dai dati dell'application YAML, è presente proprietà per disattivare questa funzionalità. Il componente è stato creato per velocizzare gli sviluppi e i test, questo componente va rimosso in un sistema di produzione. In alternatica è sempre possibile creare gli utenti con le API:
512498
```
513499
curl -X POST http://localhost:8082/api/auth/register \
514500
-H "Content-Type: application/json" \
@@ -521,9 +507,24 @@ Sviluppato un adapter specifico per usare sqlite per tutte le basi dati necessar
521507
-H "Content-Type: application/json" \
522508
-d '{
523509
"username": "admin",
524-
"password": "password123"
510+
"password": "xxxxxxxxxxxxxxxxxxx"
525511
}'
526512
```
513+
- Utilizzado SQLite come unico database per tutte le funzionalità (annotazioni, utenti, storico) non ha nessuna dipendenza da servizi esterni: è possibile eseguire tutto in locale, ideale per prove locali o test. Previsto un profilo Spring Boot specifico `sqlite`. I comandi per eseguire il microservizio in locale con questo profilo sono:
514+
```
515+
mvn clean package
516+
java -jar application/target/application-1.0.0.jar \
517+
--spring.profiles.active=sqlite \
518+
--spring.datasource.url=jdbc:sqlite:/tmp/database.sqlite \
519+
--server.port=8082
520+
```
521+
- E' stato creato un docker-compose specifico, così da gestire il volume dei dati con docker. Script di avvio e arresto già pronti per esecuzione locale: per eseguire tutto in locale eseguire lo script:
522+
```
523+
cd script/sqlite-locale/
524+
./start-all.sh
525+
```
526+
- L'applicazione web sarà disponibile su [http://localhost:8082](http://localhost:8082)
527+
- Interfaccia di gestione SQLite su [http://localhost:8084](http://localhost:8084)
527528
- Fermare l'esecuzione
528529
```
529530
cd script/replit-locale
@@ -539,7 +540,7 @@ Sviluppato un adapter specifico per usare sqlite per tutte le basi dati necessar
539540
```
540541
https://xxx-xxx-xxx.worf.replit.dev
541542
```
542-
- Utilizzando postman/curl è possibile creare un utente con cui collegarsi, per esempio:
543+
- Se la creazione degli utenti è disabilitata, è possibile creare un utente di prova con postaman/curl, per esempio:
543544
```
544545
curl -X POST https://xxx-xxx-xxx.worf.replit.dev/api/auth/register \
545546
-H "Content-Type: application/json" \
@@ -759,6 +760,7 @@ Questa modalità consente di eseguire l'intero stack annotazioni su AWS ECS con
759760
- ✅ 📦 Creazione adapter con implementazione con SQLite come unica base dati
760761
- ✅ ☁️ Sviluppo script per esecuzione profilo sqlite in sistema Replit
761762
- ✅ ⚙️ Sviluppo script per esecuzione profilo sqlite in sistema AWS-EC2 con Docker senza RDS e Dynamo
763+
- ✅ 🧿 Script per creazione di tre profili in ogni ambiente per adapter sqlite
762764
- ✅ 🤖 Gestione dell'applicazione in *gestione annotazioni* e test applicazione web di esempio
763765
- ✅ 🛠️ Test applicazione web di esempio anche su AWS
764766
- ✅ 🔧 Modifica nome adapter "app" e "port" in "application" e "core"
@@ -768,19 +770,13 @@ Questa modalità consente di eseguire l'intero stack annotazioni su AWS ECS con
768770
- ✅ 🧮 Nuova tabella StoricoStati, sviluppo service e port per la gestione dello storico
769771
- ✅ 🕸️ Modifica service per cambio stato che modifica il metadata e non il valore più la tabella storico
770772
- ✅ 🧩 Service per modificar lo stato con salvataggio nella tabella StoricoStati
771-
- 🚧 🧿 Script per creazione di tre profili in ogni ambiente
772773
- ✅ 🧑‍🔬 Inserimento di una nuova annotazione in stato INSERITA
773-
- 🚧 🛰️ Gestione delle annotazioni quando son in CONFERMATA
774-
- 🚧 🛡️ Gestione delle annotazioni in stato RIFIUTATA o BANNATA
774+
- ✅ 🛰️ Gestione dello stato DAINVIARE come ultimo stato possibile da API/Web.
775775
- 🚧 🧱 Verifica che utenti non possano fare operazioni il cui ruolo non lo prevede
776-
- 🚧 🧬 Gestione delle annotazioni instato PUBBLICATA
777-
- 🚧 🧭 Quando una annotazione è in stato PUBBLICATA solo ADMIN può rimetterla in RIFIUTATA
778-
- 🚧 🧑‍🤝‍🧑 Elenco task: utenti USER vedono le annotazioni RIFIUTATE con la possiblità di cambiarle in INSERITA
779-
- 🚧 🗃️ Elenco task: utenti MODERATOR vedono le annotazioni INSERITA con la possibiltà di rifiutarle o confermarle
780-
- 🚧 🏁 Elenco task: utenti ADMIN vedono le annotazioni CONFERMATA con la possiblità di pubblicarle
781776
- ✅ 🐳 Build e deploy su DockerHub della versione *OnPrem*
782777
- ✅ 🐳 configurazione di docker-compose con MongoDb e Postgresql
783778
- ✅ ☸️ Esecuzione su Kubernetes/Minikube locale con yaml dedicati
779+
- 🚧 🏁 Test finale di tutti i punti precedenti e rilascio della versione 1.0.0
784780
- ✅ ☁️ Esecuzione con docker-compose della versione AWS su sistema locale con Mysql e DynamoDB
785781
- ✅ 🐳 Deploy su AWS usando EC2 per eseguire il container docker, script scritto in AWS-CLI per il provisioning delle risorse necessarie (Aurora-RDS-Mysql e DynamoDB ) e la creazione della EC2 con lancio del docker con `user_data`
786782
- ✅ 🐳 Deploy su AWS usando ECS, Fargate e repository ECR (senza DockerHub), script scritto in AWS-CLI per il provisioning delle risorse necessarie (Aurora-RDS-Mysql e DynamoDB ) e lancio del task su ECS. Non previsto sistema di scaling up e/o bilanciatore ALB.
@@ -790,18 +786,23 @@ Questa modalità consente di eseguire l'intero stack annotazioni su AWS ECS con
790786
- ✅ 🔒 Autenticazione e autorizzazione (Spring Security) e token Jwt
791787
- ✅ 👥 introduzione sistema di verifica degli utenti e validazione richieste con tabella utenti
792788
- ✅ 📝 Gestione multiutente e modifica annotazioni con utente diverso dal creatore, test nell'applicazione web
793-
- 🚧 🛠️ Valutazione di creazione `adapter-security` o posizionamento pacakge specifico attualmente nel port
789+
- ✅ 🛡️ Centralità dei service JwtService e UserService nel core senza `adapter-security`
794790
- 🚧 🔐 OAuth2/OIDC Provider: Integrazione con provider esterni (Google, Microsoft, GitHub) + SSO enterprise
795-
- 🚧 👥 Sostema di lock che impedisca che due utenti modifichino la stessa annotazione allo stesso momento
791+
- 🚧 👥 Sistema di lock che impedisca che due utenti modifichino la stessa annotazione allo stesso momento
792+
- 🚧 🧑‍🤝‍🧑 Gestione modifica annotazione con lock
796793
- 🚧 ⚙️ Evoluzione adapter con integrazione con altri sistemi
797-
- 🚧 🔄 Export/Import annotazioni (JSON, CSV): creazione `adapter-etl` per l'import e l'export di tutte le versione
798-
- 🚧 📚 Export/Import annotazioni (Kafka): creazione service che permetta di inviare notifiche via coda (kafka o sqs)
799-
- 🚧 🎯 Notifiche real-time (WebSocket): creazione `adapter-notifier` che permetta ad utenti di registrarsi su WebSocket e ricevere
800-
- 🚧 ⚡ Redis Caching Layer: Cache multi-livello (L1: in-memory, L2: Redis) con invalidation strategies e cache warming
801-
- 🚧 📊 Read Replicas: Separazione read/write con eventual consistency e load balancing intelligente
802-
- 🚧 👥 Social Reminders: Notifiche quando qualcuno interagisce con annotazioni modificate
794+
- 🚧 🧬 Gestione delle annotazioni in stato INVIATA
795+
- 🚧 📚 Import/Export annotazioni: creazione service che permetta di ricevere notifiche via coda (kafka o sqs) con creazione `adapter-kafka` e che con frequenza invii delle annotazioni concluse con cambio di stato
796+
- 🚧 🔄 Export annotazioni (JSON e/o CSV): creazione `adapter-xxx` per l'export di tutte le annotazioni con cambio di stato dopo averle esporatte
797+
- 🚧 🎯 Notifiche real-time (WebSocket): creazione `adapter-notifier` che permetta ad utenti di registrarsi su WebSocket e ricevere notifiche su cambio stato delle proprie notifiche
798+
- 🚧 👥 Social Reminders: Notifiche quando qualcuno interagisce con annotazioni modificate
799+
- 🚧 🧭 Sistema che gestisce la scadenza di una annotazione con spring-batch che elabora tutte le annotazioni rifiutate o scadute, con nuovo stato scadute.
803800
- 🚧 💾 Backup & Disaster Recovery: Cross-region backup, point-in-time recovery, RTO/RPO compliance
804-
- 🚧 🔒 API Rate Limiting: Rate limiting intelligente con burst allowance, IP whitelisting, geographic restrictions
801+
- 🚧 🏁 Test finale di tutti i punti precedenti e rilascio della versione 2.0.0
802+
- 🚧 🗃️ Sistema di caching con redis
803+
- 🚧 ⚡ Redis Caching Layer: Cache multi-livello (L1: in-memory, L2: Redis) con invalidation strategies e cache warming
804+
- 🚧 📊 Read Replicas: Separazione read/write con eventual consistency e load balancing intelligente
805+
- 🚧 🔒 API Rate Limiting: Rate limiting intelligente con burst allowance, IP whitelisting, geographic restrictions
805806
- 🚧 🔍 Elasticsearch Integration: Ricerca full-text avanzata con highlighting, auto-complete, ricerca semantica
806807
- 🚧 🏗️ GitOps Workflow: ArgoCD/Flux per deployment automatici, configuration drift detection
807808
- 🚧 🧪 Testing Pyramid: Unit + Integration + E2E + Performance + Security testing automatizzati

adapter-aws/src/main/java/it/alnao/springbootexample/aws/service/auth/UserServiceImpl.java

Lines changed: 0 additions & 212 deletions
This file was deleted.

0 commit comments

Comments
 (0)