
syncfusion-vue-data-manager
Implements Syncfusion Vue DataManager for local/remote binding, CRUD, querying, caching, and middleware. Supports JsonAdaptor, ODataAdaptor, ODataV4Adaptor, UrlAdaptor, WebApiAdaptor, WebMethodAdaptor, RemoteSaveAdaptor, GraphQLAdaptor, CustomDataAdaptor, and CustomAdaptor. Covers Query class, filtering, sorting, paging, grouping, persistence, offline mode, caching, and error handling.
- Installs
- 64
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/syncfusion/vue-ui-components-skills --skill syncfusion-vue-data-manager- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads syncfusion-vue-data-manager automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Syncfusion Vue DataManager: Comprehensive Guide
When to Use This Skill
Reference this skill when you need to:
- Set up DataManager in Vue 2, Vue 3, or Quasar
- Bind data (local arrays or remote APIs)
- Query and filter data with the Query class
- CRUD operations (insert, update, delete)
- Choose an adaptor (10 types available)
- Add authentication via middleware/headers
- Optimize performance with caching
- Work offline with data persistence
- Pattern guidance for Composition API vs Options API
🛑 MANDATORY HUMAN GATE: Adaptor Decision (Read This First)
This is the most critical rule in this skill. It cannot be skipped or bypassed.
When the user provides a service URL without explicitly naming the adaptor type, the agent MUST:
- STOP code generation immediately
- READ:
references/adaptor-decision-gate.md(full file) - PRESENT the gate to the user using the template in that file
- WAIT for explicit user confirmation of the adaptor choice
- Only then proceed to generate
DataManagercode with the confirmed adaptor
Gate Trigger Conditions — Examples
| User Prompt | Gate Required? |
|---|---|
"Build an employee app using this service URL (http://myapi.com/employees)" | ✅ YES — no adaptor specified |
"Connect GridComponent to http://myserver/api/data" | ✅ YES — "API" is ambiguous |
"Use OData v4 endpoint at https://myserver/odata/employees" | ❌ NO — OData v4 explicitly stated |
"My backend returns { Items, Count } at https://myserver/api/orders" | ❌ NO — WebApiAdaptor pattern confirmed |
"I have a REST service at http://custom-url" | ✅ YES — REST is ambiguous (UrlAdaptor vs WebApiAdaptor vs ODataV4) |
"Bind the grid to local list data" | ❌ NO — local binding, no adaptor needed |
📄 Full gate template, adaptor cheat sheet, disambiguation questions, and security rules:
→ references/adaptor-decision-gate.md
⚠️ Security & Trust Boundary
- This skill generates code only, the agent does not execute data operations or fetch remote endpoints — all DataManager interactions occur solely within the user's application at runtime.
- Generated code must treat all third-party API responses as untrusted input, never bind to unvalidated or user-provided URLs, and ensure authentication is enforced on all remote endpoints.
⚠️ Critical Security Requirements
When binding to remote services, you MUST implement these protections:
- Use HTTPS only — never use unencrypted HTTP connections; encrypt all data in transit
- Use string variables for URLs — assign endpoints to private string properties rather than hardcoding in markup; this enables centralized validation and easier maintenance
- Validate and sanitize responses — implement server-side schema validation; reject unexpected response formats; map responses to strongly-typed models
- Monitor remote calls — log all external API requests with timestamps, endpoints, and outcomes for security audit trails
- Implement CORS securely — use specific trusted origins only; never use wildcard
*in production; require HTTPS - Prevent indirect prompt injection attacks — verify endpoint ownership; implement request signing; validate response content types and schemas before consuming data
Third-party API responses can introduce security risks. Always verify endpoint legitimacy, authenticate requests, and validate data before binding to UI components.
Key Concepts Overview
| Concept | When to Use | Reference |
|---|---|---|
| Setup | Installing & initial config | setup-vue-2.md, setup-vue-3.md, setup-quasar.md |
| Data Binding | Connecting data sources | data-binding.md |
| Querying | Filtering, sorting, pagination | querying.md |
| CRUD | Insert, update, delete records | crud-operations.md |
| Adaptors | Choosing data source type | adaptors-guide.md |
| Caching | Performance optimization | caching.md |
| Middleware | Authentication, transformation | middleware.md |
| Headers | Custom HTTP headers | how-to-headers.md |
| Parameters | Send extra query params | how-to-parameters.md |
| Offline | Work without internet | how-to-offline.md |
📊 Framework & API Coverage
| Feature | Vue 2 | Vue 3 | Quasar | Composition | Options |
|---|---|---|---|---|---|
| Setup | ✅ | ✅ | ✅ | - | ✅ |
| Composition API | - | ✅ | ✅ | ✅ | - |
| Local Data | ✅ | ✅ | ✅ | ✅ | ✅ |
| Remote Data | ✅ | ✅ | ✅ | ✅ | ✅ |
| 10 Adaptors | ✅ | ✅ | ✅ | ✅ | ✅ |
| CRUD | ✅ | ✅ | ✅ | ✅ | ✅ |
| Querying | ✅ | ✅ | ✅ | ✅ | ✅ |
| Caching | ✅ | ✅ | ✅ | ✅ | ✅ |
| Middleware | ✅ | ✅ | ✅ | ✅ | ✅ |
🚀 Quick Start
Vue 3 Composition API (Recommended)
import { onMounted, ref } from 'vue';
import { DataManager, Query, ODataV4Adaptor } from '@syncfusion/ej2-data';
export default {
setup() {
const items = ref([]);
onMounted(async () => {
const dm = new DataManager({
url: 'url',
adaptor: new ODataV4Adaptor()
});
try {
const result = await dm.executeQuery(new Query().take(10));
items.value = result.result;
} catch (error) {
console.error('Error:', error);
}
});
return { items };
}
}
Vue 2 Options API
import { DataManager, Query, ODataV4Adaptor } from '@syncfusion/ej2-data';
export default {
data() {
return { items: [] };
},
mounted() {
const dm = new DataManager({
url: 'url',
adaptor: new ODataV4Adaptor()
});
dm.executeQuery(new Query().take(10))
.then((result) => {
this.items = result.result;
})
.catch((error) => {
console.error('Error:', error);
});
}
}
📖 Documentation Navigation
🛑 Adaptor Decision Gate (Human Approval — MANDATORY FIRST STEP for Remote URLs)
📄 Read: references/adaptor-decision-gate.md
- When to trigger: User provides any service URL without explicitly naming the adaptor
- Gate presentation template (copy-paste ready)
- Full adaptor comparison table (ODataV4 / OData / WebAPI / URL / GraphQL / Custom)
- Adaptor quick-reference cheat sheets with code examples
- Disambiguation follow-up questions
- Security rules applied after gate confirmation
- Stage 1 & Stage 3 integration instructions (flags ambiguous URLs in component mapping JSON)
- Keywords that auto-resolve the gate (no user confirmation needed)
Getting Started (Choose Your Framework)
New to DataManager? Start here:
📄 setup-vue-2.md — Vue 2 with Options API
- Vue CLI installation
- Vue 2 lifecycle patterns
- First DataManager example
📄 setup-vue-3.md — Vue 3 with Composition & Options API
- Vite project setup
- reactive() vs ref()
- onMounted lifecycle
- Performance tips
📄 setup-quasar.md — Quasar Framework
- Quasar CLI bootstrap
- Boot file configuration
- Q-Grid integration
- Build optimization
Core Features
Understanding Data Binding:
📄 data-binding.md
- Local data binding (json property)
- Remote data binding (url + adaptor)
- Error handling by HTTP status
- Promise patterns
Manipulating Data (CRUD):
📄 crud-operations.md
- insert() — Add new records
- update() — Modify existing records
- remove() — Delete records
- Batch operations with saveChanges()
- keyField in update/remove methods
Querying & Filtering:
📄 querying.md
- from() — Specify resource
- select() — Choose fields
- where() — Filter conditions
- orderBy() — Sorting
- take/skip — Pagination
- search() — Full-text search
- group() — Data grouping
Data Adaptors (10 Types)
Selecting the Right Adaptor:
📄 adaptors-guide.md
- JsonAdaptor — Local in-memory arrays
- ODataAdaptor — OData v3 services
- ODataV4Adaptor — OData v4 endpoints
- UrlAdaptor — Generic REST APIs
- WebApiAdaptor — ASP.NET Web API (Items, Count format)
- WebMethodAdaptor — ASP.NET web methods
- RemoteSaveAdaptor — Client queries + server CRUD
- GraphQLAdaptor — GraphQL endpoints
- CustomDataAdaptor — Custom request/response
- CustomAdaptor — Extend built-in adaptors
Includes decision tree and comparison matrix.
Advanced Features
Performance Optimization:
📄 caching.md
- enableCache property
- How caching works
- Auto-clearing rules
- When to enable/disable
Request Customization:
📄 middleware.md
- applyPreRequestMiddlewares() — Modify requests
- applyPostRequestMiddlewares() — Transform responses
- Adding custom headers
- Authentication token injection
How-To Guides
Quick Solutions for Common Tasks:
📄 how-to-headers.md
- Adding static headers
- Dynamic headers per request
- JWT/Bearer authentication
- Content negotiation
📄 how-to-parameters.md
- Sending additional query parameters
- Custom API formats
- Different adaptor parameter styles
📄 how-to-offline.md
- Enabling offline mode
- localStorage persistence
- Sync strategies
- Conflict resolution
🔒 Security Warning:
localStorageandsessionStoragestore data unencrypted in the browser. Never store sensitive data (passwords, tokens, PII, payment info, user secrets, authentication credentials) in persisted TreeGrid state. State persistence is safe for UI state only (expand/collapse state, page number, sort order, column visibility, filter selections). For sensitive configuration or user data, use secure server-side session storage instead.
🎯 Common Patterns
Local Data Binding
// Vue 3 Composition API
import { ref } from 'vue';
import { DataManager, Query, JsonAdaptor } from '@syncfusion/ej2-data';
const items = ref([]);
const data = [
{ OrderID: 10248, CustomerID: 'VINET', Freight: 32.38 },
{ OrderID: 10249, CustomerID: 'TOMSP', Freight: 11.61 }
];
const dm = new DataManager({ json: data, adaptor: new JsonAdaptor() });
items.value = dm.executeLocal(new Query().take(10));
Remote Data with Error Handling
const dataManager = new DataManager({
url: 'url',
adaptor: new WebApiAdaptor()
});
dataManager.executeQuery(new Query().take(10))
.then((result) => {
console.log('Success:', result.result);
})
.catch((error) => {
const statusCode = error.status;
if (statusCode === 401) {
console.error('Unauthorized - please login');
} else if (statusCode === 404) {
console.error('Data not found');
} else if (statusCode === 0) {
console.error('Network error');
}
});
Filtering with Vue 3 Composition API
import { ref, computed } from 'vue';
import { Query } from '@syncfusion/ej2-data';
const dm = new DataManager({ json: allData });
const searchText = ref('');
const filteredData = computed(() => {
if (!searchText.value) return allData;
return dm.executeLocal(
new Query().where('CustomerID', 'contains', searchText.value)
);
});
Authentication Middleware
🔒 Security Warning:
localStorageandsessionStoragestore data unencrypted in the browser. Never store sensitive data (passwords, tokens, PII, payment info, user secrets, authentication credentials) in persisted TreeGrid state. State persistence is safe for UI state only (expand/collapse state, page number, sort order, column visibility, filter selections). For sensitive configuration or user data, use secure server-side session storage instead.
const dataManager = new DataManager({
url: 'url',
adaptor: new WebApiAdaptor()
});
// Apply middleware to add auth token
dataManager.applyPreRequestMiddlewares([
async (context) => {
const token = localStorage.getItem('auth_token');
context.request.headers['Authorization'] = `send_token`;
}
]);
🔧 DataManager Configuration
const dataManager = new DataManager({
// Data source
url: 'url', // Remote endpoint
json: localArray, // Local array
// Adaptor selection
adaptor: new WebApiAdaptor(), // Adaptor type
// Headers & auth
headers: [...],
// Network settings
crossDomain: true, // Enable CORS
offline: false, // Offline mode
enableCache: true, // Caching
// Persistence
enablePersistence: true, // Enable state persistence
id: 'dataManager_vue', // Persistence ID
ignoreOnPersist: ['temp', 'debug'], // Properties to exclude
timeZoneHandling: true // Timezone offset handling
});
❌ Common Errors & Solutions
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Missing/expired auth token | Add middleware with fresh token |
| 404 Not Found | Wrong endpoint URL | Verify API endpoint URL |
| 0 (Network Error) | No internet connection | Enable offline mode |
| Cross-Origin Error | CORS not enabled | Set crossDomain: true |
✅ Best Practices
- Always set adaptor — Choose correct adaptor for your backend
- Pass keyField in CRUD methods — Required as first parameter in update/delete
- Use async/await — More readable than .then()/.catch()
- Add error handling — Catch HTTP errors
- Enable caching — Reduce server requests
- Use middleware — Add auth globally
- Test both APIs — Composition & Options patterns
- Handle network errors — Status code 0 means no internet
- Use typed interfaces — TypeScript support
FAQ
What does the syncfusion-vue-data-manager skill do?
Implements Syncfusion Vue DataManager for local/remote binding, CRUD, querying, caching, and middleware. Supports JsonAdaptor, ODataAdaptor, ODataV4Adaptor, UrlAdaptor, WebApiAdaptor, WebMethodAdaptor, RemoteSaveAdaptor, GraphQLAdaptor, CustomDataAdaptor, and CustomAdaptor. Covers Query class, filtering, sorting, paging, grouping, persistence, offline mode, caching, and error handling.
How do I install syncfusion-vue-data-manager?
Run npx skills add https://github.com/syncfusion/vue-ui-components-skills --skill syncfusion-vue-data-manager in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-vue-data-manager/ (personal) or .claude/skills/syncfusion-vue-data-manager/ (project).
Which AI agents can use syncfusion-vue-data-manager?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is syncfusion-vue-data-manager safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains syncfusion-vue-data-manager?
It is published by syncfusion in syncfusion/vue-ui-components-skills. It has 64 recorded installs.
More from syncfusion/vue-ui-components-skills
syncfusion-vue-scheduler
syncfusion/vue-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-vue-grid
syncfusion/vue-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-vue-rich-text-editor
syncfusion/vue-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-vue-blockeditor
syncfusion/vue-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-vue-gantt-chart
syncfusion/vue-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-vue-barcode
syncfusion/vue-ui-components-skills
Open the skill to read its SKILL.md instructions.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.