ನಿಮ್ಮ ಸಂಸ್ಥೆಯ API ವಿಳಾಸ ಮತ್ತು ಸ್ಕೋಪ್ ಮಾಡಿದ ಪರಿಚಯಪತ್ರವನ್ನು ಬಳಸಿ. ಒಂದು ಓದುವ ವಿನಂತಿಯೊಂದಿಗೆ ಆರಂಭಿಸಿ, ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪರಿಶೀಲಿಸಿ, ಮತ್ತು ರಹಸ್ಯಗಳನ್ನು ಮೂಲ ನಿಯಂತ್ರಣ ಮತ್ತು ದಸ್ತಾವೇಜು ಉದಾಹರಣೆಗಳ ಹೊರಗೆ ಇಡಿ.
Quire ಒಂದೇ ಸಾರ್ವಜನಿಕ API ಹೊಂದಿದೆ: HTTPS ಮೇಲಿನ REST, OpenAPI 3.1 ಡಾಕ್ಯುಮೆಂಟ್ನಿಂದ ವಿವರಿಸಲ್ಪಟ್ಟಿದೆ, ಈವೆಂಟ್ಗಳಿಗೆ ಸಹಿ ಮಾಡಿದ webhooks ಮತ್ತು AI ಸಹಾಯಕರಿಗೆ ಒಂದು MCP ಸರ್ವರ್ ಸಹಿತ. API ಉಲ್ಲೇಖ ಪ್ರತಿ endpoint ಮತ್ತು ಈವೆಂಟ್ ಅನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ.
ವಿಳಾಸಗಳು
ಪ್ರತಿ ಸಂಸ್ಥೆಗೂ ತನ್ನದೇ ವಿಳಾಸವಿರುತ್ತದೆ, ಮತ್ತು API ಅದರ ಅಡಿಯಲ್ಲಿರುತ್ತದೆ:
https://acme.quirelms.com/api/v1/coursesಪರಿಚಯಪತ್ರವು ಸಂಸ್ಥೆಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಒಂದು ಸಂಸ್ಥೆಗಾದ ಕೀ ಅನ್ನು ಇನ್ನೊಂದರ ವಿಳಾಸದಲ್ಲಿ ಬಳಸಿದರೆ ಅದನ್ನು ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ.
OpenAPI ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಯಾವುದೇ ಸಂಸ್ಥೆಯ ವಿಳಾಸದಲ್ಲಿ /api/v1/openapi.json ನಲ್ಲಿ
ಒದಗಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಕ್ಲೈಂಟ್ ಜನರೇಟರ್ಗಳು ಯಾವಾಗಲೂ ನೀವು ಕರೆ ಮಾಡುತ್ತಿರುವ
ಆವೃತ್ತಿಯನ್ನೇ ನೋಡುತ್ತವೆ.
ದೃಢೀಕರಣ
API ಕೀಗಳು ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಮತ್ತು ಸರ್ವರ್-ಟು-ಸರ್ವರ್ ಏಕೀಕರಣಗಳಿಗೆ. ಒಬ್ಬ ನಿರ್ವಾಹಕರು
/admin/integrations/api-keys ನಲ್ಲಿ ಒಂದನ್ನು ರಚಿಸುತ್ತಾರೆ, ಅದರ ಸ್ಕೋಪ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತಾರೆ,
ಮತ್ತು ಅದನ್ನು ಒಮ್ಮೆ ನೋಡುತ್ತಾರೆ. ಅದನ್ನು bearer ಟೋಕನ್ ಆಗಿ ಕಳುಹಿಸಿ:
curl -H "Authorization: Bearer qk_live_..." https://acme.quirelms.com/api/v1/users?limit=50ಕೀಗಳು qk_live_ ಅಥವಾ qk_test_ ನಿಂದ ಆರಂಭವಾಗುತ್ತವೆ. ಪ್ರತಿ ಏಕೀಕರಣಕ್ಕೂ ಅದರ ಸ್ವಂತ ಕೀ
ನೀಡಿ.
OAuth 2.1 ಸೈನ್ ಇನ್ ಆದ ವ್ಯಕ್ತಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ.
/admin/integrations/oauth-clients ನಲ್ಲಿ ಒಂದು ಕ್ಲೈಂಟ್ ನೋಂದಾಯಿಸಿ, ನಂತರ PKCE ಸಹಿತ
ಅಧಿಕಾರ ಕೋಡ್ ಹರಿವನ್ನು ಬಳಸಿ (/oauth/authorize, /oauth/token), ಅಥವಾ ಯಂತ್ರ
ಕ್ಲೈಂಟ್ಗಾಗಿ ಕ್ಲೈಂಟ್ ಪರಿಚಯಪತ್ರಗಳನ್ನು ಬಳಸಿ. ಡಿಸ್ಕವರಿ /.well-known/oauth-authorization-server ನಲ್ಲಿದೆ.
ಸ್ಕೋಪ್ ಟೋಕನ್ ಏನು ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತದೆ; ಅದು ಆ ವ್ಯಕ್ತಿ ಮಾಡಬಹುದಾದ್ದಕ್ಕಿಂತ
ಹೆಚ್ಚು ಮಾಡಲು ಎಂದಿಗೂ ಅವಕಾಶ ನೀಡುವುದಿಲ್ಲ.
ಸ್ಕೋಪ್ಗಳು resource:read, resource:write ಮತ್ತು resource:delete, ಉದಾಹರಣೆಗೆ
courses:read ಅಥವಾ enrolments:write. ನಾಲ್ಕು ವಿಶೇಷಾಧಿಕಾರ ಹೊಂದಿವೆ ಮತ್ತು ಒಪ್ಪಿಗೆ
ಪರದೆಯಲ್ಲಿ ಎಚ್ಚರಿಕೆಯೊಂದಿಗೆ ತೋರಿಸಲ್ಪಡುತ್ತವೆ: audit:read, roles:write,
tenants:write ಮತ್ತು users:delete.

