বিষয়বস্তুতে যান

ডেটা ইরেজার API

ডেটা ইরেজার API হল Pushwoosh থেকে একজন সাবজেক্টের ব্যক্তিগত ডেটা মুছে ফেলার (GDPR-এর মুছে ফেলার অধিকার) সেলফ-সার্ভ উপায়। মুছে ফেলা পূর্বাবস্থায় ফেরানো যায় না: আপনার নিজের সিস্টেম থেকে কন্ট্রোল প্যানেলের ডেটা অনুরোধ পেজ এবং একজন সাবস্ক্রাইবারের কার্ডে ব্যক্তিগত ডেটা মুছে ফেলুন অ্যাকশনের প্রতিরূপ তৈরি করতে এটি ব্যবহার করুন।

বেস URL

Anchor link to
https://rpc-api.svc-nue.pushwoosh.com

সমস্ত এন্ডপয়েন্ট HTTPS-এর মাধ্যমে পরিবেশিত হয়। অনুরোধ এবং প্রতিক্রিয়া application/json ব্যবহার করে, Upload ছাড়া, যা multipart/form-data নেয়।

প্রমাণীকরণ

Anchor link to

প্রতিটি অনুরোধে আপনার সার্ভার API টোকেন সহ একটি Authorization হেডার অন্তর্ভুক্ত করতে হবে:

Authorization: Api YOUR_API_TOKEN

টোকেনটির application_codes-এ নামযুক্ত প্রতিটি অ্যাপ্লিকেশনে মডিফাই অ্যাক্সেস থাকতে হবে। সেই অ্যাপ্লিকেশনগুলিতে ডিভাইস ডেটা লেখার জন্য একটি টোকেনের যে অ্যাক্সেস প্রয়োজন, এটি ঠিক তেমনই।

কনভেনশন

Anchor link to
  • ফিল্ডের নামকরণ: অনুরোধের বডি lowerCamelCase গ্রহণ করে (উদাহরণস্বরূপ, applicationCodes, identifierType)। প্রতিক্রিয়াগুলি প্রোটো ফিল্ডের নাম ব্যবহার করে snake_case-এ মার্শাল করা হয় (task_id, identifier_hash, ইত্যাদি)। নীচের উদাহরণ এবং অবজেক্ট রেফারেন্সগুলি সেই কেসিং ব্যবহার করে।
  • শনাক্তকারী: একজন সাবজেক্টকে identifier_type (SUBJECT_IDENTIFIER_USER_ID, SUBJECT_IDENTIFIER_HWID, বা SUBJECT_IDENTIFIER_EMAIL) এবং সেই একটি টাইপের identifiers-এর একটি তালিকা দিয়ে শনাক্ত করা হয়। একটি ইমেল শনাক্তকারী কেস-ইনসেনসিটিভভাবে মেলানো হয়।
  • প্রথমে ড্রাই রান, তারপর সেটি উল্লেখ করুন: dry_run: true সহ Create শুধুমাত্র কী মুছে ফেলা হবে তা গণনা করে এবং কিছুই লেখে না। আসল কলে সেই ড্রাই রানের task_id-কে confirmation_dry_run_task_id হিসেবে উল্লেখ করা ঐচ্ছিক, কিন্তু আপনি যদি একটি উল্লেখ করেন, তবে এটি অবশ্যই সেই ড্রাই রানের নিজস্ব অ্যাপ্লিকেশন এবং শনাক্তকারীগুলির সাথে হুবহু মিলতে হবে, এবং এটি শেষ হওয়ার ১৫ মিনিটের মধ্যে কল করতে হবে। অন্যথায় কলটি প্রত্যাখ্যান করা হয়।
  • রিপোর্ট কখনও শনাক্তকারীটি সরাসরি বহন করে না। GetTaskReport এবং GetJournalReport উভয়ই প্রতিটি শনাক্তকারীকে তার sha256 হ্যাশ (identifier_hash) হিসেবে রিপোর্ট করে, এবং রিপোর্টের বডি JSON প্রতিক্রিয়ার ভিতরে base64 হিসেবে CSV এনকোড করা থাকে।

