Comments (4)
The .add_connection()
method works as you attempted to use it:
instantiated_ti_object.add_connection(object_id_that_exists)
However, if instantiated_ti_object
in this example is an object that hadn't previously existed in TX prior to you creating it and calling .save()
we don't "reload" it properly. Here's the issue:
new = ThreatIndicator()
new.set(TE.ThreatIndicator.STATUS,"MALICIOUS")
new.set(TE.ThreatIndicator.CONFIDENCE,"100")
new.set(TE.ThreatIndicator.TYPE,"URI")
new.set(TE.ThreatIndicator.INDICATOR, someurl)
# set the rest of the necessary stuff....
new.save() # HERE IS THE ISSUE
new.add_connection("object_id_that_exists_in_tx_already")
When you do .save()
, TX will generate an Object ID and assign it to the new Threat Indicator. When we get the response from the server, we just return it to you. This means that your new
object in this example doesn't have an id
still and thus doesn't have a properly formatted DETAILS
or RELATED
URL attribute. So when you go to add a connection, it fails because the URL it uses is wrong.
What we should do is consume the server response on .save()
, and if it is successful and contains an ID, set the ID on our object which should automatically set the URLs for us.
Thanks for catching this!
from threatexchange.
I have this ready to go if you'd like to test it:
I haven't submitted it for a PR because I want the Travis PR to be accepted and going first before submitting any more code changes :)
from threatexchange.
You are right. It doesn't reload the object properly. So, I did something like the following after save():
result=new.save()
new2= ThreatIndicator.details(id=result['id'])
new2.add_connection(object_id_already_exists)
Thanks for looking into this. I will test the change sometime.
from threatexchange.
Thanks! if you test my changes please respond so we can get some input from more than just me! If it works out for you I can get a PR up and running eventually :)
from threatexchange.
Related Issues (20)
- [hma] submitting content gets stuck between "hashed" and "matched" HOT 2
- /matches/for-hash/ gives AttributeError: 'IndexMatchUntyped' object has no attribute 'distance' HOT 1
- [pytx] No match results if creating a local_file with only 1 hash in it HOT 1
- [hma] Size of hashkey has exceeded the maximum size limit of 2048 bytes HOT 3
- [hma] ValueError in indexer
- [vpdq] Add support for Windows in vpdq pypy package HOT 5
- [OMM] Set up basic Continuous Integration git workflows for OMM HOT 2
- [omm] Figure out design for background tasks HOT 5
- [hma] Test production deployment - Nice-to-haves and Need-to-haves HOT 5
- [omm][onboarding] Initial setup issues HOT 2
- psycopg2.errors.UndefinedTable: relation "signal_type_override" does not exist HOT 8
- [vpdq] pypi publish failing HOT 2
- [omm][hma] Move Open Media Match into the Hasher Matcher Actioner Directory HOT 1
- Refactor UI to allow for multiple pages
- Flask background task scheduler doesn't run if werkzeug is not the WSGI server
- [hma][py-tx] Unclean CI status for HMA and pytx HOT 4
- [vpdq] Explore other packaging and build options
- [hma] Add optional distance parameter in match API
- [pytx] Add support for StopNCII PhotoDNA
- [hma] Bad redirects on dev page HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from threatexchange.