diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 83a06e1e..f8c47f40 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{"apps/api":"0.3.1","apps/client":"0.3.0"} \ No newline at end of file +{"apps/api":"0.4.0","apps/client":"0.3.0"} \ No newline at end of file diff --git a/apps/api/CHANGELOG.md b/apps/api/CHANGELOG.md index dd3773eb..9d265395 100644 --- a/apps/api/CHANGELOG.md +++ b/apps/api/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## [0.4.0](https://github.com/nednella/echo/compare/api@v0.3.1...api@v0.4.0) (2025-11-11) + + +### Features + +* **api:** add flyway db migrations ([#151](https://github.com/nednella/echo/issues/151)) ([7a2d786](https://github.com/nednella/echo/commit/7a2d786841af13a3af713c47ed6f26439ffa1568)) +* **api:** add flyway plugin ([#161](https://github.com/nednella/echo/issues/161)) ([bb343f8](https://github.com/nednella/echo/commit/bb343f866fe8dd3766f038fb0ac6188e3a27fabb)) +* **api:** add OAuth2AuthenticationException handler ([#134](https://github.com/nednella/echo/issues/134)) ([8b15492](https://github.com/nednella/echo/commit/8b15492e01d3c468a252af72e32cd3e6e32db773)) +* **api:** annotate ErrorResponse with NotNull so OpenAPI spec infers as required fields ([#130](https://github.com/nednella/echo/issues/130)) ([4c5f158](https://github.com/nednella/echo/commit/4c5f15820db43a16604cb837be91d99f7fc1ea18)) +* **api:** improve db repeatables ([#155](https://github.com/nednella/echo/issues/155)) ([f1931f2](https://github.com/nednella/echo/commit/f1931f296d866204f9ca520c5723d30c7d6ee229)) +* **api:** remove unused user status enum ([#154](https://github.com/nednella/echo/issues/154)) ([dd24980](https://github.com/nednella/echo/commit/dd24980bd988657bed098bfc945e70b2402f7642)) +* **api:** update controller OpenAPI documentation ([#128](https://github.com/nednella/echo/issues/128)) ([9dd81d1](https://github.com/nednella/echo/commit/9dd81d161bb3f682afe5bf0c1be9df493f0a47ab)) + + +### Bug Fixes + +* **api:** de-duplicate profile mentions ([#156](https://github.com/nednella/echo/issues/156)) ([8f73e28](https://github.com/nednella/echo/commit/8f73e28a8e7d50c7296d51a98815e748207d8dfe)) +* **api:** ensure posts are cascade deleted on author_id, conversation_id, parent_id ([#158](https://github.com/nednella/echo/issues/158)) ([b46233e](https://github.com/nednella/echo/commit/b46233e988ab03ee8da5b67fef558c2797188091)) +* **api:** update profile lookups and mentions to use case-insensitive usernames ([#157](https://github.com/nednella/echo/issues/157)) ([ddd9d5b](https://github.com/nednella/echo/commit/ddd9d5bb69aecf40beda8a52282748d915d8011e)) + + +### Performance Improvements + +* **api:** reduce application idle memory consumption ([#162](https://github.com/nednella/echo/issues/162)) ([95833b0](https://github.com/nednella/echo/commit/95833b05a08f8983f58cfbc6570b49ae8ee71d8d)) + ## [0.3.1](https://github.com/nednella/echo/compare/api@v0.3.0...api@v0.3.1) (2025-09-30) diff --git a/apps/api/build.gradle b/apps/api/build.gradle index 0a34c312..0eb024ee 100644 --- a/apps/api/build.gradle +++ b/apps/api/build.gradle @@ -1,79 +1,79 @@ -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath("org.flywaydb:flyway-database-postgresql:10.1.0") - } -} - -plugins { - id 'java' - id 'org.springframework.boot' version '3.4.1' - id 'io.spring.dependency-management' version '1.1.7' - id 'org.flywaydb.flyway' version '11.15.0' -} - -group = 'com.example' -version = '0.3.1' // x-release-please-version - -java { - toolchain { - languageVersion = JavaLanguageVersion.of(21) - } -} - -flyway { - url = 'jdbc:postgresql://localhost:5432/echo' - user = 'admin' - password = 'pw123' - locations = ['classpath:db/migration'] -} - -configurations { - compileOnly { - extendsFrom annotationProcessor - } -} - -repositories { - mavenCentral() -} - -dependencies { - implementation 'com.clerk:backend-api:3.1.0' - implementation 'org.flywaydb:flyway-core' - implementation 'org.flywaydb:flyway-database-postgresql' - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.13' - implementation 'org.springframework.boot:spring-boot-starter-actuator' - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server' - implementation 'org.springframework.boot:spring-boot-starter-security' - implementation 'org.springframework.boot:spring-boot-starter-validation' - implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'com.svix:svix:1.9.0' - implementation 'com.twitter.twittertext:twitter-text:3.1.0' - compileOnly 'org.projectlombok:lombok' - developmentOnly 'org.springframework.boot:spring-boot-devtools' - developmentOnly 'org.springframework.boot:spring-boot-docker-compose' - runtimeOnly 'org.postgresql:postgresql' - annotationProcessor 'org.projectlombok:lombok' - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'org.springframework.boot:spring-boot-starter-webflux' - testImplementation 'org.springframework.boot:spring-boot-testcontainers' - testImplementation 'org.springframework.security:spring-security-test' - testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'org.testcontainers:postgresql' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' -} - - - -tasks.named('test') { - useJUnitPlatform() - systemProperty("spring.profiles.active", "test") -} - -bootRun { - args = ["--spring.profiles.active=dev"] +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath("org.flywaydb:flyway-database-postgresql:10.1.0") + } +} + +plugins { + id 'java' + id 'org.springframework.boot' version '3.4.1' + id 'io.spring.dependency-management' version '1.1.7' + id 'org.flywaydb.flyway' version '11.15.0' +} + +group = 'com.example' +version = '0.4.0' // x-release-please-version + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + +flyway { + url = 'jdbc:postgresql://localhost:5432/echo' + user = 'admin' + password = 'pw123' + locations = ['classpath:db/migration'] +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'com.clerk:backend-api:3.1.0' + implementation 'org.flywaydb:flyway-core' + implementation 'org.flywaydb:flyway-database-postgresql' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.13' + implementation 'org.springframework.boot:spring-boot-starter-actuator' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server' + implementation 'org.springframework.boot:spring-boot-starter-security' + implementation 'org.springframework.boot:spring-boot-starter-validation' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'com.svix:svix:1.9.0' + implementation 'com.twitter.twittertext:twitter-text:3.1.0' + compileOnly 'org.projectlombok:lombok' + developmentOnly 'org.springframework.boot:spring-boot-devtools' + developmentOnly 'org.springframework.boot:spring-boot-docker-compose' + runtimeOnly 'org.postgresql:postgresql' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework.boot:spring-boot-starter-webflux' + testImplementation 'org.springframework.boot:spring-boot-testcontainers' + testImplementation 'org.springframework.security:spring-security-test' + testImplementation 'org.testcontainers:junit-jupiter' + testImplementation 'org.testcontainers:postgresql' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} + + + +tasks.named('test') { + useJUnitPlatform() + systemProperty("spring.profiles.active", "test") +} + +bootRun { + args = ["--spring.profiles.active=dev"] } \ No newline at end of file diff --git a/apps/api/src/main/java/com/example/echo_api/Application.java b/apps/api/src/main/java/com/example/echo_api/Application.java index a396f9fb..4b654dab 100644 --- a/apps/api/src/main/java/com/example/echo_api/Application.java +++ b/apps/api/src/main/java/com/example/echo_api/Application.java @@ -15,7 +15,7 @@ info = @Info( title = "Echo API", description = "A REST API implementation to serve the Echo client.", - version = "0.3.1" // x-release-please-version + version = "0.4.0" // x-release-please-version ), servers = { @Server(url = "https://api.echo-social.app", description = "Production server"),