ত্রুটি প্রতিক্রিয়া

Anchor link to
HTTP স্ট্যাটাসঅর্থ
400 Bad Requestঅবৈধ আর্গুমেন্ট, যেমন একটি খালি identifier_type, identifiers, বা application_codes, ১০,০০০-এর বেশি শনাক্তকারী, ৫০-এর বেশি অ্যাপ্লিকেশন, ৫০,০০০-এর বেশি শনাক্তকারী × অ্যাপ্লিকেশন, একটি খালি শনাক্তকারী স্ট্রিং, অথবা (শুধুমাত্র Upload-এ) একটি অনুপস্থিত/অপাঠযোগ্য CSV ফাইল। একটি উল্লিখিত confirmation_dry_run_task_id যখন এটি যে সমাপ্ত ড্রাই রানের নাম দেয় তার সাথে মেলে না, খুব পুরনো (১৫ মিনিটের বেশি), বা আদৌ একটি সমাপ্ত ড্রাই রান নয়, তখন এটি তারের উপর FailedPrecondition হিসেবেও ফেরত দেওয়া হয়।
401 Unauthorizedঅনুপস্থিত বা অবৈধ Authorization হেডার।
403 Forbiddenটোকেনটির অনুরোধকৃত অ্যাপ্লিকেশনগুলির একটিতে মডিফাই/ডিভাইস-ডেটা অধিকার নেই, অথবা কলার অনুরোধকৃত টাস্ক/রিপোর্ট পড়তে পারেন না।
404 Not Foundটাস্কটি পাওয়া যায়নি, অথবা এটি কলারের অ্যাকাউন্টের অন্তর্গত নয়।
413 Payload Too Large(শুধুমাত্র Upload-এ) আপলোড করা ফাইলটি 5 MB-এর বেশি।
429 Too Many Requestsঅ্যাকাউন্টটি ইতিমধ্যে গত ২৪ ঘণ্টায় ২০টি ডেটা ইরেজার টাস্ক (ড্রাই রান সহ) শুরু করেছে।

এন্ডপয়েন্টস

Anchor link to
পদ্ধতিপাথবর্ণনা
POST/api/data_erasure/tasksএকটি ইরেজার (বা ড্রাই-রান) টাস্ক তৈরি করুন
POST/api/data_erasure/uploadশনাক্তকারীর একটি আপলোড করা CSV থেকে একটি ইরেজার টাস্ক তৈরি করুন
GET/api/data_erasure/tasksঅ্যাকাউন্টের ইরেজার টাস্কগুলি তালিকাভুক্ত করুন
GET/api/data_erasure/tasks/{task_id}একটি ইরেজার টাস্ক পান
GET/api/data_erasure/tasks/{task_id}/rowsএকটি টাস্কের প্রতি-শনাক্তকারী ফলাফল তালিকাভুক্ত করুন
GET/api/data_erasure/tasks/{task_id}/reportএকটি টাস্কের রিপোর্ট CSV হিসেবে ডাউনলোড করুন
GET/api/data_erasure/reportএকটি সময়কালের প্রতিটি টাস্ক একটি একক CSV হিসেবে ডাউনলোড করুন

তালিকাভুক্ত অ্যাপ্লিকেশনগুলিতে তালিকাভুক্ত সাবজেক্টদের ব্যক্তিগত ডেটা মুছে ফেলা শুরু করে। dry_run: true সহ টাস্কটি শুধুমাত্র কী মুছে ফেলা হবে তা গণনা করে।

POST /api/data_erasure/tasks

