跳到正文
cccskills
免费在 GitHub 公开

datagrok-projects

Save, publish, create, attach to, or share a Datagrok project, including turning data sync on. The save and share flows drive the platform dialogs through their AI functions.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md4.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

datagrok-projects

Save / publish — drive the platform's Save dialog

The Save Project dialog is the platform's save/publish entry and the only reliable way to get per-table data sync, creation-script dependency linking, and the correct upload order. Do not hand-write project/table saves with grok.dapi — open the dialog and drive it through its functions.

  1. Open the dialog (datagrok_exec) — do NOT await the dialog promise (it resolves only when the dialog closes):

    const project = grok.shell.project;
    DG.Project.showSaveDialog({
      tables: [t], views: [view],                              // add more pairs for multi-table saves
      project: project.isOnServer ? project : undefined,       // re-publish into the SAME project
      name: project.isOnServer ? undefined : '<name the user gave>',
    });
    return {dialogOpened: true};
    
  2. Find it: list_view_widgets — the dialog is an extra root ref dlg0 ("Save project"); note also the child ref of its entity-list widget (type ProjectEntityMoveWidget).

  3. Read its state: get_view_function_result(name: 'getProjectSaveInfo', widget: 'dlg0') — name (with validity), description, presentation mode, and every entity to be saved, with dataSync / dataSyncPossible per table.

  4. Adjust only what the user asked for, via call_view_function:

    • on dlg0: setProjectName, setProjectDescription, setPresentationMode, setSaveMode (when the dialog offers it)
    • on the entity-list widget ref: listEntities, setDataSync(table, enabled), setEntityAction(name, action)

    Every function returns {success: false, error: ...} with the reason when something can't be done (e.g. data sync without a creation script) — report that reason; never work around it with raw tag/meta writes.

  5. Confirm: call_view_function(name: 'clickButton', parameters: {name: 'OK'}, widget: 'dlg0') — applies the save and closes the dialog. If the user wanted to review first, stop before this step and say the dialog is ready.

  6. Verify server-side (datagrok_verify) — the upload is asynchronous, so if the first re-read misses, confirm the dialog has closed and retry once:

    const p = await grok.dapi.projects.filter('friendlyName = "<name>"').first();
    return p != null;
    

    When data sync was requested, also verify the table: (await grok.dapi.tables.find('<tableInfoId>')).tags['.data-sync'] === 'sync'.

Data sync — the one precondition

A synced table re-runs its creation script when the project opens. The platform records that script only when the query/script runs through its own pipeline — grok.functions.call / grok.data.query run as processed calls and record nothing. So for "query the database and save it with data sync":

  1. Make sure the query is saved on the server: create it with connection.query('<name>', '<sql>'), q = await grok.dapi.queries.save(q), then re-read by id (grok.dapi.queries.find(q.id)) — never by name, duplicates shadow name lookups.

  2. Run the server copy so the result opens in the workspace with a creation script:

    const call = q.prepare({});
    await call.call(false, undefined, {processed: false});
    
  3. Open the Save dialog (above) and setDataSync(table, true). If it answers "no creation script", step 2 didn't happen — fix that instead of forcing tags.

Create / attach / share

  • Create an empty project: datagrok_projects(op: "create", args: {name}) once.
  • Attach the current table/view to a project: use the Save dialog flow above.
  • Share: datagrok_projects(op: "share", args: {projectId, groups, access}) — access "View"|"Edit", default "View"; ask when no group is named. When the platform's Share dialog is open instead (a dlg<N> ref), drive it the same way: getShareInfo, addShareGrantee(name), setShareAccess(access), setShareMessage(message), then clickButton OK.

Don't

  • Hand-write saves with grok.dapi.tables.save / uploadDataFrame / projects.save — the dialog handles upload order, table meta, and sync dependencies; manual writes corrupt them.
  • Set .data-sync / .script tags directly — use setDataSync and let it refuse when the precondition fails.
  • Re-run a save after a timeout — re-read state first (getProjectSaveInfo, or check the dialog closed); a second dialog or a duplicate project is worse than a late answer.
  • Promise data sync before setDataSync (or dataSyncPossible) confirms it.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Add support for a new curve data format in the Curves package converter system

中文简介正在准备中。当前显示原文说明。

datagrok-ai/public742026年10月20日 更新

Create info panels that appear in the context panel based on semantic types

中文简介正在准备中。当前显示原文说明。

datagrok-ai/public742026年10月20日 更新

Add a new single-objective optimization algorithm to the sci-comp library. Use when the user asks to implement a new optimizer (e.g. gradient descent, BFGS, simulated annealing, differential evolution).

中文简介正在准备中。当前显示原文说明。

datagrok-ai/public742026年10月20日 更新

Add unit tests to a Datagrok package

中文简介正在准备中。当前显示原文说明。

datagrok-ai/public742026年10月20日 更新

Answer a "how do I …" question about the platform with a Gherkin scenario on @datagrok-libraries/bdd that is filmed into a how-to video (grok-bdd guide), so the answer is demonstrated, sent as a video plus numbered steps, and kept as a regression test; the same scenarios, filmed in help mode, are the GIFs of the help pages

中文简介正在准备中。当前显示原文说明。

datagrok-ai/public742026年10月20日 更新

Translate hand-written Playwright specs (or any existing UI tests) into Gherkin features on @datagrok-libraries/bdd, then prove the features test what they claim by backward-matching them against the originals with independent reviewers, and fix the gaps in the core, the library and the features

中文简介正在准备中。当前显示原文说明。

datagrok-ai/public742026年10月20日 更新

查看 datagrok-ai 的全部技能

报告此技能的问题