Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"apps/api":"0.3.1","apps/client":"0.3.0"}
{"apps/api":"0.4.0","apps/client":"0.3.0"}
25 changes: 25 additions & 0 deletions apps/api/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)


Expand Down
156 changes: 78 additions & 78 deletions apps/api/build.gradle
Original file line number Diff line number Diff line change
@@ -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"]
}
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
Expand Down
Loading