আমরা আমাদের GDPR অডিট শেষ করেছি। বাস্তবে আমরা কী কী সমাধান করেছি, তা এখানে।
কিছুদিন আগে আমরা লিখেছিলাম যে ভিডিও টুলের হোমপেজে "GDPR-compliant" লেখার অর্থ আপনার ধারণার চেয়ে কম। GDPR হলো আপনার, অর্থাৎ ডেটা কন্ট্রোলারের ওপর বর্তানো একগুচ্ছ বাধ্যবাধকতা। ভেন্ডর হয় সেগুলো পূরণে আপনাকে সাহায্য করে, নয়তো নীরবে আপনার ডেস্কেই ফেলে রাখে। এই দাবির পক্ষে সৎভাবে দাঁড়ানোর উপায় হলো নিজেদের দিকের কাজটা করা এবং লাইন ধরে ধরে তা দেখানো।
আমরা সেটাই করেছি। ডেটা প্রসেসর হিসেবে আমাদের ওপর যে বাধ্যবাধকতাগুলো বর্তায়, তার বিপরীতে InterMIND-এর পুরো কোডবেস অডিট করেছি। কোডে যেসব ঘাটতি সমাধান করা সম্ভব ছিল, তার প্রতিটি ঠিক করেছি এবং চলমান প্রোডাক্টের বিপরীতে প্রতিটি যাচাই করেছি। এই পোস্টটি তার সমাপ্তি-প্রতিবেদন। এটি কোনো ব্যাজ নয়, আমাদের উত্তরসহ একটি চেকলিস্ট।
আমরা ইচ্ছাকৃতভাবেই "১০০% GDPR-সার্টিফাইড" দাবি করছি না। GDPR এমন কোনো সার্টিফিকেট নয় যে পরীক্ষা দিয়ে পাস করা যায়। আর যে ISO ব্যাজ এখনো আমাদের হাতে নেই, তা দেখিয়ে বেড়ানোর কাজও আমরা করব না। আমরা যা বলতে পারি: একজন DPO যে স্থাপত্যগত ও প্রক্রিয়াগত বাধ্যবাধকতাগুলো পর্যালোচনা করেন, সেগুলোর এখন সুনির্দিষ্ট ও যাচাইযোগ্য উত্তর আছে, এবং প্রতিটি চলমান কোডের বিপরীতে মিলিয়ে দেখা হয়েছে।
আমরা যা সমাধান করেছি
মুছে ফেলার অধিকার (Art. 17) — ক্যাসকেড সত্যিই চলে
আপনার অ্যাকাউন্ট ডিলিট করা মানে শুধু সেটি নিষ্ক্রিয় করা নয়। POST /api/user/delete-account একটি প্রকৃত ক্যাসকেড চালায়: এটি আপনার মিটিং → অংশগ্রহণকারী, মেসেজ, কনফারেন্স ও ট্রান্সক্রিপশন মুছে ফেলে। ডেটাবেস ক্যাসকেডের আগেই এটি Tigris থেকে আপনার স্টোরেজ ব্লবগুলো সরিয়ে দেয়, যাতে কিছুই এতিম হয়ে পড়ে না থাকে। এর মধ্যে চ্যাট অ্যাটাচমেন্ট এবং ভিডিও-রেকর্ডিং ফাইল, দুটি কলামই আছে। এছাড়া এটি আপনার Stripe সাবস্ক্রিপশনগুলো বাতিল করে এবং Stripe কাস্টমার মুছে দেয়। চাহিদামতো মুছে ফেলার সুযোগও আছে: UI থেকে একটি চ্যানেল বা মেসেজ সরালেই তা চলে যায়। অ্যানোনিমাস (গেস্ট) অ্যাকাউন্টের জন্য আলাদা ডিলিশন এন্ডপয়েন্ট আছে, সঙ্গে প্রতি ৬ ঘণ্টায় একটি ব্যাকগ্রাউন্ড সুইপ চলে, যা একটি মনিটর করা cron-এর অধীনে। অডিটে এখানে একটি ঘাটতি ধরা পড়েছিল: রেকর্ডিং ব্লব, যা ডেটাবেস ক্যাসকেড মুছে দিলেও স্টোরেজে থেকে যেত। আমরা সেটি ঠিক করেছি। এখন মুছে ফেলার পর অবজেক্ট স্টোরেজে কিছুই পড়ে থাকে না।
ডেটা সংরক্ষণ (Art. 5(1)(e)) — একটি নথিবদ্ধ মানদণ্ড
Art. 5(1)(e) স্বয়ংক্রিয় time-to-live চায় না। এটি চায় একটি সুনির্দিষ্ট সংরক্ষণ মানদণ্ড। আমাদের মানদণ্ড এখন Privacy Policy-তে লেখা আছে: আপনি বা আপনার টিমের মালিক মুছে না ফেলা পর্যন্ত ডেটা রাখা হয়, আর অ্যাকাউন্ট ডিলিট করলে সবকিছু মুছে যায়। Slack ও Notion-এর মতো কোলাবোরেশন টুলও একই মডেলে চলে। ডেটা থেকে যাওয়াটাই প্রত্যাশিত আচরণ, আর নিয়ন্ত্রণ থাকে আপনার হাতে। মানদণ্ডটি স্পষ্ট করে বলা আছে, অনুমানের ওপর ছেড়ে দেওয়া হয়নি।
অ্যানালিটিক্স সম্মতি (Art. 6/7) — ডিফল্টে অপ্ট-আউট
একটি Usercentrics কনসেন্ট ব্যানার (ইইউ ভিজিটরদের দেখানো হয়) অ্যানালিটিক্সকে নিয়ন্ত্রণ করে, আর PostHog opt_out_capturing_by_default: true নিয়ে চলে। সম্মতি না দেওয়া পর্যন্ত কিছুই সংগ্রহ করা হয় না। উল্টোটা নয়।
ডেটা পোর্টেবিলিটি (Art. 20) — একটি প্রকৃত এক্সপোর্ট
GET /api/user/export আপনার মিটিং, মেসেজ, রেকর্ডিং ও অনুবাদের একটি ZIP তৈরি করে। ডাউনলোডের সময়সীমা ৭ দিন, এরপর স্বয়ংক্রিয়ভাবে মুছে যায়। অ্যাক্সেস, ডিলিশন ও পোর্টেবিলিটি এখানে কাজ করা টুলিং, পলিসির কাগজে লেখা প্রতিশ্রুতি নয়।
মিটিংয়ের কনটেন্ট যায় ইইউ-র একটি AI গেটওয়েতে — যা বেছে নেয় প্রতিষ্ঠান নিজে
মিটিং কনটেন্টের সবচেয়ে বড় প্রবাহ, অর্থাৎ ভয়েস ও চ্যাটের রিয়েল-টাইম অনুবাদ, চলে ফ্রান্সে আমাদের নিজস্ব ইঞ্জিনে, কখনোই কোনো থার্ড-পার্টি LLM-এ নয়। যেসব AI ধাপ সাধারণ-উদ্দেশ্যের মডেল ব্যবহার করে (ডাইজেস্ট, ডকুমেন্ট সারাংশ, নোট-এডিটরের জেনারেটিভ অ্যাকশন, Ask AI), সেগুলো চলে প্রতিষ্ঠানের নির্বাচিত AI গেটওয়েতে। ডিফল্ট হলো ইইউ ডেটা জোনে Azure OpenAI। পছন্দমতো বেছে নেওয়া যায় Vertex AI EU বা Amazon Bedrock Frankfurt। প্রতিটি চলে আমাদের নিজস্ব টেন্যান্টে, জিরো ডেটা রিটেনশনসহ এবং গ্রাহকের কনটেন্টে কোনো ট্রেনিং ছাড়াই। অথবা প্রতিষ্ঠান নিজের এন্ডপয়েন্টও ব্যবহার করতে পারে। কোডের একটি রিজলভারই প্রতিটি কল সাইটের জন্য গেটওয়ে ঠিক করে, ফলে দ্বিতীয় কোনো পথ নেই। এছাড়া কনফারেন্সের ব্রাউজার লগ থেকে অংশগ্রহণকারীদের নাম ও বক্তব্যের টেক্সট আমরা মুছে দিয়েছি, যা অন্যথায় PostHog সেশন-রেকর্ডিং ধরে ফেলতে পারত। ভেন্ডরভিত্তিক সম্পূর্ণ মানচিত্র আছে একটি InterMIND মিটিং আসলে কোথায় চলে লেখায়।
স্বচ্ছতা — সাব-প্রসেসর ও প্রসেসিং রেকর্ড, প্রকাশিত
সাব-প্রসেসরের তালিকা এখন লাইভ। প্রতিটি ভেন্ডর কী করে এবং কোথায় নিবন্ধিত, তা সেখানে আছে। "অনুরোধে পাওয়া যাবে" ধরনের কথা নয়। এর পেছনে আছে লাইভ স্কিমা থেকে তৈরি একটি Record of Processing Activities (ROPA): ১১টি প্রসেসিং অপারেশন, প্রতিটির নিরাপত্তা ব্যবস্থা এবং মুছে ফেলা ও পোর্টেবিলিটির পথ। আমাদের Privacy Policy ও Terms এখন চলে আমাদের নিজস্ব আইনি সত্তার অধীনে, প্রকৃত প্রসেসিং চেইনের বর্ণনাসহ।
ইইউ রানটাইম — নির্দিষ্ট করা, শুধু প্রতিশ্রুত নয়
একটি মিটিং রানটাইমে যে প্রতিটি হপ পার হয়, সবই ইইউ-তে: অ্যাপ ও API Vercel Frankfurt-এ, মিটিং সার্ভার Fly Paris-এ, অ্যাপ্লিকেশন ডেটা Neon Postgres-এ (AWS Frankfurt), এরর Sentry EU-তে, অ্যানালিটিক্স PostHog EU-তে, ইমেইল Resend Ireland-এর মাধ্যমে। Tigris-এর অবজেক্ট স্টোরেজ এখন ইইউ রিজিয়নে পিন করা (Frankfurt + Amsterdam)। ব্যবহারকারী যেখানেই থাকুন, প্রতিটি নতুন রাইট ইইউ-তেই জমা হয়। সম্পূর্ণ আর্কিটেকচার আছে আমাদের সিকিউরিটি পেজে।