Support Chroma's CHROMA_SERVER_AUTH_CREDENTIALS env var from version 0.4.x

Currently, Docker Compose and Testcontainers support `CHROMA_SERVER_AUTHN_CREDENTIALS`,
which is provided by Chroma 0.5.x. Previous versions use `CHROMA_SERVER_AUTH_CREDENTIALS`
instead.
This commit is contained in:
Eddú Meléndez
2024-06-22 14:19:29 -05:00
committed by Christian Tzolov
parent 865f62a04a
commit c053289f4a
4 changed files with 127 additions and 3 deletions

View File

@@ -19,10 +19,20 @@ import java.util.Map;
class ChromaEnvironment {
// Chroma version <= 0.4.x
private static final String CHROMA_SERVER_AUTH_CREDENTIALS = "CHROMA_SERVER_AUTH_CREDENTIALS";
// Chroma version >= 0.5.x
private static final String CHROMA_SERVER_AUTHN_CREDENTIALS = "CHROMA_SERVER_AUTHN_CREDENTIALS";
private final String keyToken;
ChromaEnvironment(Map<String, String> env) {
this.keyToken = env.get("CHROMA_SERVER_AUTHN_CREDENTIALS");
if (env.containsKey(CHROMA_SERVER_AUTH_CREDENTIALS)) {
this.keyToken = env.get(CHROMA_SERVER_AUTH_CREDENTIALS);
return;
}
this.keyToken = env.get(CHROMA_SERVER_AUTHN_CREDENTIALS);
}
public String getKeyToken() {

View File

@@ -31,7 +31,13 @@ class ChromaEnvironmentTests {
}
@Test
void getKeyTokenWhenHasCredential() {
void getKeyTokenFromAuthCredentialsWhenHasCredential() {
ChromaEnvironment environment = new ChromaEnvironment(Map.of("CHROMA_SERVER_AUTH_CREDENTIALS", "secret"));
assertThat(environment.getKeyToken()).isEqualTo("secret");
}
@Test
void getKeyTokenFromAuthnCredentialsWhenHasCredential() {
ChromaEnvironment environment = new ChromaEnvironment(Map.of("CHROMA_SERVER_AUTHN_CREDENTIALS", "secret"));
assertThat(environment.getKeyToken()).isEqualTo("secret");
}