Spaces:
Sleeping
Sleeping
Create dora_data_integrity_strategy.py
Browse files
tools/dora_data_integrity_strategy.py
CHANGED
|
@@ -18,7 +18,7 @@ def export_text_to_pdf(text, metadata=None, output_path=None, language="en"):
|
|
| 18 |
|
| 19 |
pdf.set_font("Arial", 'B', 16)
|
| 20 |
pdf.set_text_color(0, 51, 102)
|
| 21 |
-
title = "Data Integrity Strategy - DORA (Optional)" if language == "en" else "Stratégie d'
|
| 22 |
pdf.cell(0, 15, title, ln=True, align='C')
|
| 23 |
pdf.ln(10)
|
| 24 |
|
|
@@ -60,12 +60,13 @@ def export_text_to_pdf(text, metadata=None, output_path=None, language="en"):
|
|
| 60 |
|
| 61 |
# === Questions ===
|
| 62 |
QUESTIONS = prepend_metadata_questions([
|
| 63 |
-
("
|
| 64 |
-
("
|
| 65 |
-
("
|
| 66 |
-
("
|
| 67 |
-
("
|
| 68 |
-
("
|
|
|
|
| 69 |
])
|
| 70 |
|
| 71 |
def get_questions():
|
|
@@ -97,10 +98,10 @@ def run_tool():
|
|
| 97 |
content = "\n".join([f"- **{label}**: {answers.get(key, '')}" for key, label in QUESTIONS])
|
| 98 |
lang = detect(content if len(content.strip()) > 3 else "Placeholder content")
|
| 99 |
pdf_path = export_text_to_pdf(content, metadata=metadata, language=lang)
|
| 100 |
-
return "✅ Strategy
|
| 101 |
|
| 102 |
with gr.Blocks(title="DORA Data Integrity Strategy") as demo:
|
| 103 |
-
chatbot = gr.Chatbot(label="
|
| 104 |
msg = gr.Textbox(label="Your answer")
|
| 105 |
state_var = gr.State(state)
|
| 106 |
file_output = gr.File(label="Download PDF")
|
|
|
|
| 18 |
|
| 19 |
pdf.set_font("Arial", 'B', 16)
|
| 20 |
pdf.set_text_color(0, 51, 102)
|
| 21 |
+
title = "Data Integrity Strategy - DORA (Optional)" if language == "en" else "Stratégie d'Intégrité des Données - DORA"
|
| 22 |
pdf.cell(0, 15, title, ln=True, align='C')
|
| 23 |
pdf.ln(10)
|
| 24 |
|
|
|
|
| 60 |
|
| 61 |
# === Questions ===
|
| 62 |
QUESTIONS = prepend_metadata_questions([
|
| 63 |
+
("data_validation_methods", "What methods are in place to validate data integrity?"),
|
| 64 |
+
("tamper_detection", "How is data tampering detected?"),
|
| 65 |
+
("correction_mechanisms", "What correction mechanisms are in place for data errors?"),
|
| 66 |
+
("backup_integrity", "How is backup integrity ensured?"),
|
| 67 |
+
("access_control", "What access controls are in place to protect data integrity?"),
|
| 68 |
+
("logging_procedures", "How is data integrity logging and auditing managed?"),
|
| 69 |
+
("policy_review", "How often is the data integrity policy reviewed and updated?")
|
| 70 |
])
|
| 71 |
|
| 72 |
def get_questions():
|
|
|
|
| 98 |
content = "\n".join([f"- **{label}**: {answers.get(key, '')}" for key, label in QUESTIONS])
|
| 99 |
lang = detect(content if len(content.strip()) > 3 else "Placeholder content")
|
| 100 |
pdf_path = export_text_to_pdf(content, metadata=metadata, language=lang)
|
| 101 |
+
return "✅ Data Integrity Strategy complete. Download your file below.", {"done": True}, pdf_path
|
| 102 |
|
| 103 |
with gr.Blocks(title="DORA Data Integrity Strategy") as demo:
|
| 104 |
+
chatbot = gr.Chatbot(label="🛡️ Data Integrity Assistant", value=[{"role": "assistant", "content": QUESTIONS[0][1]}], type="messages")
|
| 105 |
msg = gr.Textbox(label="Your answer")
|
| 106 |
state_var = gr.State(state)
|
| 107 |
file_output = gr.File(label="Download PDF")
|