दस्तावेज़
एनालिटिक्स
एप्लिकेशन मेट्रिक्स, हाल की गतिविधि, उपयोग प्रश्न और ट्रैकिंग अनुरोध।
स्वचालित अनुवाद अभी उपलब्ध नहीं है; पाठ अंग्रेज़ी में है और इंटरफ़ेस आपकी भाषा में है। अंग्रेज़ी मूल देखें
इन अनुरोधों को अपने स्वयं के चल रहे साइडकार को भेजें। मान इस ब्राउज़र में रहते हैं.
यह कैसे काम करता है
साइडकार स्टार्टअप पर चुने गए लूपबैक पोर्ट पर सुनता है और इसे प्रिंट करता है ready रेखा; उस यूआरएल का उपयोग करें और CADCAMFUN_TOKEN इसकी शुरुआत की गई थी. अनुरोध सीधे इस पृष्ठ से उस पते पर जाते हैं।
साइडकार CORS हेडर को केवल टौरी मूल और तक भेजता है http://localhost या http://127.0.0.1 किसी भी बंदरगाह पर. होस्ट किए गए दस्तावेज़ों से ब्राउज़र प्रतिक्रिया को अवरुद्ध कर देता है, इसलिए दस्तावेज़ों को स्थानीय रूप से चलाएँ (bun run dev में packages/web) खेल के मैदान का उपयोग करने के लिए, या अनुरोध को कर्ल के रूप में कॉपी करें। वास्तविक डेटा को छुए बिना प्रयोग करने के लिए, साइडकार से शुरुआत करें CADCAMFUN_DATA_DIR एक बेकार निर्देशिका की ओर इशारा किया - देखें एपीआई वॉकथ्रू.
संचालन
10 एंडपॉइंट analytics समूह, साइडकार के स्वयं से उत्पन्न ओपनएपीआई दस्तावेज़. संरक्षित संचालन लेते हैं Authorization: Bearer $CADCAMFUN_TOKEN; देखना प्रमाणीकरण. व्यवहार और मर्यादा में हैं सबसिस्टम गाइड.
| पाना | /api/analytics/system-metrics | analytics.systemMetrics |
| पाना | /api/analytics | analytics.index |
| पाना | /api/analytics/dashboard-data | analytics.dashboardData |
| डाक | /api/analytics/log-view | analytics.logView |
| पाना | /api/analytics/recent-activity | analytics.recentActivity |
| पाना | /api/analytics/user-history | analytics.userHistory |
| पाना | /api/analytics/user-metrics | analytics.userMetrics |
| पाना | /api/analytics/user-usage | analytics.userUsage |
| मिटाना | /api/analytics/user-usage | analytics.clearUserUsage |
| डाक | /api/analytics/track | analytics.track |
/api/analytics/system-metrics
analytics.systemMetrics आवश्यक है Authorization: Bearer <token>.
200 वस्तु application/json
{ cpuUsage: number | "Infinity" | "-Infinity" | "NaN" memoryUsage: number | "Infinity" | "-Infinity" | "NaN" storageUsed: number | "Infinity" | "-Infinity" | "NaN" networkLatency: number | "Infinity" | "-Infinity" | "NaN" activeConnections: number | "Infinity" | "-Infinity" | "NaN" cacheHitRatio: number | "Infinity" | "-Infinity" | "NaN" errorRate: number | "Infinity" | "-Infinity" | "NaN" responseTime: number | "Infinity" | "-Infinity" | "NaN" }
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
{
"cpuUsage": 6,
"memoryUsage": 79,
"storageUsed": 72,
"networkLatency": 15,
"activeConnections": 145,
"cacheHitRatio": 98,
"errorRate": 0.04,
"responseTime": 52
} एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// no input
const result = await client.analytics.systemMetrics() curl
curl --request GET "${CADCAMFUN_URL}/api/analytics/system-metrics" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" इसे अजमाएं
/api/analytics
analytics.index आवश्यक है Authorization: Bearer <token>.
| नाम | में | प्रकार | आवश्यक |
|---|---|---|---|
| startDate | सवाल | डोरी | null | वैकल्पिक |
| endDate | सवाल | डोरी | null | वैकल्पिक |
| itemType | सवाल | डोरी | डोरी[] | null | वैकल्पिक |
| कार्रवाई | सवाल | डोरी | डोरी[] | null | वैकल्पिक |
| groupBy | सवाल | डोरी | null | वैकल्पिक |
| userFilter | सवाल | डोरी | डोरी[] | null | वैकल्पिक |
200 वस्तु application/json
{ success: true data: { countByType: Array<{ itemType: string _count: number | "Infinity" | "-Infinity" | "NaN" }> countByAction: Array<{ action: string _count: number | "Infinity" | "-Infinity" | "NaN" }> } isAdmin: boolean filters: unknown }
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 AnalyticsFailureEncoded application/json
AnalyticsFailureEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
{
"success": true,
"data": {
"countByType": [],
"countByAction": []
},
"isAdmin": true,
"filters": {
"groupBy": "day"
}
} एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// AnalyticsIndexInput
const result = await client.analytics.index({}) curl
curl --request GET "${CADCAMFUN_URL}/api/analytics" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" इसे अजमाएं
/api/analytics/dashboard-data
analytics.dashboardData आवश्यक है Authorization: Bearer <token>.
200 वस्तु application/json
{ components: { total: number | "Infinity" | "-Infinity" | "NaN" trend: number | "Infinity" | "-Infinity" | "NaN" recentActivity: number | "Infinity" | "-Infinity" | "NaN" } projects: { total: number | "Infinity" | "-Infinity" | "NaN" trend: number | "Infinity" | "-Infinity" | "NaN" activeProjects: number | "Infinity" | "-Infinity" | "NaN" } tools: { total: number | "Infinity" | "-Infinity" | "NaN" trend: number | "Infinity" | "-Infinity" | "NaN" mostUsed: string } materials: { total: number | "Infinity" | "-Infinity" | "NaN" trend: number | "Infinity" | "-Infinity" | "NaN" lowStock: number | "Infinity" | "-Infinity" | "NaN" } }
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
{
"components": {
"total": 0,
"trend": 0,
"recentActivity": 0
},
"projects": {
"total": 0,
"trend": 0,
"activeProjects": 0
},
"tools": {
"total": 0,
"trend": 0,
"mostUsed": "No tools used yet"
},
"materials": {
"total": 0,
"trend": 0,
"lowStock": 0
}
} एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// no input
const result = await client.analytics.dashboardData() curl
curl --request GET "${CADCAMFUN_URL}/api/analytics/dashboard-data" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" इसे अजमाएं
/api/analytics/log-view
analytics.logView आवश्यक है Authorization: Bearer <token>.
{ path?: string | null query?: unknown | null }
200 वस्तु application/json
{ success: true }
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// AnalyticsLogViewInput
const result = await client.analytics.logView({
path: "",
query: null
}) curl
curl --request POST "${CADCAMFUN_URL}/api/analytics/log-view" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json इसे अजमाएं
/api/analytics/recent-activity
analytics.recentActivity आवश्यक है Authorization: Bearer <token>.
| नाम | में | प्रकार | आवश्यक |
|---|---|---|---|
| आप LIMIT | सवाल | डोरी | null | वैकल्पिक |
200 सारणी<ऑब्जेक्ट> application/json
Array<{ id: string type: string action: string itemName: string timestamp: string userId: string userName: string }>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
[] एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// AnalyticsRecentActivityInput
const result = await client.analytics.recentActivity({}) curl
curl --request GET "${CADCAMFUN_URL}/api/analytics/recent-activity" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" इसे अजमाएं
/api/analytics/user-history
analytics.userHistory आवश्यक है Authorization: Bearer <token>.
| नाम | में | प्रकार | आवश्यक |
|---|---|---|---|
| आप LIMIT | सवाल | डोरी | null | वैकल्पिक |
| ओफ़्सेट | सवाल | डोरी | null | वैकल्पिक |
| itemType | सवाल | डोरी | डोरी[] | null | वैकल्पिक |
| कार्रवाई | सवाल | डोरी | डोरी[] | null | वैकल्पिक |
| startDate | सवाल | डोरी | null | वैकल्पिक |
| endDate | सवाल | डोरी | null | वैकल्पिक |
200 वस्तु application/json
{ logs: unknown[] total: number | "Infinity" | "-Infinity" | "NaN" }
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
{
"logs": [],
"total": 0
} एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// AnalyticsUserHistoryInput
const result = await client.analytics.userHistory({}) curl
curl --request GET "${CADCAMFUN_URL}/api/analytics/user-history" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" इसे अजमाएं
/api/analytics/user-metrics
analytics.userMetrics आवश्यक है Authorization: Bearer <token>.
| नाम | में | प्रकार | आवश्यक |
|---|---|---|---|
| startDate | सवाल | डोरी | null | वैकल्पिक |
| endDate | सवाल | डोरी | null | वैकल्पिक |
| groupBy | सवाल | डोरी | null | वैकल्पिक |
| मीट्रिक | सवाल | डोरी | null | वैकल्पिक |
200 वस्तु application/json
{ summary: { totalAiRequests: number | "Infinity" | "-Infinity" | "NaN" totalCadDrawings: number | "Infinity" | "-Infinity" | "NaN" totalStorageUsage: number | "Infinity" | "-Infinity" | "NaN" totalProjects: number | "Infinity" | "-Infinity" | "NaN" totalComponents: number | "Infinity" | "-Infinity" | "NaN" totalToolpaths: number | "Infinity" | "-Infinity" | "NaN" totalActivityCount?: number | "Infinity" | "-Infinity" | "NaN" | null } chartData: Array<{ [key: string]: string | number | "Infinity" | "-Infinity" | "NaN" }> }
400 AnalyticsKeyedBadRequestEncoded application/json
AnalyticsKeyedBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
{
"summary": {
"totalAiRequests": 0,
"totalCadDrawings": 0,
"totalStorageUsage": 0,
"totalProjects": 0,
"totalComponents": 0,
"totalToolpaths": 0,
"totalActivityCount": 0
},
"chartData": [
{
"date": "2026-09-15",
"activityCount": 0,
"toolpathsGenerated": 0,
"connections": 0,
"programRuns": 0,
"aiRequests": 0,
"cadDrawings": 0,
"storageUsage": 0,
"projects": 0,
"components": 0,
"toolpaths": 0
},
{
"date": "2026-09-16",
"activityCount": 0,
"toolpathsGenerated": 0,
"connections": 0,
"programRuns": 0,
"aiRequests": 0,
"cadDrawings": 0,
"storageUsage": 0,
"projects": 0,
"components": 0,
"toolpaths": 0
},
{
"date": "2026-09-17",
"activityCount": 0,
"toolpathsGenerated": 0,
"connections": 0,
"programRuns": 0,
"aiRequests": 0,
"cadDrawings": 0,
"storageUsage": 0,
"projects": 0,
"components": 0,
"toolpaths": 0
},
{
"date": "2026-09-18",
"activityCount": 0,
"toolpathsGenerated": 0,
"connections": 0,
"programRuns": 0,
"aiRequests": 0,
"cadDrawings": 0,
"storageUsage": 0,
"projects": 0,
"components": 0,
"toolpaths": 0
},
{
"date": "2026-09-19",
"activityCount": 0,
"toolpathsGenerated": 0,
"connections": 0,
"programRuns": 0,
"aiRequests": 0,
"cadDrawings": 0,
"storageUsage": 0,
"projects": 0,
"components": 0,
"toolpaths": 0
},
{
"date": "2026-09-20",
"activityCount": 0,
"toolpathsGenerated": 0,
"connections": 0,
"programRuns": 0,
"aiRequests": 0,
"cadDrawings": 0,
"storageUsage": 0,
"projects": 0,
"components": 0,
"toolpaths": 0
},
{
"date": "2026-09-21",
"activityCount": 0,
"toolpathsGenerated": 0,
"connections": 0,
"programRuns": 0,
"aiRequests": 0,
"cadDrawings": 0,
"storageUsage": 0,
"projects": 0,
"components": 0,
"toolpaths": 0
},
{
"date": "2026-09-22",
"activityCount": 0,
"toolpathsGenerated": 0,
"connections": 0,
"programRuns": 0,
"aiRequests": 0,
"cadDrawings": 0,
"storageUsage": 0,
"projects": 0,
"components": 0,
"toolpaths": 0
},
{
"
… एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// AnalyticsUserMetricsInput
const result = await client.analytics.userMetrics({}) curl
curl --request GET "${CADCAMFUN_URL}/api/analytics/user-metrics" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" इसे अजमाएं
/api/analytics/user-usage
analytics.userUsage आवश्यक है Authorization: Bearer <token>.
| नाम | में | प्रकार | आवश्यक |
|---|---|---|---|
| userId | सवाल | डोरी | null | वैकल्पिक |
| startDate | सवाल | डोरी | null | वैकल्पिक |
| endDate | सवाल | डोरी | null | वैकल्पिक |
| अवधि | सवाल | डोरी | null | वैकल्पिक |
200 वस्तु application/json
{ summary?: unknown | null breakdown?: unknown | null users?: unknown[] | null systemStats?: unknown | null }
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 AnalyticsKeyedForbiddenEncoded application/json
AnalyticsKeyedForbiddenEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
उदाहरण प्रतिक्रिया कब्जा कर लिया गया · 200
{
"users": [],
"systemStats": {
"totalUsers": 0,
"totalTokens": 0,
"totalCost": 0,
"totalRequests": 0,
"averageCostPerUser": 0,
"topSpendingUsers": [],
"modelDistribution": {}
}
} एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// AnalyticsUserUsageInput
const result = await client.analytics.userUsage({}) curl
curl --request GET "${CADCAMFUN_URL}/api/analytics/user-usage" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" इसे अजमाएं
analytics.clearUserUsage आवश्यक है Authorization: Bearer <token>.
200 वस्तु application/json
{ message: string }
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// no input
const result = await client.analytics.clearUserUsage() curl
curl --request DELETE "${CADCAMFUN_URL}/api/analytics/user-usage" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" इसे अजमाएं
/api/analytics/track
analytics.track आवश्यक है Authorization: Bearer <token>.
{ itemId?: string | null itemType?: string | null action?: string | null details?: unknown | null }
200 वस्तु application/json
{ success: true }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
एसडीके उदाहरण
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// AnalyticsTrackInput
const result = await client.analytics.track({
itemId: "",
itemType: "",
action: "",
details: null
}) curl
curl --request POST "${CADCAMFUN_URL}/api/analytics/track" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json इसे अजमाएं
स्कीमा
नामित स्कीमा इस समूह के मापदंडों, निकायों और प्रतिक्रियाओं से पहुंच योग्य हैं। ए ? एक वैकल्पिक फ़ील्ड चिह्नित करता है; | null उस फ़ील्ड को चिह्नित करता है जो शून्य मान के साथ मौजूद हो सकता है।
AnalyticsFailureEncoded{ _tag: "AnalyticsFailure" success: false message: string }
AnalyticsKeyedBadRequestEncoded{ _tag: "AnalyticsKeyedBadRequest" error: string }
AnalyticsKeyedForbiddenEncoded{ _tag: "AnalyticsKeyedForbidden" error: string }
BadRequestEncoded{ _tag: "BadRequest" message: string }
InternalErrorEncoded{ _tag: "InternalError" message: string }
KeyedInternalEncoded{ _tag: "KeyedInternal" error: string }
इस समूह को कॉल किया जा रहा है
ऑपरेशन आईडी का फॉर्म है analytics.<name>. जनरेट किया गया प्रॉमिस SDK (@cadcamfun/api/sdk) उनमें से अधिकांश को इस रूप में उजागर करता है client.<namespace>.<method>(input), कहाँ input पथ पैरामीटर और बॉडी फ़ील्ड की एक सपाट वस्तु है; प्रत्येक कार्ड का एसडीके उदाहरण सटीक एक्सेसर और इनपुट प्रकार दिखाता है। मल्टीपार्ट अपलोड, बाइनरी या जावास्क्रिप्ट प्रतिक्रियाएँ और कच्चे वेबहुक उत्पन्न नहीं होते हैं; वे कार्ड दिखाते हैं fetch इसके बजाय.
import { CadCam, ClientError } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
try {
await client.projects.list()
} catch (error) {
if (error instanceof ClientError) {
// Transport | UnexpectedStatus | UnsupportedContentType | MalformedResponse | SseEventTooLarge
} else {
// a declared error body: switch on error._tag
}
} समस्या निवारण
| लक्षण | संभावित कारण | हल करना |
|---|---|---|
| हर कॉल पर 401 | पिछले लॉन्च से टोकन, या गायब Bearer उपसर्ग | भेजना Authorization: Bearer <token> टोकन के साथ साइडकार की शुरुआत की गई। |
| कुछ होने से पहले 400 | बॉडी या पैरामीटर स्कीमा से मेल नहीं खाता | कार्ड पर अनुरोध स्कीमा के साथ पेलोड की तुलना करें। |
| कहीं और दिखने वाले रिकॉर्ड पर 403 या 404 | एक्टिंग अकाउंट अलग है | सही भेजो x-session-token, या उस स्थानीय प्रोफ़ाइल का उपयोग करें जो रिकॉर्ड का स्वामी है। |
| 409 | विरोधाभासी स्थिति, जैसे डुप्लिकेट नाम या पुराना शाखा प्रमुख | संसाधन को दोबारा पढ़ें और वर्तमान डेटा के साथ पुनः प्रयास करें। |
| कोशिश करें यह कहता है "सीओआरएस द्वारा अवरुद्ध" | दस्तावेज़ गैर-लूपबैक मूल से परोसे जाते हैं | दस्तावेज़ों को स्थानीय रूप से चलाएँ या अनुरोध को कर्ल के रूप में कॉपी करें। |
| कनेक्शन नहीं हो सका | साइडकार एक नए बंदरगाह पर फिर से शुरू हुई | नए से पोर्ट पढ़ें ready पंक्ति. |