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
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

/**
* This tasks runs every x seconds to poll for config changes at the realtime endpoint,
* normally runtime.aikido.dev but can be specified with AIKIDO_REALTIME_ENDPOINT.
* normally guard.aikido.dev but can be specified with AIKIDO_REALTIME_ENDPOINT.
* If it notices that the config was updated (i.e. time of last change is more recent) it will
* fetch the new config from the Zen API (guard.aikido.dev).
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class RealtimeAPI {
private final Token token;

public RealtimeAPI(Token token) {
endpoint = getAikidoRealtimeEndpoint();
endpoint = getAikidoRealtimeEndpoint(token);
this.token = token;
}
public record ConfigResponse(long configUpdatedAt) {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ public static String getAikidoAPIEndpoint(Token token) {
return endpoint;
}

return getDefaultAikidoAPIEndpoint(token);
}

private static String getDefaultAikidoAPIEndpoint(Token token) {
String region = token != null ? token.getRegion() : "EU";
return switch (region) {
case "US" -> "https://guard.us.aikido.dev/";
Expand All @@ -20,7 +24,7 @@ public static String getAikidoAPIEndpoint(Token token) {
};
}

public static String getAikidoRealtimeEndpoint() {
public static String getAikidoRealtimeEndpoint(Token token) {
String endpoint = System.getenv("AIKIDO_REALTIME_ENDPOINT");
if (endpoint != null && !endpoint.isEmpty()) {
if (!endpoint.endsWith("/")) {
Expand All @@ -29,7 +33,6 @@ public static String getAikidoRealtimeEndpoint() {
return endpoint;
}

// Default option :
return "https://runtime.aikido.dev/";
return getDefaultAikidoAPIEndpoint(token);
}
}
37 changes: 29 additions & 8 deletions agent_api/src/test/java/helpers/env/EndpointsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,35 +43,56 @@ public void testGetAikidoAPIEndpoint_WithNullEnvironmentVariable() {
@Test
@SetEnvironmentVariable(key = "AIKIDO_REALTIME_ENDPOINT", value = "https://realtime.aikido.dev")
public void testGetAikidoRealtimeEndpoint_WithCustomEndpoint() {
String result = Endpoints.getAikidoRealtimeEndpoint();
String result = Endpoints.getAikidoRealtimeEndpoint(null);
assertEquals("https://realtime.aikido.dev/", result);
}

@Test
@SetEnvironmentVariable(key = "AIKIDO_REALTIME_ENDPOINT", value = "https://realtime.aikido.dev")
public void testGetAikidoRealtimeEndpoint_WithCustomEndpointWithoutTrailingSlash() {
String result = Endpoints.getAikidoRealtimeEndpoint();
String result = Endpoints.getAikidoRealtimeEndpoint(null);
assertEquals("https://realtime.aikido.dev/", result);
}

@Test
public void testGetAikidoRealtimeEndpoint_WithNullEnvironmentVariable() {
// No environment variable set, should return default
String result = Endpoints.getAikidoRealtimeEndpoint();
assertEquals("https://runtime.aikido.dev/", result);
String result = Endpoints.getAikidoRealtimeEndpoint(null);
assertEquals("https://guard.aikido.dev/", result);
}
@Test
@SetEnvironmentVariable(key = "AIKIDO_REALTIME_ENDPOINT", value = "https://realtime.aikido.dev/")
public void testGetAikidoRealtimeEndpoint_WithCustomEndpointWithTrailingSlash() {
String result = Endpoints.getAikidoRealtimeEndpoint();
String result = Endpoints.getAikidoRealtimeEndpoint(null);
assertEquals("https://realtime.aikido.dev/", result);
}

@Test
@SetEnvironmentVariable(key = "AIKIDO_REALTIME_ENDPOINT", value = "")
public void testGetAikidoRealtimeEndpoint_WithEmptyEnvironmentVariable() {
String result = Endpoints.getAikidoRealtimeEndpoint();
assertEquals("https://runtime.aikido.dev/", result);
String result = Endpoints.getAikidoRealtimeEndpoint(null);
assertEquals("https://guard.aikido.dev/", result);
}

@Test
public void testGetAikidoRealtimeEndpoint_WithUSRegionToken() {
Token token = new Token("AIK_RUNTIME_1_2_US_random");
String result = Endpoints.getAikidoRealtimeEndpoint(token);
assertEquals("https://guard.us.aikido.dev/", result);
}

@Test
public void testGetAikidoRealtimeEndpoint_WithMERegionToken() {
Token token = new Token("AIK_RUNTIME_1_2_ME_random");
String result = Endpoints.getAikidoRealtimeEndpoint(token);
assertEquals("https://guard.me.aikido.dev/", result);
}

@Test
@SetEnvironmentVariable(key = "AIKIDO_ENDPOINT", value = "https://custom.aikido.dev")
public void testGetAikidoRealtimeEndpoint_IgnoresAPIEndpointOverride() {
Token token = new Token("AIK_RUNTIME_1_2_US_random");
String result = Endpoints.getAikidoRealtimeEndpoint(token);
assertEquals("https://guard.us.aikido.dev/", result);
}

// Additional tests
Expand Down
Loading