{"id":18898605,"url":"https://github.com/rack-app/rack-app-example-escher","last_synced_at":"2026-03-01T12:30:21.154Z","repository":{"id":147923377,"uuid":"51286996","full_name":"rack-app/rack-app-example-escher","owner":"rack-app","description":null,"archived":false,"fork":false,"pushed_at":"2016-02-08T08:51:30.000Z","size":2,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T08:47:15.454Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rack-app.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-08T08:46:09.000Z","updated_at":"2020-11-03T18:11:34.000Z","dependencies_parsed_at":"2023-04-28T20:22:47.184Z","dependency_job_id":null,"html_url":"https://github.com/rack-app/rack-app-example-escher","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rack-app%2Frack-app-example-escher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rack-app%2Frack-app-example-escher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rack-app%2Frack-app-example-escher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rack-app%2Frack-app-example-escher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rack-app","download_url":"https://codeload.github.com/rack-app/rack-app-example-escher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239879312,"owners_count":19712176,"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","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":"2024-11-08T08:43:16.739Z","updated_at":"2026-03-01T12:30:21.103Z","avatar_url":"https://github.com/rack-app.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Escher Auth REST App with Rack::App \n\nEscher is a stateless HTTP request signing spec to allow secure authorization and request validation. \nIt adds an additional security layer and an authentication layer over HTTPS. \nThe algorithm is based on Amazon’s AWS4 authentication. \nThe goal was implementing a protocol where request’s integrity is validated. \nIt is impossible to be modified without knowing the secret.\n\nEscher is great for creating secure REST API servers, both the client side request signing process, \nand the server side validation and authentication processes are implemented. \n\nThe protocol also provides a solution for presigning URLs with expiration time.\n\n## Install \n\n  $ bundle install \n  \n  $ rackup\n   \n  $ sh ping.sh","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frack-app%2Frack-app-example-escher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frack-app%2Frack-app-example-escher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frack-app%2Frack-app-example-escher/lists"}