Skip to content

Commit

Permalink
[apache#6499] improvement(server): Support custom configuration optio…
Browse files Browse the repository at this point in the history
…ns in the REST API `/configs`
  • Loading branch information
jerqi committed Feb 24, 2025
1 parent 83ad7f6 commit 113c5ff
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 0 deletions.
8 changes: 8 additions & 0 deletions core/src/main/java/org/apache/gravitino/Configs.java
Original file line number Diff line number Diff line change
Expand Up @@ -310,4 +310,12 @@ private Configs() {}
.version(ConfigConstants.VERSION_0_7_0)
.stringConf()
.createWithDefault(SimpleFormatterV2.class.getName());

public static final ConfigEntry<List<String>> VISIBLE_CONFIGS =
new ConfigBuilder("gravitino.visible.configs")
.doc("List of configs that are visible in the config servlet")
.version(ConfigConstants.VERSION_0_9_0)
.stringConf()
.toSequence()
.createWithDefault(Collections.emptyList());
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,7 @@ private ConfigConstants() {}

/** The version number for the 0.8.0 release. */
public static final String VERSION_0_8_0 = "0.8.0";

/** The version number for the 0.9.0 release. */
public static final String VERSION_0_9_0 = "0.9.0";
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.google.common.collect.Maps;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
Expand Down Expand Up @@ -58,6 +59,15 @@ public ConfigServlet(ServerConfig serverConfig) {
configs.put(key.getKey(), serverConfig.get(key));
}
}

List<String> visibleConfigs = serverConfig.get(Configs.VISIBLE_CONFIGS);

for (String config : visibleConfigs) {
String configValue = serverConfig.getRawString(config);
if (configValue != null) {
configs.put(config, configValue);
}
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import com.google.common.collect.Lists;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.apache.gravitino.Configs;
import org.apache.gravitino.server.ServerConfig;
import org.junit.jupiter.api.Test;

Expand All @@ -43,4 +45,23 @@ public void testConfigServlet() throws Exception {
"{\"gravitino.authorization.enable\":false,\"gravitino.authenticators\":[\"simple\"]}");
configServlet.destroy();
}

@Test
public void testConfigServletWithVisibleConfigs() throws Exception {
ServerConfig serverConfig = new ServerConfig();
serverConfig.set(
Configs.VISIBLE_CONFIGS,
Lists.newArrayList(Configs.AUDIT_LOG_FORMATTER_CLASS_NAME.getKey()));
serverConfig.set(Configs.AUDIT_LOG_FORMATTER_CLASS_NAME, "test");
ConfigServlet configServlet = new ConfigServlet(serverConfig);
configServlet.init();
HttpServletResponse res = mock(HttpServletResponse.class);
PrintWriter writer = mock(PrintWriter.class);
when(res.getWriter()).thenReturn(writer);
configServlet.doGet(null, res);
verify(writer)
.write(
"{\"gravitino.audit.formatter.className\":\"test\",\"gravitino.authorization.enable\":false,\"gravitino.authenticators\":[\"simple\"]}");
configServlet.destroy();
}
}

0 comments on commit 113c5ff

Please sign in to comment.