Untitled

 avatar
unknown
plain_text
a year ago
2.0 kB
3
Indexable
from flask import Flask, request, jsonify, make_response
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from flask_restful import Api, Resource

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///cybersecurity.db"
db = SQLAlchemy(app)
ma = Marshmallow(app)
api = Api(app)

class SecurityAssessment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    vulnerability = db.Column(db.String(100), nullable=False)
    severity = db.Column(db.String(10), nullable=False)
    # ... additional fields ...

class Threat(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.String(200), nullable=False)
    # ... additional fields ...

class Incident(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.String(200), nullable=False)
    # ... additional fields ...

class SecurityAssessmentSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = SecurityAssessment
        load_instance = True

class ThreatSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = Threat
        load_instance = True

class IncidentSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = Incident
        load_instance = True

@app.route("/security-assessments", methods=["GET"])
def get_security_assessments():
    assessments = SecurityAssessment.query.all()
    return jsonify(SecurityAssessmentSchema(many=True).dump(assessments))

@app.route("/threats", methods=["GET"])
def get_threats():
    threats = Threat.query.all()
    return jsonify(ThreatSchema(many=True).dump(threats))

@app.route("/incidents", methods=["GET"])
def get_incidents():
    incidents = Incident.query.all()
    return jsonify(IncidentSchema(many=True).dump(incidents))

# ... additional API endpoints ...

if __name__ == "__main__":
    app.run(debug=True)
Editor is loading...
Leave a Comment