অনুরোধের বডি

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বর্ণনা
identifierTypestringহ্যাঁSUBJECT_IDENTIFIER_USER_ID, SUBJECT_IDENTIFIER_HWID, বা SUBJECT_IDENTIFIER_EMAIL।
identifiersarray of stringsহ্যাঁসেই এক টাইপের সাবজেক্ট শনাক্তকারী, প্রতি টাস্কে ১০,০০০ পর্যন্ত, কোনো খালি মান নয়।
applicationCodesarray of stringsহ্যাঁযেখান থেকে মুছে ফেলতে হবে সেই অ্যাপ্লিকেশন কোড, ৫০ পর্যন্ত। এক কলে অ্যাকাউন্টের প্রতিটি অ্যাপ্লিকেশন থেকে মুছে ফেলার কোনো উপায় নেই, তাই প্রতিটি স্পষ্টভাবে নাম দিন। identifiers.length × applicationCodes.length ৫০,০০০ ছাড়াতে পারবে না, কারণ রিপোর্টে প্রতি অ্যাপ্লিকেশনে প্রতি শনাক্তকারীতে একটি সারি থাকে।
dryRunbooleanনাকী মুছে ফেলা হবে তা গণনা করে এবং কিছুই লেখে না। ডিফল্ট false।
confirmationDryRunTaskIdintegerনাএকটি সমাপ্ত ড্রাই রানের task_id যা এই একই মুছে ফেলাটি পরিমাপ করেছিল। দেখুন কনভেনশন।
অনুরোধের উদাহরণ
Anchor link to
{
"identifierType": "SUBJECT_IDENTIFIER_EMAIL",
"identifiers": ["subject@example.com"],
"applicationCodes": ["XXXXX-XXXXX"],
"dryRun": true
}

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
task_idintegerতৈরি করা টাস্কের আইডি। এই পৃষ্ঠার অন্য প্রতিটি এন্ডপয়েন্টে এটি ব্যবহার করুন।

Create-এর মতোই একই ধরনের টাস্ক তৈরি করে, কিন্তু শনাক্তকারীগুলি একটি JSON অ্যারের পরিবর্তে একটি আপলোড করা CSV থেকে আসে। একটি বাল্ক সাবজেক্ট তালিকার জন্য এটি ব্যবহার করুন।

POST /api/data_erasure/upload

অনুরোধ (multipart/form-data)

Anchor link to
ফিল্ডপ্রয়োজনীয়বর্ণনা
fileহ্যাঁCSV ফাইল, 5 MB পর্যন্ত, একক কলামে প্রতি সারিতে একটি শনাক্তকারী। প্রথম সারিতে একটি শনাক্তকারী রাখার পরিবর্তে কলামের নাম দেওয়া থাকতে পারে (user_id, userid, user id, hwid, email, identifier, বা subject, কেস-ইনসেনসিটিভভাবে)। সেই সারিটি তখন একটি হেডার হিসেবে বাদ দেওয়া হয়, গণনা করা হয় না। খালি সারিগুলি বাদ দেওয়া হয় এবং আলাদাভাবে গণনা করা হয়। ডুপ্লিকেট শনাক্তকারী (ইমেলের জন্য কেস-ইনসেনসিটিভভাবে) একটিতে একত্রিত করা হয় এবং আলাদাভাবে গণনা করা হয়।
identifier_typeহ্যাঁuser_id, hwid, বা email, ছোট হাতের অক্ষরে, এই পৃষ্ঠার অন্যত্র ব্যবহৃত JSON identifierType enum মানের থেকে ভিন্ন কেসিং। একটি টাইপ পুরো ফাইলে প্রযোজ্য।
application_codesহ্যাঁকমা দ্বারা পৃথক করা অ্যাপ্লিকেশন কোড।
dry_runনাtrue/false।
confirmation_dry_run_task_idনাCreate-এর মতোই।

প্রতিক্রিয়া

Anchor link to
{
"task_id": 123,
"identifier_count": 480,
"duplicate_count": 3,
"skipped_rows": 1
}

