{"id":32150719,"url":"https://github.com/charlesjs/csauthsample","last_synced_at":"2025-10-21T10:17:57.693Z","repository":{"id":48190349,"uuid":"148941644","full_name":"CharlesJS/CSAuthSample","owner":"CharlesJS","description":"Swift and ObjC-based library to assist with implementing a privileged helper tool in a macOS application.","archived":false,"fork":false,"pushed_at":"2023-10-21T20:29:13.000Z","size":408,"stargazers_count":21,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-19T06:23:48.943Z","etag":null,"topics":["apple","macos","macos-application","macos-applications","privileged-helper","swift"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","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/CharlesJS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-09-15T21:32:37.000Z","updated_at":"2024-04-30T16:49:36.000Z","dependencies_parsed_at":"2023-10-21T21:28:10.101Z","dependency_job_id":null,"html_url":"https://github.com/CharlesJS/CSAuthSample","commit_stats":{"total_commits":153,"total_committers":7,"mean_commits":"21.857142857142858","dds":0.07843137254901966,"last_synced_commit":"fe5d3ed30838ddff5e2b2d652fdcacdee9191c57"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/CharlesJS/CSAuthSample","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesJS%2FCSAuthSample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesJS%2FCSAuthSample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesJS%2FCSAuthSample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesJS%2FCSAuthSample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CharlesJS","download_url":"https://codeload.github.com/CharlesJS/CSAuthSample/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesJS%2FCSAuthSample/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280241898,"owners_count":26296868,"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-21T02:00:06.614Z","response_time":58,"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":["apple","macos","macos-application","macos-applications","privileged-helper","swift"],"created_at":"2025-10-21T10:17:56.410Z","updated_at":"2025-10-21T10:17:57.679Z","avatar_url":"https://github.com/CharlesJS.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"#  CSAuthSample\n\nThis is a set of libraries that will assist in writing privileged helper tools for macOS applications.\nIt is intended to be a little more up to date and easier to use than Apple's aging [EvenBetterAuthorizationSample](https://developer.apple.com/library/archive/samplecode/EvenBetterAuthorizationSample/Introduction/Intro.html).\n[Pacifist](https://www.charlessoft.com) has been using it for some time.\n\nCSAuthSample began as a port of Nathan de Vries’ [SMJobBlessXPC](https://github.com/atnan/SMJobBlessXPC), although it has been rewritten so many times that I doubt any of the original code remains.\nAt some point it was rewritten around Apple’s [BetterAuthorizationSample](https://developer.apple.com/library/archive/samplecode/BetterAuthorizationSample/Introduction/Intro.html).\nMore recently it has been rewritten around Apple's [EvenBetterAuthorizationSample](https://developer.apple.com/library/archive/samplecode/EvenBetterAuthorizationSample/Introduction/Intro.html).\nThis latest rewrite uses NSXPCConnection, and thus requires the helper to be written in either Objective-C or Swift.\nFor users that require the helper to be in straight C, the older code using libxpc is available in the 'c-helper' branch.\n\nThe current code assumes the front-end application will be written in Swift.\nEither Objective-C or Swift can be used to write the helper tool.\nIf you wish to use Swift for the full stack, a Swift package is available.\nFor your convenience, there is an example app project included that will show you how to write a Swift-based helper app and corresponding client app.\n\nFor those who like to be on the cutting edge, a Swift-only rewrite which uses Swift Concurrency is available under the `swift-concurrency` branch.\n\nCSAuthSample is free to use under the terms of the MIT license.\n\nEnjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlesjs%2Fcsauthsample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharlesjs%2Fcsauthsample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlesjs%2Fcsauthsample/lists"}