Dave67350 commited on
Commit
7a0696b
·
verified ·
1 Parent(s): 2028841

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'intégrité des données - DORA"
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
- ("data_validation", "How is data validation performed to ensure accuracy and completeness?"),
64
- ("integrity_controls", "What technical controls are in place to protect data integrity?"),
65
- ("tamper_detection", "How is tampering with data detected and mitigated?"),
66
- ("logging_tracking", "Are changes to data logged and tracked? How?"),
67
- ("periodic_reviews", "Are regular data integrity audits or reviews conducted?"),
68
- ("incident_response", "What is the response process for detected data integrity issues?")
 
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 documented. Download below.", {"done": True}, pdf_path
101
 
102
  with gr.Blocks(title="DORA Data Integrity Strategy") as demo:
103
- chatbot = gr.Chatbot(label="📊 Data Integrity Assistant", value=[{"role": "assistant", "content": QUESTIONS[0][1]}], type="messages")
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")