API REST de um sistema de Helpdesk desenvolvida com Spring Boot, utilizando Spring Security, JPA/Hibernate e PostgreSQL (com H2 para desenvolvimento).
O sistema permite o gerenciamento de tickets de suporte, com controle de usuários, autenticação e autorização por papéis (roles).
- Java 21
- Spring Boot
- Spring Web
- Spring Data JPA (Hibernate)
- Spring Security (HTTP Basic)
- PostgreSQL
- H2 Database
- Gradle
- Autenticação de usuários
- Autorização baseada em papéis (USER, SUPPORT, ADMIN)
- Criação de tickets
- Consulta de tickets
- Atribuição de tickets a usuários de suporte
- Encerramento de tickets
- Persistência em banco de dados relacional
| Role | Permissões principais |
|---|---|
| USER | Criar e visualizar seus próprios tickets |
| SUPPORT | Visualizar e assumir tickets |
| ADMIN | Gerenciar todos os tickets e usuários |
A API utiliza HTTP Basic Authentication.
Usuários de exemplo (data.sql):
| Usuário | Senha | Role |
|---|---|---|
| alice | 123 | USER |
| bob | 123 | SUPPORT |
| admin | 123 | ADMIN |
O banco H2 é usado apenas para testes e desenvolvimento local. Em produção, recomenda-se o uso do PostgreSQL.