أصدر OpenTofu الإصدار 1.13، الذي يتضمن دوالاً تساعد مؤلفي الوحدات على حل المزيد من التعبيرات أثناء التخطيط. يمكن لتلميحات النوع والقيمة أن تفتح خططاً عندما تظل قيم count أو المفاتيح المستخدمة بواسطة for_each غير معروفة. يمكن للمخطط تحديد عدد مثيلات الموارد التي سيتم إنشاؤها دون معرفة جميع سماتها النهائية، والتي قد تظل غير معروفة حتى مرحلة التطبيق.
اقترح مارتن أتكينز، أحد المشرفين على OpenTofu، التصميم في وثيقة RFC ودمج التنفيذ في أغسطس. في مشكلة سابقة، أراد المُبلغ، csar398، الاحتفاظ بمدخل YAML لكنه لم يتمكن من التخطيط عندما كانت القيمة المفككة تتحكم في count. يمكن لدالة yamldecode إرجاع أنواع مختلفة، بما في ذلك قيمة null، لذا فإن المدخل غير المعروف لا يمنح المخطط نوعاً معروفاً ولا ضماناً بعدم وجود null. هذا وضع معقد للغاية بحيث لا يمكن لـ OpenTofu استنتاجه تلقائياً بنفسه."
كيف تساعد دالة convert في التخطيط؟
تقوم دالة convert بتحويل القيم إلى نوع محدد، مما يمنح نتيجة yamldecode نوع كائن معروفاً حتى عندما يكون مدخل YAML غير معروف. بالنسبة للموارد الشرطية، فإن الجمع بين هذا التحويل ودالة assumenotnull يسمح لتعبير count المستند إلى وجود null بالتحول إلى صفر أو واحد بينما تظل محتويات الكائن غير معروفة. يجب على المؤلف التأكد من أن YAML المُنشأ يمثل دائماً كائناً من النوع المحدد ولا يمثل أبداً قيمة null. إذا انتهكت قيمة غير معروفة أثناء التخطيط هذا الضمان لاحقاً، فإن OpenTofu يبلغ عن خطأ أثناء التطبيق.
شحنت Terraform دالة convert المكافئة أولاً، في الإصدار 1.15.
ما هي الميزات والتغييرات الأخرى في OpenTofu 1.13؟
تُشغل ميزة الفحص التجريبي (linting) أربع قواعد تحذير مدمجة، بما في ذلك core:unused-variable وcore:count-instead-enabled. تتيح العلامة -lint=all هذه القواعد مع tofu validate أو tofu plan أو tofu apply. في اقتراحهم للفحص، يصف المشرفون الميزة بأنها طلبهم الأكثر تصويتاً؛ ويغطي العمل المستقبلي القواعد المخصصة وفحوصات السياسات الأوسع. يقدم TFLint بالفعل تحليلاً ثابتاً قائماً على المكونات الإضافية، بما في ذلك فحوصات مزود السحابة.
تشارك تجربة مكتبات الرموز (Symbol Libraries) الاختيارية الدوال وتعريفات الأنواع من خلال ملفات *.sym.hcl. لا يمكن للمكتبات الوصول مباشرة إلى الموارد أو مصادر البيانات أو دوال المزود، على الرغم من أن المتصلين يمكنهم تمرير قيم الموارد إلى دوال المكتبة. يأمل الفريق في تثبيت الميزة في الإصدار 1.14.
يزيل الإصدار 1.13 دعم Windows Remote Management (WinRM) من موفري remote-exec وfile، ويغير بايتات إخراج base64gzip، ويتطلب macOS 13 Ventura أو أحدث، وهو آخر سلسلة مع إصدارات 32 بت الرسمية. تتطلب تكوينات WinRM الحالية الترحيل، ويمكن أن يؤدي تغيير مكتبة Go وراء base64gzip إلى تشغيل تحديثات الموارد على الرغم من الإخراج المكافئ غير المضغوط.
قلص OpenTofu دورة تطويره لتتوافق مع إصدارات Go ويدعم سلسلة 1.13.x حتى 1 أغسطس 2027. أصدر المشروع الإصدار 1.13.2 في 21 أكتوبر. تعالج تغييراته الأمنية استخدام وحدة المعالجة المركزية المفرط أثناء tofu init عند الاتصال بخادم HTTP/2 يتحكم فيه مهاجم، وتصفية الشهادات الوسيطة المخترقة. كما يصلح التصحيح تطبيق الخطط المحفوظة التي تستخدم مكتبات الرموز.




