প্রকল্প সম্পর্কে
immudb একটি হালকা, ওপেন-সোর্স ডেটাবেস যা অপরিবর্তনীয়তা এবং জিরো-ট্রাস্ট নীতির উপর নির্মিত। রেকর্ডগুলি নতুন সংস্করণ হিসেবে যোগ করা যায় কিন্তু কখনো পরিবর্তন বা মুছে ফেলা যায় না, এবং প্রতিটি পরিবর্তন একটি ক্রিপ্টোগ্রাফিকভাবে সুসংগত, যাচাইযোগ্য ইতিহাসে ট্র্যাক করা হয় যা ক্লায়েন্টরা ডেটাবেস সার্ভারকে বিশ্বাস না করেই যাচাই করতে পারে। এটি একটি রিলেশনাল (SQL) ডেটাবেস, কী-ভ্যালু স্টোর এবং ডকুমেন্ট-মডেল ডেটাবেস হিসেবে কাজ করতে পারে এবং একটি স্বতন্ত্র পরিষেবা হিসেবে বা Go লাইব্রেরি হিসেবে প্রক্রিয়ায় এমবেডেড অবস্থায় চলতে পারে।
প্রকল্পে নথিভুক্ত মূল ক্ষমতাগুলি:
- মাল্টি-মডেল অ্যাক্সেস: লেনদেন এবং ব্লব সহ SQL, যাচাইকৃত রিড/রাইট সহ কী-ভ্যালু API এবং একটি ডকুমেন্ট মডেল।
- PostgreSQL ওয়্যার প্রোটোকল সামঞ্জস্য: স্ট্যান্ডার্ড PostgreSQL ক্লায়েন্ট এবং ORM (psql, pgAdmin, JDBC, SQLAlchemy, Django, GORM, ActiveRecord, lib/pq, pgx) সরাসরি সংযোগ করতে পারে। সমর্থিত SQL বৈশিষ্ট্যগুলির মধ্যে রয়েছে RETURNING ক্লজ, কমন টেবিল এক্সপ্রেশন (WITH / WITH RECURSIVE), উইন্ডো ফাংশন (ROW_NUMBER, RANK, LAG, LEAD এবং অন্যান্য), ভিউ, সিকোয়েন্স, বিস্তৃত জয়েন এবং সাবকোয়েরি সেট, সেট অপারেশন, SAVEPOINT-ভিত্তিক লেনদেন নিয়ন্ত্রণ, COPY FROM stdin বাল্ক ইমপোর্ট, আংশিক ইনডেক্স এবং 75+ বিল্ট-ইন ফাংশন। pg_catalog এবং information_schema টেবিলের মাধ্যমে ক্যাটালগ ইমুলেশন ORM ইন্ট্রোস্পেকশন সমর্থন করে। নথিভুক্ত সীমাবদ্ধতার মধ্যে রয়েছে কোনো স্টোরড প্রসিডিউর/PLpgSQL নেই, কোনো GIN/GiST ইনডেক্স নেই (শুধুমাত্র B-tree), এবং কোনো জেনারেটেড কলাম নেই।
- টাইম-ট্রাভেল কোয়েরি: একটি DIFF OF SQL সিনট্যাক্স দুটি লেনদেন রেঞ্জের মধ্যে টেবিলের অবস্থা তুলনা করে, সারিগুলিকে INSERT, UPDATE বা DELETE হিসেবে চিহ্নিত করে।
- SQL এর মাধ্যমে ক্রিপ্টোগ্রাফিক যাচাইকরণ: immudb_state(), immudb_verify_row(), immudb_verify_tx(), এবং immudb_history() এর মতো ফাংশন প্রুফ সিস্টেমকে সরাসরি কোয়েরিতে প্রকাশ করে।
- কাঠামোবদ্ধ অডিট লগিং: প্রতিটি gRPC অপারেশনের জন্য ঐচ্ছিক অপরিবর্তনীয় JSON অডিট ইভেন্ট (টাইমস্ট্যাম্প, ব্যবহারকারী, IP, ডেটাবেস, পদ্ধতি, বিভাগ, সময়কাল, সেশন ID), immudb-এর নিজস্ব টেম্পার-প্রুফ KV স্টোরে সংরক্ষিত এবং SIEM সিস্টেমে রপ্তানিযোগ্য।
- ডিপ্লয়মেন্ট বিকল্প: প্রি-বিল্ট বাইনারি, Docker ইমেজ, Kubernetes Helm চার্ট এবং এমবেডেড লাইব্রেরি মোড। ডেটা Amazon S3 বা MinIO-এর মতো S3-সামঞ্জস্যপূর্ণ বিকল্পগুলিতে সংরক্ষণ করা যেতে পারে, AWS IAM রোল এবং Fargate ক্রেডেনশিয়াল সোর্সিং সমর্থন সহ।
- ক্লায়েন্ট ইকোসিস্টেম: Java, Go (একটি GORM অ্যাডাপ্টার সহ), .NET, Python এবং Node.js-এর জন্য অফিসিয়াল SDK; ইন্টারঅ্যাকটিভ অ্যাডমিনিস্ট্রেশনের জন্য immuclient CLI; এবং SDK ছাড়া ভাষার জন্য immugw, একটি REST গেটওয়ে। Rust ব্যবহারকারীদের স্ট্যান্ডার্ড PostgreSQL ক্লায়েন্ট বা জেনারেটেড gRPC কোডে নির্দেশিত করা হয়, কারণ crates.io-তে immudb ক্রেটটি অনানুষ্ঠানিক।
- নিরাপত্তা শক্তিশালীকরণ: আর্কাইভ পুনরুদ্ধারে পাথ-ট্রাভার্সাল যাচাইকরণ, ব্যবহারকারী/অনুমতি পরিবর্তনে তাৎক্ষণিক সেশন বাতিলকরণ, সীমাবদ্ধ টোকেন ফাইল অনুমতি এবং PostgreSQL-সামঞ্জস্যপূর্ণ সার্ভার TLS ছাড়া চললে একটি স্টার্টআপ সতর্কতা।
রিপোর্ট করা বাস্তব-বিশ্বের ব্যবহারের মধ্যে রয়েছে সংবেদনশীল ক্ষেত্র পরিবর্তন (যেমন, পেমেন্ট ডেটা) অপরিবর্তনীয়ভাবে সংরক্ষণ, CI/CD বিল্ড রেসিপি সুরক্ষিত করা, সার্টিফিকেট এবং চেকসাম সংরক্ষণ, টেম্পার-প্রুফ লগ স্ট্রিম এবং সেন্সর বা অবস্থান ডেটা রেকর্ড করা। ডকুমেন্টেশন, একটি ওয়েব কনসোল ডেমো এবং একটি Python SDK প্লেগ্রাউন্ড প্রকল্প সাইটে উপলব্ধ।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.