অ্যাকাউন্টের ইরেজারগুলি তালিকাভুক্ত করে, নতুনতমটি প্রথমে: কে কী এবং কখন মুছে ফেলেছে তার অডিট জার্নাল। includeDryRuns সেট না থাকলে ড্রাই রানগুলি বাদ দেওয়া হয়।

GET /api/data_erasure/tasks

কোয়েরি প্যারামিটার

Anchor link to
প্যারামিটারটাইপবর্ণনা
limit / offsetintegerপেজিং।
includeDryRunsbooleanড্রাই-রান (শুধুমাত্র-পরিমাপ) টাস্ক অন্তর্ভুক্ত করুন।
from / tostring (RFC 3339)[from, to)-তে শুরু হওয়া টাস্ক রাখুন।
applicationCodestringএই অ্যাপ্লিকেশন কভার করে এমন টাস্ক রাখুন।
initiatorUserIdintegerএই কন্ট্রোল প্যানেল ব্যবহারকারীর শুরু করা টাস্ক রাখুন। 0 (ডিফল্ট) প্রতিটি সূচনাকারী রাখে।
initiatorTokenIdintegerএই API টোকেনের শুরু করা টাস্ক রাখুন। 0 (ডিফল্ট) প্রতিটি সূচনাকারী রাখে।
initiatorEmailstringএই কন্ট্রোল প্যানেল ব্যবহারকারীর শুরু করা টাস্ক রাখুন, ইমেল দ্বারা মিলিয়ে, কেস-ইনসেনসিটিভভাবে।

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
tasksডেটা ইরেজার টাস্ক অবজেক্ট-এর অ্যারেমিলে যাওয়া টাস্ক।

একটি ইরেজার টাস্ক তার স্ট্যাটাস এবং কাউন্টার সহ ফেরত দেয়। Create বা Upload দ্বারা শুরু করা একটি টাস্ক অনুসরণ করতে এটি ব্যবহার করুন।

GET /api/data_erasure/tasks/{task_id}

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
taskডেটা ইরেজার টাস্ক অবজেক্টঅনুরোধকৃত টাস্ক।

ListTaskRows

Anchor link to

একটি টাস্কের প্রতি-শনাক্তকারী ফলাফল ফেরত দেয়: কী মুছে ফেলা হয়েছিল, পাওয়া যায়নি, বাদ দেওয়া হয়েছিল, বা ব্যর্থ হয়েছিল। শনাক্তকারীগুলি তাদের sha256 হ্যাশ হিসেবে রিপোর্ট করা হয়।

GET /api/data_erasure/tasks/{task_id}/rows

কোয়েরি প্যারামিটার

Anchor link to
প্যারামিটারটাইপবর্ণনা
limit / offsetintegerপেজিং।

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
rowsডেটা ইরেজার টাস্ক সারি অবজেক্ট-এর অ্যারেফলাফলের এই পেজ।

GetTaskReport

Anchor link to

একটি টাস্কের সম্পূর্ণ রিপোর্ট একটি CSV ফাইল হিসেবে ফেরত দেয়: প্রতি অ্যাপ্লিকেশনে প্রতি শনাক্তকারীতে একটি সারি, তার ফলাফল সহ। ListTaskRows একই সারিগুলি পেজ বাই পেজ দেখায়।

GET /api/data_erasure/tasks/{task_id}/report

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
filenamestringপ্রস্তাবিত ফাইলের নাম, উদাহরণস্বরূপ data-erasure-task-42.csv।
content_typestringtext/csv।
contentstring (base64)CSV ফাইল। কলাম: task_id, created, identifier_type, identifier_hash, application_code, result, detail।

GetJournalReport

Anchor link to

একটি সময়কালের প্রতিটি ইরেজার একটি একক CSV ফাইল হিসেবে ফেরত দেয়: প্রতি অ্যাপ্লিকেশনে প্রতি শনাক্তকারীতে একটি সারি, প্রতিটি সারিতে টাস্ক এবং তার সূচনাকারী সহ। একজন অডিটরকে একটি অ্যাকাউন্ট এটিই হস্তান্তর করে।

