Skip to content
cccskills
FreePublished on GitHub

cache-function-results

Add caching to Datagrok functions using meta.cache annotations

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md3.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Cache Function Results

Help the user add caching to Datagrok functions to improve performance by storing results for repeated calls with the same inputs.

Usage

/cache-function-results [function-name] [--mode <client|server|all>]

Instructions

1. Choose the cache mode

Add meta.cache annotation to the function header:

  • client — stores results in the browser's IndexedDB
  • server — stores results on the Datagrok server
  • all — uses both client and server caches together

2. Add caching to a TypeScript/JavaScript function

//name: Get Users
//meta.cache: all
//meta.cache.invalidateOn: 0 0 * * *
//output: dataframe result
export async function getUsers(): Promise<DG.DataFrame> {
  // Expensive operation — results will be cached
}

3. Add caching to a Python/R script

#name: Example
#language: python
#meta.cache: client
#meta.cache.invalidateOn: 0 * * * *
#input: string table [Data table]
#output: int result

...

4. Add caching to a SQL query

--name: ActivityDetails
--connection: Chembl
--meta.cache: all
--meta.cache.invalidateOn: 0 0 * * *
--input: string target = "CHEMBL1827"
SELECT * FROM activity_details WHERE target_id = @target
--end

5. Set cache invalidation

Use meta.cache.invalidateOn with a cron expression to control when cached results expire:

Cron expressionMeaning
0 * * * *Every hour
0 0 * * *Every day at midnight
0 0 * * 1Every Monday at midnight
0 0 1 * *First day of each month

If meta.cache.invalidateOn is not specified, the cache never expires automatically.

6. Cache all queries under a connection

Instead of annotating each query, enable caching at the connection level:

Via UI: Right-click the connection > Edit... > check Cache Results and optionally fill Invalidate On.

Via connection JSON:

{
  "name": "Northwind",
  "parameters": {
    "server": "db.example.com",
    "port": 5432,
    "db": "mydb",
    "cacheResults": true,
    "cacheSchema": false
  }
}

7. Client-side cache limits

  • Function output must be scalar (int, float, string) or dataframe, graphics, datetime
  • Maximum cache size per function: 100 MB
  • Maximum record count: 100,000
  • Users enable it in Settings > Cache > Client-side cache

8. Server-side cache

  • No restrictions on size or parameter types
  • Users enable it in Settings > Cache > Server-side cache
  • Works together with client-side cache when mode is all

Behavior

  • Default to meta.cache: all unless the user specifies a preference.
  • Always suggest adding meta.cache.invalidateOn with an appropriate schedule — warn that without it the cache never refreshes.
  • Only recommend caching for functions that are immutable (same input produces same output).
  • Warn against caching database queries when the underlying data changes frequently.
  • For connection-level caching, mention that it applies to all queries under that connection.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 21, 2026

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

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 21, 2026

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).

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 21, 2026

Add unit tests to a Datagrok package

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 21, 2026

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

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 21, 2026

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

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 21, 2026

See all skills by datagrok-ai

Report a problem with this skill