Power Query и внешние источники · часть 1
Вычисление и инспекция M-выражений, коннекторы OData, Postgres, SQL Server и Web, шаги запроса, навигация, параметры и уровни приватности. Операций на странице: 17.
Домен разбит на несколько страниц: часть 1 · часть 2 · часть 3.
Операции на этой странице — 17
commit_applied_step_editcommit_power_query_loadevaluate_m_expressionevaluate_m_expression_with_odata_feedevaluate_m_expression_with_sourcesevaluate_m_expression_with_web_connectorevaluate_m_expression_with_web_sourceevaluate_power_query_odata_feed_transformevaluate_power_query_postgres_transformevaluate_power_query_sqlserver_transformevaluate_power_query_transformevaluate_power_query_web_connector_transforminspect_m_expressioninspect_m_expression_with_odata_feedinspect_m_expression_with_postgresinspect_m_expression_with_sourcesmutate_applied_step
commit_applied_step_edit
Заголовок раздела «commit_applied_step_edit»Фиксирует applied step edit.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “commit_applied_step_edit” | да | |
| mText | string | да | |
| queryStableId | string | нет | |
| stepId | string | да | |
| canonicalM | string | да | |
| editorSessionId | string | нет | PQ-EDITOR-003 seam A (additive, OPTIONAL): editor session tag — see project_applied_steps. |
| generation | number | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · commit_applied_step_edit
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “commit_applied_step_edit” | да | |
| result | StepMutationResult | да |
Минимальный JSON-шаблон
{ "operation": "commit_applied_step_edit", "mText": "<string>", "stepId": "<string>", "canonicalM": "<string>", "requestedBackend": "native-desktop"}commit_power_query_load
Заголовок раздела «commit_power_query_load»Фиксирует power query load.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “commit_power_query_load” | да | |
| subsetId | string | да | |
| loadPlan | PowerQueryLoadPlan | да | |
| query | unknown | да | Opaque, secret-free Rust-owned persisted query record returned by evaluation. |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · commit_power_query_load
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “commit_power_query_load” | да | |
| queryId | string | да | |
| appliedEditCount | number | да | |
| createdSheet | boolean | да | |
| sheetKey | string | нет | |
| staleClearCount | number | да | |
| projection | Extract< ComputeResponsePayload, { operation: “open_workbook_subset” } > | да | Same-session Rust projection produced inside the atomic commit boundary. |
Минимальный JSON-шаблон
{ "operation": "commit_power_query_load", "subsetId": "<subsetId>", "loadPlan": "<PowerQueryLoadPlan>", "query": "<unknown>", "requestedBackend": "native-desktop"}evaluate_m_expression
Заголовок раздела «evaluate_m_expression»Вычисляет/оценивает m expression.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression” | да | |
| mText | string | да | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_m_expression
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression” | да | |
| outcome | MExpressionOutcome | да |
Минимальный JSON-шаблон
{ "operation": "evaluate_m_expression", "mText": "<string>", "requestedBackend": "native-desktop"}evaluate_m_expression_with_odata_feed
Заголовок раздела «evaluate_m_expression_with_odata_feed»Вычисляет/оценивает m expression with odata feed.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression_with_odata_feed” | да | |
| mText | string | да | |
| connector | ApprovedODataFeedDescriptor | нет | |
| privacy | PqPrivacyEvaluationInput | нет | PQ-PRIVACY-001: optional privacy input — the mint-time firewall check runs BEFORE the OData capability is minted (no policy/DNS/transport on a Blocked decision). |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_m_expression_with_odata_feed
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression_with_odata_feed” | да | |
| outcome | MExpressionOutcome | да |
Минимальный JSON-шаблон
{ "operation": "evaluate_m_expression_with_odata_feed", "mText": "<string>", "requestedBackend": "native-desktop"}evaluate_m_expression_with_sources
Заголовок раздела «evaluate_m_expression_with_sources»Вычисляет/оценивает m expression with sources.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression_with_sources” | да | |
| mText | string | да | |
| sources | ApprovedSourceDescriptor[] | да | |
| privacy | PqPrivacyEvaluationInput | нет | PQ-PRIVACY-001: optional EXPLICIT privacy input — when present it takes PRECEDENCE and gates minting (Blocked ⇒ typed redacted firewall.* refusal). When ABSENT the dispatcher AUTO-COMPOSES one from userStoreLevels + the session’s workbook-declared section + the descriptor scopes (the live Get Data / Refresh path, so panel levels genuinely govern). |
| foldMode | “folding-on” | “force-local” | нет | PQ-PRIVACY-001 LEAD: “force-local” bypasses the live-fold chokepoint for THIS evaluation (the freeze-§7 folded == force-local policy-parity instrument; same gate, same guards, only the fold engagement differs). Absent/other ⇒ the normal folded path. |
| userStoreLevels | PqPrivacyLevelAssignment[] | нет | PQ-PRIVACY-001 LIVE PRODUCT-PATH WIRING: the per-user privacy-level store assignments the SHELL read (levels are NOT secrets). Used ONLY when privacy is absent, to auto-compose the effective per-scope levels for the descriptor sources so a live multi-source combine is governed by the panel-assigned levels (not over-blocked). A failed store read ⇒ omit/empty ⇒ fail-closed firewall.context-missing for a multi-scope combine (never a silent allow). |
| subsetId | string | нет | PQ-PRIVACY-001 LIVE PRODUCT-PATH WIRING: the open-session subset id. When present (and privacy absent) the dispatcher folds the session’s workbook-declared <privacy> section into the auto-composed effective levels. Absent/unknown ⇒ user store only (still live). |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_m_expression_with_sources
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression_with_sources” | да | |
| outcome | MExpressionOutcome | да |
Минимальный JSON-шаблон
{ "operation": "evaluate_m_expression_with_sources", "mText": "<string>", "sources": [], "requestedBackend": "native-desktop"}evaluate_m_expression_with_web_connector
Заголовок раздела «evaluate_m_expression_with_web_connector»Вычисляет/оценивает m expression with web connector.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression_with_web_connector” | да | |
| mText | string | да | |
| connector | ApprovedWebConnectorDescriptor | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_m_expression_with_web_connector
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression_with_web_connector” | да | |
| outcome | MExpressionOutcome | да |
Минимальный JSON-шаблон
{ "operation": "evaluate_m_expression_with_web_connector", "mText": "<string>", "requestedBackend": "native-desktop"}evaluate_m_expression_with_web_source
Заголовок раздела «evaluate_m_expression_with_web_source»Вычисляет/оценивает m expression with web source.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression_with_web_source” | да | |
| mText | string | да | |
| source | ApprovedWebSourceDescriptor | нет | |
| privacy | PqPrivacyEvaluationInput | нет | PQ-PRIVACY-001: optional privacy input — the mint-time firewall check runs BEFORE the network capability is minted (no policy/DNS/transport on a Blocked decision). |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_m_expression_with_web_source
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_m_expression_with_web_source” | да | |
| outcome | MExpressionOutcome | да |
Минимальный JSON-шаблон
{ "operation": "evaluate_m_expression_with_web_source", "mText": "<string>", "requestedBackend": "native-desktop"}evaluate_power_query_odata_feed_transform
Заголовок раздела «evaluate_power_query_odata_feed_transform»Вычисляет/оценивает power query odata feed transform.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_odata_feed_transform” | да | |
| mSource | string | да | |
| connector | ApprovedODataFeedDescriptor | нет | |
| destination | PowerQueryLoadDestination | нет | |
| refreshQueryId | string | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_power_query_odata_feed_transform
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_odata_feed_transform” | да | |
| outcome | ContractPowerQueryTransformOutcome | да | |
| loadPlan | PowerQueryLoadPlan | нет |
Минимальный JSON-шаблон
{ "operation": "evaluate_power_query_odata_feed_transform", "mSource": "<string>", "requestedBackend": "native-desktop"}evaluate_power_query_postgres_transform
Заголовок раздела «evaluate_power_query_postgres_transform»Вычисляет/оценивает power query postgres transform.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_postgres_transform” | да | |
| descriptor | PqPostgresDialogDescriptor | нет | |
| table | PqPostgresPreviewTableRef | нет | |
| mSource | string | нет | |
| destination | PowerQueryLoadDestination | нет | |
| refreshQueryId | string | нет | |
| connectUser | string | нет | |
| lanGrants | PqPostgresLanGrantWire[] | нет | |
| privacy | PqPrivacyEvaluationInput | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_power_query_postgres_transform
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_postgres_transform” | да | |
| outcome | ContractPowerQueryTransformOutcome | да | |
| loadPlan | PowerQueryLoadPlan | нет |
Минимальный JSON-шаблон
{ "operation": "evaluate_power_query_postgres_transform", "requestedBackend": "native-desktop"}evaluate_power_query_sqlserver_transform
Заголовок раздела «evaluate_power_query_sqlserver_transform»Вычисляет/оценивает power query sqlserver transform.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_sqlserver_transform” | да | |
| descriptor | PqSqlServerDescriptor | нет | |
| table | PqSqlServerTableRef | нет | |
| destination | PowerQueryLoadDestination | нет | |
| refreshQueryId | string | нет | |
| privacy | PqPrivacyEvaluationInput | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_power_query_sqlserver_transform
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_sqlserver_transform” | да | |
| outcome | ContractPowerQueryTransformOutcome | да | |
| loadPlan | PowerQueryLoadPlan | нет |
Минимальный JSON-шаблон
{ "operation": "evaluate_power_query_sqlserver_transform", "requestedBackend": "native-desktop"}evaluate_power_query_transform
Заголовок раздела «evaluate_power_query_transform»Вычисляет/оценивает power query transform.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_transform” | да | |
| mSource | string | да | |
| sourceId | string | да | |
| sourceUri | string | нет | PQ-MARKET-007: the folder root / single JSON-XML document path. REQUIRED (load-bearing) for sourceKind === “folder” (encodes include/exclude/recursive as query params, e.g. file:///path?include=.csv&exclude=_&recursive=1); for “json”/“xml” it is the single-file path (same shape the M5 local-file route already accepts). |
| sourceKind | “csv” | “workbook” | “folder” | “json” | “xml” | нет | Advisory for “csv”/“workbook” (re-derived from the M head); LOAD-BEARING for “folder” (routes to the folder/combine evaluator instead of the single local-file route). |
| previewStep | number | нет | Intermediate-step preview (same semantics as every other Power Query source). |
| destination | PowerQueryLoadDestination | нет | Optional Load destination. Absent = read-only preview (no plan). Present = load-preview: the evaluator stays read-only and returns a validated plan in the response’s loadPlan. |
| includeDependencyGraph | boolean | нет | PQ-MARKET-008: opt-in dependency-graph snapshot (default false = zero behavior change). |
| paramOptions | ContractPersistedParamOptionsBinding | нет | PQ-MARKET-008: named-parameter bindings for a LOCAL-FILE CSV source’s delimiter/header/ row-count/filter knobs. Re-resolved fresh against the LIVE parameter registry on every evaluate/refresh; ignored for a current-workbook/folder source. |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_power_query_transform
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_transform” | да | |
| outcome | ContractPowerQueryTransformOutcome | да | |
| loadPlan | PowerQueryLoadPlan | нет | Present ONLY when the request carried a destination and the outcome evaluated (a load-preview). Preview requests and blocked outcomes omit it. The evaluator never writes. |
| recomputed | boolean | нет | PQ-MARKET-008: true iff this call was a refresh (refresh/refreshQueryId present) AND the outcome is evaluated — a genuine recompute happened. Always false for a first Load/preview. |
| dependencyGraph | ContractDependencyGraphSnapshot | null | нет | PQ-MARKET-008: present iff the request’s includeDependencyGraph was true and exactly one workbook session is live. |
Минимальный JSON-шаблон
{ "operation": "evaluate_power_query_transform", "mSource": "<string>", "sourceId": "<string>", "requestedBackend": "native-desktop"}evaluate_power_query_web_connector_transform
Заголовок раздела «evaluate_power_query_web_connector_transform»Вычисляет/оценивает power query web connector transform.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_web_connector_transform” | да | |
| mSource | string | да | |
| connector | ApprovedWebConnectorDescriptor | нет | |
| destination | PowerQueryLoadDestination | нет | |
| refreshQueryId | string | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · evaluate_power_query_web_connector_transform
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “evaluate_power_query_web_connector_transform” | да | |
| outcome | ContractPowerQueryTransformOutcome | да | |
| loadPlan | PowerQueryLoadPlan | нет |
Минимальный JSON-шаблон
{ "operation": "evaluate_power_query_web_connector_transform", "mSource": "<string>", "requestedBackend": "native-desktop"}inspect_m_expression
Заголовок раздела «inspect_m_expression»Инспектирует m expression.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “inspect_m_expression” | да | |
| mText | string | да | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · inspect_m_expression
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “inspect_m_expression” | да | |
| snapshot | PowerQueryInspectorSnapshot | да |
Минимальный JSON-шаблон
{ "operation": "inspect_m_expression", "mText": "<string>", "requestedBackend": "native-desktop"}inspect_m_expression_with_odata_feed
Заголовок раздела «inspect_m_expression_with_odata_feed»Инспектирует m expression with odata feed.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “inspect_m_expression_with_odata_feed” | да | |
| mText | string | да | |
| connector | ApprovedODataFeedDescriptor | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · inspect_m_expression_with_odata_feed
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “inspect_m_expression_with_odata_feed” | да | |
| snapshot | PowerQueryInspectorSnapshot | да |
Минимальный JSON-шаблон
{ "operation": "inspect_m_expression_with_odata_feed", "mText": "<string>", "requestedBackend": "native-desktop"}inspect_m_expression_with_postgres
Заголовок раздела «inspect_m_expression_with_postgres»Инспектирует m expression with postgres.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “inspect_m_expression_with_postgres” | да | |
| mText | string | да | |
| descriptor | PqPostgresDialogDescriptor | нет | |
| schema | string | нет | |
| item | string | нет | |
| connectUser | string | нет | |
| lanGrants | PqPostgresLanGrantWire[] | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · inspect_m_expression_with_postgres
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “inspect_m_expression_with_postgres” | да | |
| snapshot | PowerQueryInspectorSnapshot | да |
Минимальный JSON-шаблон
{ "operation": "inspect_m_expression_with_postgres", "mText": "<string>", "requestedBackend": "native-desktop"}inspect_m_expression_with_sources
Заголовок раздела «inspect_m_expression_with_sources»Инспектирует m expression with sources.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “inspect_m_expression_with_sources” | да | |
| mText | string | да | |
| sources | ApprovedSourceDescriptor[] | да | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · inspect_m_expression_with_sources
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “inspect_m_expression_with_sources” | да | |
| snapshot | PowerQueryInspectorSnapshot | да |
Минимальный JSON-шаблон
{ "operation": "inspect_m_expression_with_sources", "mText": "<string>", "sources": [], "requestedBackend": "native-desktop"}mutate_applied_step
Заголовок раздела «mutate_applied_step»Изменяет applied step.
Request
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “mutate_applied_step” | да | |
| mText | string | да | |
| queryStableId | string | нет | |
| mutation | StepMutation | да | |
| editorSessionId | string | нет | PQ-EDITOR-003 seam A (additive, OPTIONAL): editor session tag — see project_applied_steps. |
| generation | number | нет | |
| requestedBackend | ComputeBackendKind | null | нет |
Success payload · mutate_applied_step
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | “mutate_applied_step” | да | |
| result | StepMutationResult | да |
Минимальный JSON-шаблон
{ "operation": "mutate_applied_step", "mText": "<string>", "mutation": "<StepMutation>", "requestedBackend": "native-desktop"}