ವಿನಂತಿಗಳು
- ಪುಟರಚನೆ: ಪ್ರತಿ ಪಟ್ಟಿಯೂ cursor ಪುಟರಚನೆ ಹೊಂದಿದೆ.
limitಕಳುಹಿಸಿ, ನಂತರnext_cursorಅನ್ನುpageನಲ್ಲಿಂದcursorಆಗಿ,has_moreಸತ್ಯವಾಗಿರುವವರೆಗೆ ಕಳುಹಿಸಿ (ಕೆಳಗಿನ ಉದಾಹರಣೆ). offset ಇಲ್ಲ. - ಬದಲಾವಣೆಗಳು ನಂತರ:
updated_sinceಒಂದು ಸಮಯದ ನಂತರ ಏನು ಬದಲಾಗಿದೆ ಎಂದು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಅದನ್ನುinclude_deleted=trueಜೊತೆಗೆ ಜೋಡಿಸಿ, ಅಥವಾ ಏನು ತೆಗೆದುಹಾಕಲಾಗಿತ್ತು ಎಂದು ತಿಳಿದುಕೊಳ್ಳಲು/<resource>/deletionsಓದಿ. - ಬಾಹ್ಯ ಗುರುತುಗಳು: ಬಹುತೇಕ ಸಂಪನ್ಮೂಲಗಳು ನಿಮ್ಮ ಸ್ವಂತ
external_idಸ್ವೀಕರಿಸುತ್ತವೆ, ಮತ್ತು/<resource>/ext:{external_id}ಅದರ ಮೂಲಕ ಓದುತ್ತದೆ ಅಥವಾ upsert ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಒಂದು sync ಗೆ Quire ನ ಗುರುತುಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಅಗತ್ಯವೇ ಇರುವುದಿಲ್ಲ. - ಇಡೆಂಪೊಟೆನ್ಸಿ:
Idempotency-Keyಹೆಡರ್ ಅನ್ನುPOST,PATCHಮತ್ತುDELETEಮೇಲೆ ಕಳುಹಿಸಿ. ಅದೇ ಕೀಯೊಂದಿಗೆ ಮರುಪ್ರಯತ್ನವು ಕೆಲಸವನ್ನು ಎರಡು ಬಾರಿ ಮಾಡದೆ ಮೊದಲ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಬಲ್ಕ್ endpoints ಗೆ ಅದು ಕಡ್ಡಾಯ. - ಆವೃತ್ತಿಗಳು: ಮುಖ್ಯ ಆವೃತ್ತಿಯು ಮಾರ್ಗದಲ್ಲಿದೆ (
/v1). ಅದರೊಳಗೆ, ಪ್ರತಿ ಒಡೆಯುವ ಬದಲಾವಣೆಯೂ ದಿನಾಂಕಿತ ತಿದ್ದುಪಡಿಯಾಗಿದೆ,Quire-Versionಹೆಡರ್ನೊಂದಿಗೆ ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆQuire-Version: 2026-09-20. ಹೆಡರ್ ಇಲ್ಲದಿದ್ದರೆ ನಿಮ್ಮ ಪರಿಚಯಪತ್ರ ನೀಡಿದಾಗ ಪ್ರಚಲಿತ ತಿದ್ದುಪಡಿಯನ್ನು ಪಡೆಯುತ್ತೀರಿ.
ಒಂದು ಪಟ್ಟಿಯ ಒಂದು ಪುಟ:
{"data": [...], "page": {"next_cursor": "eyJ2Ijox...", "has_more": true, "limit": 100}}ದೋಷಗಳು
ಪ್ರತಿ ದೋಷವೂ ಒಂದು RFC 9457 ಸಮಸ್ಯಾ ಡಾಕ್ಯುಮೆಂಟ್ ಆಗಿದೆ:
{"type": "https://quire.com/errors/enrolment.seat_limit_reached",
"title": "Seat limit reached", "status": 409,
"code": "enrolment.seat_limit_reached", "category": "conflict",
"detail": "The course has no seats left, so this enrolment was not created. ...",
"request_id": "01JB7XQK4Z..."}ಸ್ಥಿರವಾಗಿರುವ code ಮೂಲಕ ಶಾಖೆ ಮಾಡಿ; detail ಜನರಿಗಾಗಿ ಬರೆಯಲ್ಪಟ್ಟಿದೆ, ಅವರಿಗೆ
ತೋರಿಸಲು ಸುರಕ್ಷಿತ, ಮತ್ತು ಬದಲಾಗಬಹುದು. ಒಂದು ಕೋಡ್ ನಿಮಗೆ ಗೊತ್ತಿಲ್ಲದಿದ್ದರೆ,
category ಮೂಲಕ ವಿಂಗಡಿಸಿ:
| ವರ್ಗ | ಸ್ಥಿತಿ | ಮರುಪ್ರಯತ್ನ |
|---|---|---|
validation |
422, errors ನಲ್ಲಿ ಕ್ಷೇತ್ರ ವಿವರದೊಂದಿಗೆ |
ಇಲ್ಲ |
authentication |
401 | ಇಲ್ಲ |
authorization |
403 | ಇಲ್ಲ |
not_found |
404 | ಇಲ್ಲ |
conflict |
409 | ಕೆಲವೊಮ್ಮೆ |
precondition |
412 | ಇಲ್ಲ |
quota |
ಯೋಜನೆಗೆ 402, ಗಾತ್ರಕ್ಕೆ 413 | ಇಲ್ಲ |
rate_limit |
429, Retry-After ಸಹಿತ |
ಹೌದು |
upstream |
502 ಅಥವಾ 504 | ಹೌದು |
internal |
500 | ಹೌದು |
ನೀವು ಬೆಂಬಲವನ್ನು ಸಂಪರ್ಕಿಸಿದಾಗ request_id ಉಲ್ಲೇಖಿಸಿ.
Webhooks
/admin/webhooks ನಲ್ಲಿ ಚಂದಾದಾರರಾಗಿ, ಅಥವಾ API ಮೂಲಕ
/webhook_subscriptions ನಲ್ಲಿ. ಈವೆಂಟ್ಗಳನ್ನು ಹೆಸರಿನ ಮೂಲಕ (enrolment.created),
ವಲಯದ ಮೂಲಕ (enrolment.*) ಅಥವಾ ಎಲ್ಲವನ್ನೂ (*) ಆಯ್ಕೆಮಾಡಿ. Quire ಮೊದಲು ಒಂದು
webhook.ping ಕಳುಹಿಸುತ್ತದೆ; ನಿಮ್ಮ endpoint ಅದಕ್ಕೆ ಉತ್ತರಿಸಿದಾಗ ಚಂದಾದಾರಿಕೆ
ಆರಂಭವಾಗುತ್ತದೆ.
ಡೆಲಿವರಿಗಳು Standard Webhooks ವಿಶೇಷಣವನ್ನು ಅನುಸರಿಸುತ್ತವೆ:
POST /hooks/quire
webhook-id: 01JB7XQK4Z8FQ2M3N4P5R6S7T8
webhook-timestamp: 1790000000
webhook-signature: v1,g0hM9SsE+OTPJTGt/tmIKtSyZlE3uFJELVlNIOLJ1OE=ಒಂದು ಡೆಲಿವರಿ ಪರಿಶೀಲಿಸಲು:
- ಯಾವುದೇ JSON ಪಾರ್ಸಿಂಗ್ ಮೊದಲು, ಸ್ವೀಕರಿಸಲಾದ ನಿಖರ ಬೈಟ್ಗಳಿಂದ
{webhook-id}.{webhook-timestamp}.{raw body}ಸ್ಟ್ರಿಂಗ್ ರಚಿಸಿ. - ನಿಮ್ಮ ಚಂದಾದಾರಿಕೆ ರಹಸ್ಯದೊಂದಿಗೆ ಅದರ ಮೇಲೆ HMAC-SHA256 ಲೆಕ್ಕಹಾಕಿ, ಮತ್ತು ಅದನ್ನು base64 ಮಾಡಿ.
- ಪ್ರತಿ
v1,ಮೌಲ್ಯವನ್ನುwebhook-signatureನಲ್ಲಿ ನಿರಂತರ ಸಮಯದಲ್ಲಿ ಹೋಲಿಸಿ. ರಹಸ್ಯ ರೊಟೇಶನ್ನ ಸಮಯದಲ್ಲಿ ಎರಡು ಇರಬಹುದು; ಯಾವುದಾದರೂ ಹೊಂದಿಕೊಂಡರೆ ಅದು ಮಾನ್ಯ. - ನಿಮ್ಮ ಗಡಿಯಾರದಿಂದ ಐದು ನಿಮಿಷಕ್ಕಿಂತ ಹೆಚ್ಚು ದೂರವಿರುವ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ತಿರಸ್ಕರಿಸಿ.
import { createHmac, timingSafeEqual } from 'node:crypto';
function verify(secret, id, timestamp, rawBody, header) {
if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;
const expected = createHmac('sha256', Buffer.from(secret.replace(/^whsec_/, ''), 'base64'))
.update(`${id}.${timestamp}.${rawBody}`).digest();
return header.split(' ').some((part) => {
const [version, value] = part.split(',');
const given = Buffer.from(value ?? '', 'base64');
return version === 'v1' && given.length === expected.length && timingSafeEqual(given, expected);
});
}webhook-id ಮೂಲಕ ನಕಲುಗಳನ್ನು ತಡೆಯಿರಿ: ಒಂದು ಡೆಲಿವರಿ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಾರಿ
ಬರಬಹುದು. ದೇಹವು ಗುರುತುಗಳು ಮತ್ತು ಸಣ್ಣ ಸಾರಾಂಶವನ್ನು ಹೊತ್ತೊಯ್ಯುತ್ತದೆ; ಅದರ ಪ್ರಸ್ತುತ
ಸ್ಥಿತಿಗಾಗಿ ಸಂಪನ್ಮೂಲವನ್ನು ಪಡೆಯಿರಿ. ವಿಫಲ ಡೆಲಿವರಿಗಳನ್ನು 72 ಗಂಟೆಗಳವರೆಗೆ ಹಿಂತಿರುಗಣಿಸಿ
ಮರುಪ್ರಯತ್ನಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಡೆಲಿವರಿ ಲಾಗ್ನಿಂದ ಮರುಪ್ರಸಾರ ಮಾಡಬಹುದು.
MCP
Quire ನ MCP ಸರ್ವರ್ ಸಂಸ್ಥೆಯ ವಿಳಾಸದಲ್ಲಿ /mcp ನಲ್ಲಿದೆ, streamable HTTP ಮೂಲಕ.
ಒಂದು MCP ಕ್ಲೈಂಟ್ /.well-known/oauth-protected-resource ನಿಂದ OAuth ಸರ್ವರ್ ಅನ್ನು
ಕಂಡುಹಿಡಿಯುತ್ತದೆ, ಮತ್ತು ಯಾವುದೇ OAuth ಕ್ಲೈಂಟ್ನಂತೆ ವ್ಯಕ್ತಿಯು ಸೈನ್ ಇನ್ ಮಾಡಿ ಒಪ್ಪಿಗೆ
ನೀಡುತ್ತಾರೆ. ಸಾಧನಗಳು ಆ ವ್ಯಕ್ತಿಯಾಗಿ, ಅವರ ಅನುಮತಿಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ, ಮತ್ತು
ವಿನಾಶಕಾರಿ ಸಾಧನಗಳು ದೃಢೀಕರಣವನ್ನು ಕೇಳುತ್ತವೆ. ನಿರ್ವಾಹಕರು /admin/integrations/mcp ನಲ್ಲಿ
ಯಾವ ಸಾಧನಗಳು ಲಭ್ಯವಿವೆ ಎಂದು ಆಯ್ಕೆಮಾಡುತ್ತಾರೆ.

