Files
edx-platform/.annotation_safe_list.yml

375 lines
12 KiB
YAML

# This is a Code Annotations automatically-generated Django model safelist file.
# These models must be annotated as follows in order to be counted in the coverage report.
# See https://code-annotations.readthedocs.io/en/latest/safelist.html for more information.
#
# fake_app_1.FakeModelName:
# ".. no_pii::": "This model has no PII"
# fake_app_2.FakeModel2:
# ".. choice_annotation::": foo, bar, baz
# Via Django
auth.Group:
".. no_pii:": "No PII"
auth.Permission:
".. no_pii:": "No PII"
auth.User:
".. pii:": "Contains username, password, and email address, retired in AccountRetirementView"
".. pii_types:": username, email_address, password
".. pii_retirement:": local_api
contenttypes.ContentType:
".. no_pii:": "No PII"
admin.LogEntry:
".. no_pii:": "No PII"
redirects.Redirect:
".. no_pii:": "No PII"
sessions.Session:
".. no_pii:": "No PII"
sites.Site:
".. no_pii:": "No PII"
# Automatically generated edx-platform models that can't be annotated
calendar_sync.HistoricalUserCalendarSyncConfig:
".. no_pii:": "No PII"
certificates.HistoricalCertificateAllowlist:
".. no_pii:": "No PII"
certificates.HistoricalCertificateDateOverride:
".. no_pii:": "No PII"
certificates.HistoricalCertificateInvalidation:
".. no_pii:": "No PII"
certificates.HistoricalGeneratedCertificate:
".. pii:": "PII can exist in the generated certificate linked to in this model. Certificate data is currently retained."
".. pii_types:": "name, username"
".. pii_retirement:": "retained"
course_apps.HistoricalCourseAppStatus:
".. no_pii:": "No PII"
course_goals.HistoricalCourseGoal:
".. no_pii:": "No PII"
course_live.HistoricalCourseLiveConfiguration:
".. no_pii:": "No PII"
course_modes.HistoricalCourseMode:
".. no_pii:": "No PII"
course_overviews.HistoricalCourseOverview:
".. no_pii:": "No PII"
discussions.HistoricalDiscussionsConfiguration:
".. no_pii:": "No PII"
entitlements.HistoricalCourseEntitlement:
".. no_pii:": "No PII"
entitlements.HistoricalCourseEntitlementSupportDetail:
".. no_pii:": "No PII"
experiments.HistoricalExperimentKeyValue:
".. no_pii:": "No PII"
external_user_ids.HistoricalExternalId:
".. no_pii:": "We store external_user_id here, but do not consider that PII under OEP-30."
external_user_ids.HistoricalExternalIdType:
".. no_pii:": "No PII"
grades.HistoricalPersistentSubsectionGradeOverride:
".. no_pii:": "No PII"
instructor_task.HistoricalInstructorTaskSchedule:
".. no_pii:": "No PII"
program_enrollments.HistoricalProgramCourseEnrollment:
".. no_pii:": "No PII"
program_enrollments.HistoricalProgramEnrollment:
".. pii:": "PII is found in the external key for a program enrollment"
".. pii_types:": "other"
".. pii_retirement:": "local_api"
programs.HistoricalProgramDiscussionsConfiguration:
".. no_pii:": "No PII"
programs.HistoricalProgramLiveConfiguration:
".. no_pii:": "No PII"
schedules.HistoricalSchedule:
".. no_pii:": "No PII"
split_modulestore_django.HistoricalSplitModulestoreCourseIndex:
".. no_pii:": "No PII"
student.HistoricalCourseEnrollment:
".. no_pii:": "No PII"
student.HistoricalManualEnrollmentAudit:
".. pii:": "Contains enrolled_email, retired in LMSAccountRetirementView"
".. pii_types:": "email_address"
".. pii_retirement:": "local_api"
# Automatically generated models in edx-enterprise that can't be annotated there
consent.HistoricalDataSharingConsent:
".. pii:": "The username field inherited from Consent contains PII."
".. pii_types:": username
".. pii_retirement:": consumer_api
degreed.HistoricalDegreedEnterpriseCustomerConfiguration:
".. no_pii:": "No PII"
enterprise.HistoricalEnrollmentNotificationEmailTemplate:
".. no_pii:": "No PII"
enterprise.HistoricalEnterpriseCourseEnrollment:
".. no_pii:": "No PII"
enterprise.HistoricalEnterpriseCustomer:
".. no_pii:": "No PII"
enterprise.HistoricalEnterpriseCustomerCatalog:
".. no_pii:": "No PII"
enterprise.HistoricalEnterpriseCustomerEntitlement:
".. no_pii:": "No PII"
# Via edx-ora2, these can be removed once the models are annotated for real
assessment.Assessment:
".. no_pii:": "No PII"
assessment.AssessmentFeedback:
".. no_pii:": "No PII"
assessment.AssessmentFeedbackOption:
".. no_pii:": "No PII"
assessment.AssessmentPart:
".. no_pii:": "No PII"
assessment.Criterion:
".. no_pii:": "No PII"
assessment.CriterionOption:
".. no_pii:": "No PII"
assessment.PeerWorkflow:
".. no_pii:": "No PII"
assessment.PeerWorkflowItem:
".. no_pii:": "No PII"
assessment.Rubric:
".. no_pii:": "No PII"
assessment.StaffWorkflow:
".. no_pii:": "No PII"
assessment.StudentTrainingWorkflow:
".. no_pii:": "No PII"
assessment.StudentTrainingWorkflowItem:
".. no_pii:": "No PII"
assessment.TrainingExample:
".. no_pii:": "No PII"
workflow.AssessmentWorkflow:
".. no_pii:": "No PII"
workflow.AssessmentWorkflowCancellation:
".. no_pii:": "No PII"
workflow.AssessmentWorkflowStep:
".. no_pii:": "No PII"
# Via edx-celeryutils
celery_utils.ChordData:
".. no_pii:": "No PII"
# Via completion XBlock
completion.BlockCompletion:
".. no_pii:": "No PII"
# Via django_notify (required / installed by wiki)
django_notify.Notification:
".. no_pii:": "No PII"
django_notify.NotificationType:
".. no_pii:": "No PII"
django_notify.Settings:
".. no_pii:": "No PII"
django_notify.Subscription:
".. no_pii:": "No PII"
# Via django-openid-auth https://github.com/edx/django-openid-auth
django_openid_auth.Association:
".. no_pii:": "No PII"
django_openid_auth.Nonce:
".. no_pii:": "No PII"
django_openid_auth.UserOpenID:
".. pii:": "User OpenID associations. Not used and empty on edx.org, therefore not retired."
".. pii_types:": external_service, password
".. pii_retirement:": retained
# Via django-celery
djcelery.CrontabSchedule:
".. no_pii:": "No PII"
djcelery.IntervalSchedule:
".. no_pii:": "No PII"
djcelery.PeriodicTask:
".. no_pii:": "No PII"
djcelery.PeriodicTasks:
".. no_pii:": "No PII"
djcelery.TaskMeta:
".. no_pii:": "No PII"
djcelery.TaskSetMeta:
".. no_pii:": "No PII"
djcelery.TaskState:
".. no_pii:": "No PII"
djcelery.WorkerState:
".. no_pii:": "No PII"
# Via django-celery-results
django_celery_results.ChordCounter:
".. no_pii:": "No PII"
django_celery_results.GroupResult:
".. no_pii:": "No PII"
django_celery_results.TaskResult:
".. no_pii:": "No PII"
# Via edx-oauth2-provider https://github.com/edx/edx-oauth2-provider
edx_oauth2_provider.TrustedClient:
".. no_pii:": "No PII"
# Via edx-name-affirmation, not part of the openedx org
edx_name_affirmation.HistoricalVerifiedName:
".. pii:": "Contains name fields."
".. pii_types:": "name"
".. pii_retirement:": "local_api"
# Via VAL
edxval.CourseVideo:
".. no_pii:": "No PII"
edxval.EncodedVideo:
".. no_pii:": "No PII"
edxval.Profile:
".. no_pii:": "No PII"
edxval.ThirdPartyTranscriptCredentialsState:
".. no_pii:": "No PII"
edxval.TranscriptPreference:
".. no_pii:": "No PII"
edxval.Video:
".. no_pii:": "No PII"
edxval.VideoImage:
".. no_pii:": "No PII"
edxval.VideoTranscript:
".. no_pii:": "No PII"
# Via PyLTI1p3
lti1p3_tool_config.LtiTool:
".. no_pii:": "No PII"
lti1p3_tool_config.LtiToolKey:
".. no_pii:": "No PII"
# Via Milestones
milestones.CourseContentMilestone:
".. no_pii:": "No PII"
milestones.CourseMilestone:
".. no_pii:": "No PII"
milestones.Milestone:
".. no_pii:": "No PII"
milestones.MilestoneRelationshipType:
".. no_pii:": "No PII"
milestones.UserMilestone:
".. no_pii:": "No PII"
# Via Django OAuth2 Provider https://github.com/edx/django-oauth2-provider
oauth2.Client:
".. no_pii:": "No PII"
oauth2.AccessToken:
".. pii:": "Contains 3rd party authentication secrets. Retired in DeactivateLogoutView."
".. pii_types:": password, other
".. pii_retirement:": local_api
oauth2.Grant:
".. pii:": "Contains 3rd party authentication secrets. Retired in DeactivateLogoutView."
".. pii_types:": password, other
".. pii_retirement:": local_api
oauth2.RefreshToken:
".. pii:": "Contains 3rd party authentication secrets. Retired in DeactivateLogoutView."
".. pii_types:": password, other
".. pii_retirement:": local_api
# Via Django OAuth Toolkit https://github.com/evonove/django-oauth-toolkit
oauth2_provider.AccessToken:
".. pii:": "Contains 3rd party authentication secrets. Retired in DeactivateLogoutView."
".. pii_types:": password, other
".. pii_retirement:": local_api
oauth2_provider.Application:
".. pii:": "Contains 3rd party authentication secrets. Retired in DeactivateLogoutView."
".. pii_types:": password, other
".. pii_retirement:": local_api
oauth2_provider.Grant:
".. pii:": "Contains 3rd party authentication secrets. Retired in DeactivateLogoutView."
".. pii_types:": password, other
".. pii_retirement:": local_api
oauth2_provider.IDToken:
".. pii:": "Contains 3rd party authentication secrets, currently this is retained until the token times out, but should be retired explicitly with the other models from this package."
".. pii_types:": password, other
".. pii_retirement:": retained
oauth2_provider.RefreshToken:
".. pii:": "Contains 3rd party authentication secrets. Retired in DeactivateLogoutView."
".. pii_types:": password, other
".. pii_retirement:": local_api
# Via Django OAuth Plus https://bitbucket.org/david/django-oauth-plus
oauth_provider.Consumer:
".. no_pii:": "No PII, unused and empty in edx.org"
oauth_provider.Nonce:
".. no_pii:": "No PII, unused and empty in edx.org"
oauth_provider.Scope:
".. no_pii:": "No PII, unused and empty in edx.org"
oauth_provider.Token:
".. pii:": "User OAuth associations. Not used and empty on edx.org, therefore not retired."
".. pii_types:": external_service, password
".. pii_retirement:": retained
# Via edx-organizations
organizations.Organization:
".. no_pii:": "No PII"
organizations.OrganizationCourse:
".. no_pii:": "No PII"
# Via Problem Builder XBlock
problem_builder.Answer:
".. no_pii:": "No PII"
problem_builder.Share:
".. no_pii:": "No PII"
# Via Social Django https://github.com/python-social-auth/social-app-django
social_django.Association:
".. no_pii:": "No PII"
social_django.Code:
".. pii:": "Transient - email address stored with email authentication code, removed automatically so not retired"
".. pii_types:": email_address
".. pii_retirement:": local_api
social_django.Nonce:
".. no_pii:": "No PII"
social_django.Partial:
".. no_pii:": "No PII"
social_django.UserSocialAuth:
".. pii:": "3rd party authentication data, retired in DeactivateLogoutView"
".. pii_types:": external_service
".. pii_retirement:": local_api
# Via Splash https://github.com/openedx/django-splash
splash.SplashConfig:
".. no_pii:": "No PII"
# Via edx-submissions
submissions.Score:
".. no_pii:": "No PII"
submissions.ScoreAnnotation:
".. no_pii:": "No PII"
submissions.ScoreSummary:
".. no_pii:": "No PII"
submissions.StudentItem:
".. no_pii:": "No PII"
submissions.Submission:
".. no_pii:": "No PII"
submissions.TeamSubmission:
".. no_pii:": "No PII"
# Via sorl-thumbnail https://github.com/jazzband/sorl-thumbnail
thumbnail.KVStore:
".. no_pii:": "No PII"
# Via django-user-tasks
user_tasks.UserTaskArtifact:
".. no_pii:": "No PII"
user_tasks.UserTaskStatus:
".. no_pii:": "No PII"
# Via waffle
waffle.Flag:
".. no_pii:": "No PII"
waffle.Sample:
".. no_pii:": "No PII"
waffle.Switch:
".. no_pii:": "No PII"
# Via django-wiki https://github.com/openedx/django-wiki
wiki.Article:
".. no_pii:": "No PII"
wiki.ArticleForObject:
".. no_pii:": "No PII"
wiki.ArticlePlugin:
".. no_pii:": "No PII"
wiki.ArticleRevision:
".. no_pii:": "No PII"
wiki.ReusablePlugin:
".. no_pii:": "No PII"
wiki.RevisionPlugin:
".. no_pii:": "No PII"
wiki.RevisionPluginRevision:
".. no_pii:": "No PII"
wiki.SimplePlugin:
".. no_pii:": "No PII"
wiki.URLPath:
".. no_pii:": "No PII"