{"id":29572702,"url":"https://github.com/accelbyte/accelbyte-gdpr-go-sdk","last_synced_at":"2025-10-08T13:10:28.433Z","repository":{"id":187168753,"uuid":"676396576","full_name":"AccelByte/accelbyte-gdpr-go-sdk","owner":"AccelByte","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-30T10:31:38.000Z","size":70,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-19T08:48:51.797Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AccelByte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-09T05:34:34.000Z","updated_at":"2024-04-30T10:31:42.000Z","dependencies_parsed_at":"2024-04-30T11:55:49.099Z","dependency_job_id":"97544e5a-d108-4d9c-acde-b5038c821eeb","html_url":"https://github.com/AccelByte/accelbyte-gdpr-go-sdk","commit_stats":null,"previous_names":["accelbyte/accelbyte-gdpr-go-sdk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AccelByte/accelbyte-gdpr-go-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AccelByte%2Faccelbyte-gdpr-go-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AccelByte%2Faccelbyte-gdpr-go-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AccelByte%2Faccelbyte-gdpr-go-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AccelByte%2Faccelbyte-gdpr-go-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AccelByte","download_url":"https://codeload.github.com/AccelByte/accelbyte-gdpr-go-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AccelByte%2Faccelbyte-gdpr-go-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278948598,"owners_count":26073860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-19T05:10:56.141Z","updated_at":"2025-10-08T13:10:28.388Z","avatar_url":"https://github.com/AccelByte.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AccelByte GDPR Go SDK\n\nGDPR SDK for integrating Go services with AGS (AccelByte Gaming Services) GDPR service.\n\nThis GDPR SDK could be used by participant services to integrate into AGS GDPR workflow.\nThere are 4 GDPR workflow that this GDPR SDK supported:\n1. Right to data portability\n2. Right to erasure (right to be forgotten)\n3. Right to restrict processing\n4. Right to erase 3rd party account information\n\nThe participant services will hook their _**concrete go function**_ of 3 functionalities above into this GDPR SDK.\n\nUnder the hood, this GDPR SDK was using gRPC protocol for communication with AGS GDPR service:\n\n```\n+---------------+              +-----------------+\n|     AGS       |     gRPC     | Your Go Service |\n| GDPR Service -+-------------\u003e|  (gRPC Server)  |\n| (gRPC Client) |              |                 |\n+---------------+              +-----------------+\n```\n\n## Usage\n\n### Install GDPR SDK\n\n```\ngo get -u github.com/AccelByte/accelbyte-gdpr-go-sdk\n```\n\n### Initialize GDPR SDK\n\nImport GDPR SDK references:\n```go\nimport (\n    \"github.com/AccelByte/accelbyte-gdpr-go-sdk\"\n    \"github.com/AccelByte/accelbyte-gdpr-go-sdk/pkg/object\"\n)\n```\nCreate a new GDPR SDK gRPC server:\n```go\nyourGrpcServer := grpc.NewServer()\n\t\n// initialize GDPR SDK gRPC\ngdprSDK := gdprsdk.NewGdprGrpc()\ngdprSDK.RegisterGRPC(yourGrpcServer)\n\nlis, err := net.Listen(\"tcp\", \":8081\")\nif err = yourGrpcServer.Serve(lis); err != nil {\n    fmt.Errorf(\"%v\", err)\n}\n```\n\n### Hook your GDPR functionalities into GDPR SDK\n\n```go\n// register data generation handler (workflow: Right to data portability)\ngdprSDK.SetDataGenerationHandler(func(namespace, userID string, isPublisherNamespace bool) (*object.DataGenerationResult, error) {\n    logrus.Info(\"collecting user data...\")\n\t\n    // your implementation here...\n\t\n    // example result\n    return \u0026object.DataGenerationResult{\n        Data: map[string][]byte{\n            \"module1\": []byte(\"{\\\"data\\\":\\\"lorem ipsum dolor sit amet\\\"}\"),\n            \"module2\": []byte(\"[\\\"lorem\\\",\\\"ipsum\\\",\\\"dolor\\\",\\\"sit\\\",\\\"amet\\\"]\"),\n        },\n    }, nil\n})\n\n// register data deletion handler (workflow: Right to erasure) \ngdprSDK.SetDataDeletionHandler(func(namespace, userID string, isPublisherNamespace bool) error {\n    logrus.Info(\"deleting user data...\")\n\t\n    // your implementation here...\n\t\n    return nil\n})\n\n// register data restriction handler (workflow: Right to restrict processing) \ngdprSDK.SetDataRestrictionHandler(func(namespace, userID string, restrict, isPublisherNamespace bool) error {\n    logrus.Info(\"restrict processing user data...\")\n\n    // your implementation here...\n\n    return nil\n})\n\n// register platform account closure handler (workflow: Right to erase 3rd party account information) \ngdprSDK.SetPlatformAccountClosureHandler(func(platform, platformUserID string, accounts []*registered_v1.AccountInfo) error {\nlogrus.Info(\"deleting platform account info...\")\n// your implementation here...\n\nreturn nil\n})\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccelbyte%2Faccelbyte-gdpr-go-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faccelbyte%2Faccelbyte-gdpr-go-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccelbyte%2Faccelbyte-gdpr-go-sdk/lists"}