ಯೋಜನೆಗಳು ಮತ್ತು API
API ಕೀಗಳು, OAuth ಕ್ಲೈಂಟ್ಗಳು, webhooks ಮತ್ತು MCP ಸರ್ವರ್ ಯೋಜನೆಯ API ಹಕ್ಕಿಗೆ
ಸೇರಿವೆ, ಮತ್ತು ಪ್ರತಿ ಸಾಮಾನ್ಯ ಯೋಜನೆಯೂ ಅದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಅದಿಲ್ಲದ ಯೋಜನೆಯಲ್ಲಿ,
ಕೀ, ಕ್ಲೈಂಟ್ ಅಥವಾ ಚಂದಾದಾರಿಕೆ ರಚಿಸುವಿಕೆಯನ್ನು ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ, REST ಬರೆಯುವಿಕೆ ಮತ್ತು
MCP ಸಂಪರ್ಕಗಳನ್ನು ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು REST ಓದುವಿಕೆಗಳು ಮುಂದುವರಿಯುತ್ತವೆ, ಆಗ
ಡೇಟಾ ರಫ್ತು ಮಾಡಬಹುದಾಗಿ ಉಳಿಯುತ್ತದೆ. ನಿರಾಕರಣೆಯು commerce.plan_entitlement ಕೋಡ್ ಹೊಂದಿರುವ,
precondition ವರ್ಗದ ಸಮಸ್ಯಾ ಡಾಕ್ಯುಮೆಂಟ್ ಆಗಿದೆ.
ವಿಸ್ತರಣೆಗಳು
Quire ನ ಸ್ವಂತ ಚಟುವಟಿಕೆ ಪ್ರಕಾರಗಳು, ಬ್ಲಾಕ್ಗಳು, ನಮೂದಿಸುವಿಕೆ ವಿಧಾನಗಳು, ಸೈನ್-ಇನ್
ವಿಧಾನಗಳು, ಪ್ರಶ್ನಾ ಪ್ರಕಾರಗಳು, ವರದಿಗಳು, ಥೀಮ್ಗಳು ಮತ್ತು ಏಕೀಕರಣಗಳನ್ನು ಸ್ವ-ಹೋಸ್ಟ್
ಸ್ಥಾಪನೆಯು ಸೇರಿಸಬಹುದಾದ ಅದೇ ವಿಸ್ತರಣಾ ರಿಜಿಸ್ಟ್ರಿಯ ಮೂಲಕ ಘೋಷಿಸಲಾಗುತ್ತದೆ. ವಿಸ್ತರಣೆಗಳು
ಸಂಕಲನಗೊಂಡಿವೆ: ರನ್ಟೈಮ್ ಪ್ಲಗಿನ್ ಲೋಡರ್ ಇಲ್ಲ, ಮತ್ತು ಹೋಸ್ಟ್ ಮಾಡಿದ ಸಂಸ್ಥೆಯು ಒಂದನ್ನು
ಸೇರಿಸಲಾಗದು. ನಿರ್ವಾಹಕರು ತಮ್ಮ ಸಂಸ್ಥೆಗಾಗಿ ಪ್ರತಿ ವಿಸ್ತರಣೆಯನ್ನು /admin/extensions ನಲ್ಲಿ
ಆನ್ ಅಥವಾ ಆಫ್ ಮಾಡುತ್ತಾರೆ (ನಿರ್ವಾಹಕ ಮಾರ್ಗದರ್ಶಿ ನೋಡಿ).
ಒಂದನ್ನು ಬರೆಯಲು, packages/integration/extensions/src/sample.ts ನಲ್ಲಿನ ಮಾದರಿ
ಬ್ಲಾಕ್ ಮತ್ತು ಥೀಮ್ನಿಂದ ಆರಂಭಿಸಿ. ವಿಸ್ತರಣಾ ಬಿಂದುವನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು points.ts ನಲ್ಲಿ
ಅದರ ಒಪ್ಪಂದವನ್ನು ಓದಿ, ನಂತರ ಒಂದು id, ಒಂದು ಆವೃತ್ತಿ, ಒಂದು ಪರವಾನಗಿ, ಅದು ಒದಗಿಸುವುದು
ಮತ್ತು ಬೇಕಾದದ್ದು, ಮತ್ತು ಒಂದು ಸಂಸ್ಥೆಯು ಅದನ್ನು ಆಫ್ ಮಾಡಬಹುದೇ ಎಂಬುದರೊಂದಿಗೆ ವಿಸ್ತರಣೆಯನ್ನು
ಘೋಷಿಸಿ. ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತು ವರ್ಕರ್ ಸಂಯೋಜಿಸಲ್ಪಡುವ ಜಾಗದಲ್ಲಿ ಅದನ್ನು ನೋಂದಾಯಿಸಿ, ಆಗ
ಎರಡೂ ಒಪ್ಪುತ್ತವೆ. ರಿಜಿಸ್ಟ್ರಿಯು ಕಟ್ಟಡವಾದಾಗ ಮತ್ತು ನೀವು ಪ್ರತಿ ಬಾರಿ register ಕರೆ ಮಾಡಿದಾಗ
ಪ್ರತಿ ಬಿಂದುವಿನ ಸ್ವಂತ ನಿಯಮಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಪ್ರತಿ ಸಮಸ್ಯೆಯನ್ನೂ ಹೆಸರಿಸಿ ಅಮಾನ್ಯವಾಗುತ್ತಿದ್ದ
ಸೆಟ್ ಅನ್ನು ನಿರಾಕರಿಸುತ್ತದೆ, ಮತ್ತು ಅಂತಹ ಸಮಸ್ಯೆ ಇದ್ದರೆ ರಿಜಿಸ್ಟ್ರಿಯನ್ನು ಬದಲಾಯಿಸದೆ ಬಿಡುತ್ತದೆ.
ವಿಸ್ತರಣೆಯ ಸ್ವಂತ ಪರೀಕ್ಷೆಗಳು ಅದಕ್ಕಾಗಿ extensionContractProblems ಖಾಲಿಯಾಗಿದೆ ಎಂದು ಮತ್ತು
ಅದನ್ನು ಆಫ್ ಮಾಡಿದಾಗ ಅದು ಪ್ರಭಾವಿಸುವುದು ಬದಲಾಗುತ್ತದೆ ಎಂದು ಸ್ಥಾಪಿಸಬೇಕು.