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
9 changes: 9 additions & 0 deletions .changesets/feat_tninesling_make_demand_control_ga.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
### General Availability (GA) of Demand Control ([PR #5868](https://github.com/apollographql/router/pull/5868))

Demand control in the router is now a generally available (GA) feature.

**GA compatibility update**: if you used demand control during its preview, to use it in GA you must update your configuration from `preview_demand_control` to `demand_control`.

To learn more, go to [Demand Control](https://www.apollographql.com/docs/router/executing-operations/demand-control/) docs.

By [@tninesling](https://github.com/tninesling) in https://github.com/apollographql/router/pull/5868
4 changes: 2 additions & 2 deletions apollo-router/src/configuration/metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ impl InstrumentData {

populate_config_instrument!(
apollo.router.config.demand_control,
"$.preview_demand_control[?(@.enabled == true)]",
"$.demand_control[?(@.enabled == true)]",
opt.mode,
"$.mode"
);
Expand All @@ -400,7 +400,7 @@ impl InstrumentData {
Self::get_first_key_from_path(
demand_control_attributes,
"opt.strategy",
"$.preview_demand_control[?(@.enabled == true)].strategy",
"$.demand_control[?(@.enabled == true)].strategy",
yaml,
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8298,6 +8298,10 @@ expression: "&schema"
"$ref": "#/definitions/CSRFConfig",
"description": "#/definitions/CSRFConfig"
},
"demand_control": {
"$ref": "#/definitions/DemandControlConfig",
"description": "#/definitions/DemandControlConfig"
},
"experimental_apollo_metrics_generation_mode": {
"$ref": "#/definitions/ApolloMetricsGenerationMode",
"description": "#/definitions/ApolloMetricsGenerationMode"
Expand Down Expand Up @@ -8351,10 +8355,6 @@ expression: "&schema"
"$ref": "#/definitions/Plugins",
"description": "#/definitions/Plugins"
},
"preview_demand_control": {
"$ref": "#/definitions/DemandControlConfig",
"description": "#/definitions/DemandControlConfig"
},
"preview_entity_cache": {
"$ref": "#/definitions/Config6",
"description": "#/definitions/Config6"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: measure
strategy:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: enforce
strategy:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: enforce
strategy:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: enforce
strategy:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: enforce
strategy:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: measure
strategy:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: measure
strategy:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: measure
strategy:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
preview_demand_control:
demand_control:
enabled: true
mode: measure
strategy:
Expand Down
2 changes: 1 addition & 1 deletion apollo-router/src/plugins/demand_control/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ impl Plugin for DemandControl {
}
}

register_plugin!("apollo", "preview_demand_control", DemandControl);
register_plugin!("apollo", "demand_control", DemandControl);

#[cfg(test)]
mod test {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Demand control enabled in measure mode.
preview_demand_control:
demand_control:
enabled: true
# Use measure mode to monitor the costs of your operations without rejecting any.
mode: measure
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Demand control enabled in measure mode.
preview_demand_control:
demand_control:
enabled: true
# Use measure mode to monitor the costs of your operations without rejecting any.
mode: measure
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Demand control enabled in measure mode.
preview_demand_control:
demand_control:
enabled: true
# Use measure mode to monitor the costs of your operations without rejecting any.
mode: measure
Expand Down
2 changes: 1 addition & 1 deletion apollo-router/src/router_factory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -699,7 +699,7 @@ pub(crate) async fn create_plugins(
// This relative ordering is documented in `docs/source/customizations/native.mdx`:
add_optional_apollo_plugin!("rhai");
add_optional_apollo_plugin!("coprocessor");
add_optional_apollo_plugin!("preview_demand_control");
add_optional_apollo_plugin!("demand_control");
add_user_plugins!();

// Macros above remove from `apollo_plugin_factories`, so anything left at the end
Expand Down
2 changes: 1 addition & 1 deletion apollo-router/src/uplink/license_enforcement.rs
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ impl LicenseEnforcementReport {
.name("Batching support")
.build(),
ConfigurationRestriction::builder()
.path("$.preview_demand_control")
.path("$.demand_control")
.name("Demand control plugin")
.build(),
ConfigurationRestriction::builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Configuration yaml:
.preview_file_uploads

* Demand control plugin
.preview_demand_control
.demand_control

* Apollo metrics extended references
.telemetry.apollo.experimental_apollo_metrics_reference_mode
2 changes: 1 addition & 1 deletion apollo-router/src/uplink/testdata/restricted.router.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ preview_file_uploads:
enabled: true
mode: stream

preview_demand_control:
demand_control:
enabled: true
mode: measure
strategy:
Expand Down
4 changes: 2 additions & 2 deletions apollo-router/tests/apollo_reports.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,10 @@ async fn config(
Some(serde_json::Value::Bool(use_legacy_request_span))
})
.expect("Could not sub in endpoint");
config = jsonpath_lib::replace_with(config, "$.preview_demand_control.enabled", &mut |_| {
config = jsonpath_lib::replace_with(config, "$.demand_control.enabled", &mut |_| {
Some(serde_json::Value::Bool(demand_control))
})
.expect("Could not sub in preview_demand_control");
.expect("Could not sub in demand_control");

config = jsonpath_lib::replace_with(
config,
Expand Down
2 changes: 1 addition & 1 deletion apollo-router/tests/fixtures/apollo_reports.router.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ include_subgraph_errors:
rhai:
scripts: tests/fixtures
main: test_callbacks.rhai
preview_demand_control:
demand_control:
mode: measure
enabled: false
strategy:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ rhai:
main: test_callbacks.rhai
include_subgraph_errors:
all: true
preview_demand_control:
demand_control:
mode: measure
enabled: false
strategy:
Expand Down
Loading