GET /api/data_erasure/report

কোয়েরি প্যারামিটার

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বর্ণনা
fromstring (RFC 3339)হ্যাঁসময়কালের শুরু।
tostring (RFC 3339)নাসময়কালের শেষ। ডিফল্ট এখন।
includeDryRunsbooleanনাড্রাই-রান টাস্ক অন্তর্ভুক্ত করুন।

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
filenamestringপ্রস্তাবিত ফাইলের নাম, উদাহরণস্বরূপ data-erasure-2026-01-01-2026-04-01.csv।
content_typestringtext/csv।
contentstring (base64)CSV ফাইল। কলাম: task_id, task_created, initiator_user_id, initiator_email, initiator_token_id, dry_run, identifier_type, identifier_hash, application_code, result, detail, row_created।

ডেটা ইরেজার টাস্ক অবজেক্ট

Anchor link to
ফিল্ডটাইপবর্ণনা
task_idintegerটাস্ক আইডি।
identifier_typestringSUBJECT_IDENTIFIER_USER_ID, SUBJECT_IDENTIFIER_HWID, বা SUBJECT_IDENTIFIER_EMAIL।
application_codesarray of stringsটাস্কটি কভার করে এমন অ্যাপ্লিকেশন।
dry_runbooleanএই টাস্কটি শুধুমাত্র একটি ভলিউম পরিমাপ করেছিল কিনা।
statusstringERASURE_TASK_STATUS_PENDING, _IN_PROGRESS, _DONE, বা _FAILED।
total_countintegerএই টাস্কটি কভার করে এমন শনাক্তকারী × অ্যাপ্লিকেশন।
deleted_countintegerকতগুলি মুছে ফেলা হয়েছিল (অথবা, একটি ড্রাই রানের জন্য, ফেলা হত)।
not_found_countintegerকতগুলি কিছুর সাথে মেলেনি।
failed_countintegerকতগুলি ব্যর্থ হয়েছিল। কেন তা জানতে ListTaskRows বা রিপোর্ট দেখুন।
fail_reasonstringstatus ERASURE_TASK_STATUS_FAILED হলে সেট করা হয়।
initiator_user_idintegerযে কন্ট্রোল প্যানেল ব্যবহারকারী টাস্কটি শুরু করেছিলেন। একটি API টোকেন করলে 0।
initiator_token_idintegerযে API টোকেন টাস্কটি শুরু করেছিল। একজন কন্ট্রোল প্যানেল ব্যবহারকারী করলে 0।
initiator_emailstringযে কন্ট্রোল প্যানেল ব্যবহারকারী টাস্কটি শুরু করেছিলেন তার ইমেল। একটি API টোকেনের জন্য খালি।
createdstring (RFC 3339)টাস্কটি কখন তৈরি হয়েছিল।
started_atstring (RFC 3339)মুছে ফেলার কাজ কখন শুরু হয়েছিল।
finished_atstring (RFC 3339)টাস্কটি কখন একটি চূড়ান্ত স্ট্যাটাসে পৌঁছেছিল।

ডেটা ইরেজার টাস্ক সারি অবজেক্ট

Anchor link to
ফিল্ডটাইপবর্ণনা
identifier_hashstringশনাক্তকারীর sha256। রিপোর্ট কখনও শনাক্তকারীটি নিজে সংরক্ষণ বা ফেরত দেয় না।
application_codestringএই সারির ফলাফল যে অ্যাপ্লিকেশনে প্রযোজ্য।
resultstringERASURE_ROW_RESULT_DELETED, _NOT_FOUND, _SKIPPED, বা _FAILED।
detailstringটেকনিক্যাল বিবরণ, মূলত ব্যর্থতার সময় সেট করা হয়।
createdstring (RFC 3339)এই সারিটি কখন লেখা হয়েছিল।

সম্পর্কিত

Anchor link to