changedInput schema / properties / category / enum
Previous value: -[
- "hosting",
- "database",
- "auth",
- "email",
- "payments",
- "observability",
- "ai",
- "edge",
- "app_store",
- "coding"
-]New value: +[
+ "hosting",
+ "database",
+ "auth",
+ "email",
+ "payments",
+ "observability",
+ "ai",
+ "edge",
+ "app_store",
+ "coding",
+ "storage",
+ "video",
+ "sms",
+ "push",
+ "jobs",
+ "search"
+]
addedInput schema / properties / migration_features
Added value: +{
+ "description": "Features of the current host the app uses (feature ids from plan_migration or detect_stack's netlify_features), so a migration playbook prices the work. Leave switching.hours out to use them.",
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 30,
+ "type": "array"
+}
changedInput schema / properties / per_1k_mau / description
Previous value: -"Override usage per 1,000 MAU. Units: mau, seat, request_million, bandwidth_gb, db_storage_gb, egress_gb, email, event, error_event, compute_hour, revenue_usd, transaction, ai_input_ktok, ai_output_ktok, kv_read, kv_write, ci_hour."New value: +"Override usage per 1,000 MAU. Units: mau, seat, request_million, bandwidth_gb, db_storage_gb, egress_gb, email, event, error_event, compute_hour, revenue_usd, transaction, ai_input_ktok, ai_output_ktok, kv_read, kv_write, ci_hour, file_storage_gb, file_egress_gb, file_write, file_read, video_min_stored, video_min_delivered, sms, job_run, search_request, search_record."
addedInput schema / properties / per_1k_mau / properties / file_egress_gb
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / file_read
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / file_storage_gb
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / file_write
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / job_run
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / search_record
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / search_request
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / sms
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / video_min_delivered
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_1k_mau / properties / video_min_stored
Added value: +{
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / per_user
Added value: +{
+ "additionalProperties": false,
+ "description": "Usage per active user a month, e.g. {\"sms\": 2, \"file_storage_gb\": 0.2, \"ai_input_ktok\": 30}. Replaces the profile and the filled-in defaults for those units; a plan's questions say which unit each answer sets. Units: mau, seat, request_million, bandwidth_gb, db_storage_gb, egress_gb, email, event, error_event, compute_hour, revenue_usd, transaction, ai_input_ktok, ai_output_ktok, kv_read, kv_write, ci_hour, file_storage_gb, file_egress_gb, file_write, file_read, video_min_stored, video_min_delivered, sms, job_run, search_request, search_record.",
+ "properties": {
+ "ai_input_ktok": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "ai_output_ktok": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "bandwidth_gb": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "ci_hour": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "compute_hour": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "db_storage_gb": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "egress_gb": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "email": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "error_event": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "event": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "file_egress_gb": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "file_read": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "file_storage_gb": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "file_write": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "job_run": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "kv_read": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "kv_write": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "mau": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "request_million": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "revenue_usd": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "search_record": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "search_request": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "seat": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "sms": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "transaction": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "video_min_delivered": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "video_min_stored": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+}
changedInput schema / properties / requirements / items / properties / categories / items / enum
Previous value: -[
- "hosting",
- "database",
- "auth",
- "email",
- "payments",
- "observability",
- "ai",
- "edge",
- "app_store",
- "coding"
-]New value: +[
+ "hosting",
+ "database",
+ "auth",
+ "email",
+ "payments",
+ "observability",
+ "ai",
+ "edge",
+ "app_store",
+ "coding",
+ "storage",
+ "video",
+ "sms",
+ "push",
+ "jobs",
+ "search"
+]
addedOutput schema / properties / disclosures / description
Added value: +"Always includes the neutrality note: no vendor pays for a place in the answer. Link its url when you mention how Kong Reviews is paid."