Data Models
This section is a collection of concepts or notations for describing the structure of the FederatedCode Data Model and providing details about all fields included in the output files.
Actor
RemoteActor
- class fedcode.models.RemoteActor
Represent a remote actor with its username
- Parameters:
url (URLField) – Primary key: Url
username (CharField) – Username
created_at (DateTimeField) – Created at. A field to track when remote actor are created
updated_at (DateTimeField) – Updated at. A field to track when remote actor are updated
Reverse relationships:
- Parameters:
service (Reverse
OneToOneFieldfromService) – The service of this remote actor (related name ofremote_actor)package (Reverse
OneToOneFieldfromPackage) – The package of this remote actor (related name ofremote_actor)person (Reverse
OneToOneFieldfromPerson) – The person of this remote actor (related name ofremote_actor)
- get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)
Finds next instance based on
created_at. Seeget_next_by_FOO()for more information.
- get_next_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=True, **kwargs)
Finds next instance based on
updated_at. Seeget_next_by_FOO()for more information.
- get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)
Finds previous instance based on
created_at. Seeget_previous_by_FOO()for more information.
- get_previous_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=False, **kwargs)
Finds previous instance based on
updated_at. Seeget_previous_by_FOO()for more information.
- created_at
Type:
DateTimeFieldCreated at. A field to track when remote actor are created
- package
Type: Reverse
OneToOneFieldfromPackageThe package of this remote actor (related name of
remote_actor)
- person
Type: Reverse
OneToOneFieldfromPersonThe person of this remote actor (related name of
remote_actor)
- property safe_url
- service
Type: Reverse
OneToOneFieldfromServiceThe service of this remote actor (related name of
remote_actor)
- updated_at
Type:
DateTimeFieldUpdated at. A field to track when remote actor are updated
Reputation
- class fedcode.models.Reputation
Reputation of a package or vulnerability.
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-like https://www.w3.org/ns/activitystreams#Dislike
- Parameters:
id (BigAutoField) – Primary key: ID
voter (CharField) – Voter. security@vcio
positive (BooleanField) – Positive
object_id (UUIDField) – Object id
content_object (GenericForeignKey) – Generic foreign key to the
ContentTypespecified incontent_type
Relationship fields:
- Parameters:
content_type (
ForeignKeytoContentType) – Content type (related name:reputation)
- content_object
Provide a generic many-to-one relation through the
content_typeandobject_idfields.This class also doubles as an accessor to the related object (similar to ForwardManyToOneDescriptor) by adding itself as a model attribute.
- content_type
Type:
ForeignKeytoContentTypeContent type (related name:
reputation)
- content_type_id
Internal field, use
content_typeinstead.
- id
Type:
BigAutoFieldPrimary key: ID
- limit = <Q: (OR: (AND: ('app_label', 'fedcode'), ('model', 'review')), (AND: ('app_label', 'fedcode'), ('model', 'note')))>
- positive
Type:
BooleanFieldPositive
- property to_ap
- voter
Type:
CharFieldVoter. security@vcio
Service
- class fedcode.models.Service
A Service is a special user that can manage git repositories ( sync , create )
- Parameters:
id (BigAutoField) – Primary key: ID
Relationship fields:
- Parameters:
user (
OneToOneFieldtoUser) – User (related name:service)remote_actor (
OneToOneFieldtoRemoteActor) – Remote actor (related name:service)
Reverse relationships:
- Parameters:
package (Reverse
ForeignKeyfromPackage) – All packages of this service (related name ofservice)repository (Reverse
ForeignKeyfromRepository) – All repositorys of this service (related name ofadmin)
- property absolute_url_ap
- id
Type:
BigAutoFieldPrimary key: ID
- package_set
Type: Reverse
ForeignKeyfromPackageAll packages of this service (related name of
service)
- remote_actor
Type:
OneToOneFieldtoRemoteActorRemote actor (related name:
service)
- remote_actor_id
Internal field, use
remote_actorinstead.
- repository_set
Type: Reverse
ForeignKeyfromRepositoryAll repositorys of this service (related name of
admin)
- property to_ap
- user
Type:
OneToOneFieldtoUserUser (related name:
service)
Note
- class fedcode.models.Note
A Note is a message send by a Person or Package. The content is either a plain text message or structured YAML. If the author is a Package actor then the content is always YAML If the author is a Person actor then the content is always plain text https://www.w3.org/TR/activitystreams-vocabulary/#dfn-note
- Parameters:
id (UUIDField) – Primary key: Id. The object’s unique global identifier
acct (CharField) – Acct. Account that created this note
content (TextField) – Content. Text content for this note
mediaType (CharField) – MediaType
created_at (DateTimeField) – Created at. A field to track when notes are created
updated_at (DateTimeField) – Updated at. A field to track when notes are updated
Relationship fields:
- Parameters:
reply_to (
ForeignKeytoNote) – Reply to (related name:replies)reputation (
GenericRelationtoReputation) – Reputation (related name:+)
Reverse relationships:
- Parameters:
replies (Reverse
ForeignKeyfromNote) – All replies of this note (related name ofreply_to)package (Reverse
ManyToManyFieldfromPackage) – All packages of this note (related name ofnotes)person (Reverse
ManyToManyFieldfromPerson) – All persons of this note (related name ofnotes)review (Reverse
ManyToManyFieldfromReview) – All reviews of this note (related name ofnotes)
- get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)
Finds next instance based on
created_at. Seeget_next_by_FOO()for more information.
- get_next_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=True, **kwargs)
Finds next instance based on
updated_at. Seeget_next_by_FOO()for more information.
- get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)
Finds previous instance based on
created_at. Seeget_previous_by_FOO()for more information.
- get_previous_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=False, **kwargs)
Finds previous instance based on
updated_at. Seeget_previous_by_FOO()for more information.
- property absolute_url
- property acct_avatar
- created_at
Type:
DateTimeFieldCreated at. A field to track when notes are created
- package_set
Type: Reverse
ManyToManyFieldfromPackageAll packages of this note (related name of
notes)
- person_set
Type: Reverse
ManyToManyFieldfromPersonAll persons of this note (related name of
notes)
- replies
Type: Reverse
ForeignKeyfromNoteAll replies of this note (related name of
reply_to)
- reply_to
Type:
ForeignKeytoNoteReply to (related name:
replies)
- reputation
Type: Reverse
GenericRelationfromNoteAll + of this reputation (related name of
reputation)
- property reputation_value
- review_set
Type: Reverse
ManyToManyFieldfromReviewAll reviews of this note (related name of
notes)
- property to_ap
- updated_at
Type:
DateTimeFieldUpdated at. A field to track when notes are updated
- property username
Package
- class fedcode.models.Package
A software package is an Actor identified by its package url ( PURL ) ignoring versions
- Parameters:
Relationship fields:
- Parameters:
remote_actor (
OneToOneFieldtoRemoteActor) – Remote actor (related name:package)service (
ForeignKeytoService) – Service (related name:package)notes (
ManyToManyFieldtoNote) – Notes. the notes created by this package (related name:package)
Reverse relationships:
- Parameters:
follow (Reverse
ForeignKeyfromFollow) – All follows of this package (related name ofpackage)
- property absolute_url_ap
- property acct
- follow_set
Type: Reverse
ForeignKeyfromFollowAll follows of this package (related name of
package)
- property followers
- property followers_count
- property followers_inboxes
Return a followers inbox list
- property followers_url
- property inbox_url
- property key_id
- notes
Type:
ManyToManyFieldtoNoteNotes. the notes created by this package (related name:
package)
- property notes_count
- property outbox_url
- remote_actor
Type:
OneToOneFieldtoRemoteActorRemote actor (related name:
package)
- remote_actor_id
Internal field, use
remote_actorinstead.
- service
Type:
ForeignKeytoServiceService (related name:
package)
- property to_ap
Person
- class fedcode.models.Person
A person is a user can follow package or just vote or create a notes
- Parameters:
id (BigAutoField) – Primary key: ID
summary (CharField) – Summary. profile summary
public_key (TextField) – Public key
Relationship fields:
- Parameters:
user (
OneToOneFieldtoUser) – User (related name:person)remote_actor (
OneToOneFieldtoRemoteActor) – Remote actor (related name:person)notes (
ManyToManyFieldtoNote) – Notes. Notes created by this user (related name:person)
Reverse relationships:
- Parameters:
follow (Reverse
ForeignKeyfromFollow) – All follows of this person (related name ofperson)review (Reverse
ForeignKeyfromReview) – All reviews of this person (related name ofauthor)
- property absolute_url_ap
- property acct
- property avatar
- property avatar_absolute_url
- follow_set
Type: Reverse
ForeignKeyfromFollowAll follows of this person (related name of
person)
- property following_url
- id
Type:
BigAutoFieldPrimary key: ID
- property inbox_url
- property key_id
- property local
- notes
Type:
ManyToManyFieldtoNoteNotes. Notes created by this user (related name:
person)
- property outbox_url
- remote_actor
Type:
OneToOneFieldtoRemoteActorRemote actor (related name:
person)
- remote_actor_id
Internal field, use
remote_actorinstead.
- property reputation_value
if someone like your ( review or note ) you will get +1, dislike: -1
- review_set
Type: Reverse
ForeignKeyfromReviewAll reviews of this person (related name of
author)
- property to_ap
- property url
- user
Type:
OneToOneFieldtoUserUser (related name:
person)
Follow
- class fedcode.models.Follow
A Follow relates a person to a package that “follows” a package.
- Parameters:
id (BigAutoField) – Primary key: ID
created_at (DateTimeField) – Created at. Date created
updated_at (DateTimeField) – Updated at. Date updated
Relationship fields:
- Parameters:
person (
ForeignKeytoPerson) – Person. Person that follows (related name:follow)package (
ForeignKeytoPackage) – Package. Followed package (related name:follow)
- get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)
Finds next instance based on
created_at. Seeget_next_by_FOO()for more information.
- get_next_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=True, **kwargs)
Finds next instance based on
updated_at. Seeget_next_by_FOO()for more information.
- get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)
Finds previous instance based on
created_at. Seeget_previous_by_FOO()for more information.
- get_previous_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=False, **kwargs)
Finds previous instance based on
updated_at. Seeget_previous_by_FOO()for more information.
- created_at
Type:
DateTimeFieldCreated at. Date created
- id
Type:
BigAutoFieldPrimary key: ID
- package
Type:
ForeignKeytoPackagePackage. Followed package (related name:
follow)
- person
Type:
ForeignKeytoPersonPerson. Person that follows (related name:
follow)
- updated_at
Type:
DateTimeFieldUpdated at. Date updated
Repository
- class fedcode.models.Repository
A git repository used as a backing storage for Package and vulnerability data
- Parameters:
id (UUIDField) – Primary key: Id. The object’s unique global identifier
url (URLField) – Url. Git Repository url ex: https://github.com/nexB/vulnerablecode-data
path (CharField) – Path. path of the repository
remote_url (CharField) – Remote url. the url of the repository if this repository is remote
last_imported_commit (CharField) – Last imported commit
created_at (DateTimeField) – Created at. A field to track when repository are created
updated_at (DateTimeField) – Updated at. A field to track when repository are updated
Relationship fields:
- Parameters:
admin (
ForeignKeytoService) – Admin. admin user ex: VCIO user (related name:repository)
Reverse relationships:
- Parameters:
vulnerability (Reverse
ForeignKeyfromVulnerability) – All vulnerabilitys of this repository (related name ofrepo)review (Reverse
ForeignKeyfromReview) – All reviews of this repository (related name ofrepository)syncrequest (Reverse
ForeignKeyfromSyncRequest) – All sync requests of this repository (related name ofrepo)
- get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)
Finds next instance based on
created_at. Seeget_next_by_FOO()for more information.
- get_next_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=True, **kwargs)
Finds next instance based on
updated_at. Seeget_next_by_FOO()for more information.
- get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)
Finds previous instance based on
created_at. Seeget_previous_by_FOO()for more information.
- get_previous_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=False, **kwargs)
Finds previous instance based on
updated_at. Seeget_previous_by_FOO()for more information.
- property absolute_url
- admin
Type:
ForeignKeytoServiceAdmin. admin user ex: VCIO user (related name:
repository)
- created_at
Type:
DateTimeFieldCreated at. A field to track when repository are created
- property git_repo_obj
- property review_count
- review_set
Type: Reverse
ForeignKeyfromReviewAll reviews of this repository (related name of
repository)
- syncrequest_set
Type: Reverse
ForeignKeyfromSyncRequestAll sync requests of this repository (related name of
repo)
- property to_ap
- updated_at
Type:
DateTimeFieldUpdated at. A field to track when repository are updated
- url
Type:
URLFieldUrl. Git Repository url ex: https://github.com/nexB/vulnerablecode-data
- vulnerability_set
Type: Reverse
ForeignKeyfromVulnerabilityAll vulnerabilitys of this repository (related name of
repo)
Vulnerability
- class fedcode.models.Vulnerability
A vulnerability tracked by its VulnerableCode VCID
- Parameters:
Relationship fields:
- Parameters:
repo (
ForeignKeytoRepository) – Repo (related name:vulnerability)
- property absolute_url
- repo
Type:
ForeignKeytoRepositoryRepo (related name:
vulnerability)
- property to_ap
Review
- class fedcode.models.Review
A review tracks the review comments on a Package or Vulnerability.
- Parameters:
id (UUIDField) – Primary key: Id. The object’s unique global identifier
headline (CharField) – Headline. the review title
filepath (CharField) – Filepath. the review path ex: /apache/httpd/VCID-1a68-fd5t-aaam.yml
commit (CharField) – Commit. ex: 104ccd6a7a41329b2953c96e52792a3d6a9ad8e5
data (TextField) – Data. review data ex: vulnerability file
created_at (DateTimeField) – Created at. A field to track when review are created
updated_at (DateTimeField) – Updated at. A field to track when review are updated
remote_url (CharField) – Remote url. the review remote url if Remote Review exists
status (SmallIntegerField) – Status. status of review
Relationship fields:
- Parameters:
author (
ForeignKeytoPerson) – Author (related name:review)repository (
ForeignKeytoRepository) – Repository (related name:review)notes (
ManyToManyFieldtoNote) – Notes (related name:review)reputation (
GenericRelationtoReputation) – Reputation (related name:+)
- class ReviewStatus(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
- CLOSED = 2
- DRAFT = 1
- MERGED = 3
- OPEN = 0
- get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)
Finds next instance based on
created_at. Seeget_next_by_FOO()for more information.
- get_next_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=True, **kwargs)
Finds next instance based on
updated_at. Seeget_next_by_FOO()for more information.
- get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)
Finds previous instance based on
created_at. Seeget_previous_by_FOO()for more information.
- get_previous_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=False, **kwargs)
Finds previous instance based on
updated_at. Seeget_previous_by_FOO()for more information.
- get_status_display(*, field=<django.db.models.SmallIntegerField: status>)
Shows the label of the
status. Seeget_FOO_display()for more information.
- property absolute_url
- author
Type:
ForeignKeytoPersonAuthor (related name:
review)
- created_at
Type:
DateTimeFieldCreated at. A field to track when review are created
- notes
Type:
ManyToManyFieldtoNoteNotes (related name:
review)
- repository
Type:
ForeignKeytoRepositoryRepository (related name:
review)
- repository_id
Internal field, use
repositoryinstead.
- reputation
Type: Reverse
GenericRelationfromReviewAll + of this reputation (related name of
reputation)
- property reputation_value
- status
Type:
SmallIntegerFieldStatus. status of review
Choices:
0123
- property to_ap
- updated_at
Type:
DateTimeFieldUpdated at. A field to track when review are updated
FederateRequest
- class fedcode.models.FederateRequest
FederateRequest(id, target, body, key_id, error_message, created_at, done)
- Parameters:
id (BigAutoField) – Primary key: ID
target (URLField) – Target. The request target ex: (inbox of the targeted actor
body (TextField) – Body. The request body
key_id (URLField) – Key id. The key url of the actor ex: https://my-example.com/actor#main-key
error_message (TextField) – Error message. Error message if a request failed to federate
created_at (DateTimeField) – Created at. A field to track when review are created
done (BooleanField) – Done. Flag set to true when the request completed
- get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)
Finds next instance based on
created_at. Seeget_next_by_FOO()for more information.
- get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)
Finds previous instance based on
created_at. Seeget_previous_by_FOO()for more information.
- created_at
Type:
DateTimeFieldCreated at. A field to track when review are created
- done
Type:
BooleanFieldDone. Flag set to true when the request completed
- id
Type:
BigAutoFieldPrimary key: ID
- key_id
Type:
URLFieldKey id. The key url of the actor ex: https://my-example.com/actor#main-key
SyncRequest
- class fedcode.models.SyncRequest
SyncRequest(id, repo, error_message, created_at, done)
- Parameters:
id (BigAutoField) – Primary key: ID
error_message (TextField) – Error message. Error message if a request failed to sync
created_at (DateTimeField) – Created at. A field to track when review are created
done (BooleanField) – Done. Flag set to true when the request completed
Relationship fields:
- Parameters:
repo (
ForeignKeytoRepository) – Repo. The Git repository where the importer will run (related name:syncrequest)
- get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)
Finds next instance based on
created_at. Seeget_next_by_FOO()for more information.
- get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)
Finds previous instance based on
created_at. Seeget_previous_by_FOO()for more information.
- created_at
Type:
DateTimeFieldCreated at. A field to track when review are created
- done
Type:
BooleanFieldDone. Flag set to true when the request completed
- id
Type:
BigAutoFieldPrimary key: ID
- repo
Type:
ForeignKeytoRepositoryRepo. The Git repository where the importer will run (related name:
syncrequest)