From facbc21f2a2f42ef9f8f86fbba5073831a91127d Mon Sep 17 00:00:00 2001 From: rdmmf Date: Mon, 23 Feb 2026 14:37:36 +0100 Subject: [PATCH 1/3] Added examples for objects references and relationships --- examples/add_object_reference.py | 28 ++++++++++++++++++++++++ examples/add_object_relationship.py | 33 +++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100755 examples/add_object_reference.py create mode 100755 examples/add_object_relationship.py diff --git a/examples/add_object_reference.py b/examples/add_object_reference.py new file mode 100755 index 000000000..ed1c493d7 --- /dev/null +++ b/examples/add_object_reference.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from pymisp import PyMISP +from keys import misp_url, misp_key, misp_verifycert +import argparse + +# Suppress those "Unverified HTTPS request is being made" +import urllib3 +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Add a reference between two objects') + parser.add_argument("-o", "--object", help="The id, uuid or json of the object referencing.",required=True) + parser.add_argument("-t", "--target", help="The id, uuid or json of the object referenced.",required=True) + parser.add_argument("-r", "--relationship-type", help="The type of the relationship",required=True) + args = parser.parse_args() + + misp = PyMISP(misp_url, misp_key, misp_verifycert) + + misp_object = misp.get_object(args.object,pythonify=True) + target_object = misp.get_object(args.target,pythonify=True) + + object_ref = misp_object.add_reference(target_object.uuid,args.relationship_type) + + print(object_ref) + + misp.add_object_reference(object_ref) \ No newline at end of file diff --git a/examples/add_object_relationship.py b/examples/add_object_relationship.py new file mode 100755 index 000000000..aa95dc6e4 --- /dev/null +++ b/examples/add_object_relationship.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from pymisp import PyMISP +from keys import misp_url, misp_key, misp_verifycert +import argparse + +# Suppress those "Unverified HTTPS request is being made" +import urllib3 +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +if __name__ == '__main__': + + valid_object_type = {'Attribute', 'Event', 'EventReport', 'GalaxyCluster', 'Galaxy', + 'Object', 'Note', 'Opinion', 'Relationship', 'Organisation', + 'SharingGroup'} + + parser = argparse.ArgumentParser(description='Add a reference between two objects') + parser.add_argument("-o", "--object", help="The id, uuid or json of the object referencing.",required=True) + parser.add_argument("-t", "--target-uuid", help="The uuid of the object referenced.",required=True) + parser.add_argument("-r", "--relationship-type", help="The type of the relationship",required=True) + parser.add_argument("--type", help="The type of the referenced object",required=True,choices=valid_object_type) + args = parser.parse_args() + + misp = PyMISP(misp_url, misp_key, misp_verifycert) + + misp_object = misp.get_object(args.object,pythonify=True) + + relationship = misp_object.add_relationship(args.type, args.target_uuid, args.relationship_type) + + print(relationship) + + misp.add_relationship(relationship) \ No newline at end of file From 022d46cbdaf1e2b5a27af25aec0d2b553a861f92 Mon Sep 17 00:00:00 2001 From: rdmmf Date: Mon, 23 Feb 2026 14:40:58 +0100 Subject: [PATCH 2/3] fixed argument parameter --- examples/add_object_relationship.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/add_object_relationship.py b/examples/add_object_relationship.py index aa95dc6e4..1ebe4c2e4 100755 --- a/examples/add_object_relationship.py +++ b/examples/add_object_relationship.py @@ -16,7 +16,7 @@ 'SharingGroup'} parser = argparse.ArgumentParser(description='Add a reference between two objects') - parser.add_argument("-o", "--object", help="The id, uuid or json of the object referencing.",required=True) + parser.add_argument("-o", "--object", help="The uuid of the object referencing.",required=True) parser.add_argument("-t", "--target-uuid", help="The uuid of the object referenced.",required=True) parser.add_argument("-r", "--relationship-type", help="The type of the relationship",required=True) parser.add_argument("--type", help="The type of the referenced object",required=True,choices=valid_object_type) From 36a745ed6370b1c215713e80e8d3658bf4701377 Mon Sep 17 00:00:00 2001 From: rdmmf Date: Mon, 23 Feb 2026 15:43:42 +0100 Subject: [PATCH 3/3] disable http warning only when no verifycert --- examples/add_object_reference.py | 5 +++-- examples/add_object_relationship.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/add_object_reference.py b/examples/add_object_reference.py index ed1c493d7..5237cf4cb 100755 --- a/examples/add_object_reference.py +++ b/examples/add_object_reference.py @@ -6,8 +6,9 @@ import argparse # Suppress those "Unverified HTTPS request is being made" -import urllib3 -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) +if not misp_verifycert: + import urllib3 + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Add a reference between two objects') diff --git a/examples/add_object_relationship.py b/examples/add_object_relationship.py index 1ebe4c2e4..34d12f9ac 100755 --- a/examples/add_object_relationship.py +++ b/examples/add_object_relationship.py @@ -6,8 +6,9 @@ import argparse # Suppress those "Unverified HTTPS request is being made" -import urllib3 -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) +if not misp_verifycert: + import urllib3 + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) if __name__ == '__main__':