{"id":47009392,"url":"https://github.com/internetee/auction_center","last_synced_at":"2026-03-11T20:39:52.187Z","repository":{"id":37451075,"uuid":"145989788","full_name":"internetee/auction_center","owner":"internetee","description":"Estonian Internet Foundation's software for auctioning domain names","archived":false,"fork":false,"pushed_at":"2026-03-11T06:33:51.000Z","size":32797,"stargazers_count":9,"open_issues_count":95,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-03-11T12:53:57.872Z","etag":null,"topics":["auction","domain"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/internetee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-08-24T12:38:44.000Z","updated_at":"2026-02-13T10:20:26.000Z","dependencies_parsed_at":"2024-03-05T13:42:58.514Z","dependency_job_id":"e3487d71-7df1-4ea7-b564-e8a2bb8a5155","html_url":"https://github.com/internetee/auction_center","commit_stats":null,"previous_names":[],"tags_count":172,"template":false,"template_full_name":null,"purl":"pkg:github/internetee/auction_center","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetee%2Fauction_center","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetee%2Fauction_center/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetee%2Fauction_center/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetee%2Fauction_center/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/internetee","download_url":"https://codeload.github.com/internetee/auction_center/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetee%2Fauction_center/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30399657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T18:46:22.935Z","status":"ssl_error","status_checked_at":"2026-03-11T18:46:17.045Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["auction","domain"],"created_at":"2026-03-11T20:39:51.950Z","updated_at":"2026-03-11T20:39:52.175Z","avatar_url":"https://github.com/internetee.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Auction center\n[![Maintainability](https://qlty.sh/gh/internetee/projects/auction_center/maintainability.svg)](https://qlty.sh/gh/internetee/projects/auction_center)\n[![Code Coverage](https://qlty.sh/gh/internetee/projects/auction_center/coverage.svg)](https://qlty.sh/gh/internetee/projects/auction_center)\n\nSoftware for managing TLD domain auctions\n\n## Setup\n\n1. Run `bin/setup`\n2. Configure database in `config/database.yml` according to your needs\n3. Adjust configuration variables in `config/customization.yml`.\n4. Run `bundle exec rake db:setup`\n\n## Default user account\n\nBy default, the application creates an administrator user account that should be used only to create new user accounts, and then deleted.\n\n```\nemail: administrator@auction.test\npassword: password\n```\n\n## API\n\nSystem provides auction API endpoint \u0026 self-health check API endpoint.\n\n### Auction API\nAuction center exposes list of current auctions as JSON api. Time reported in `ends_at` and `starts_at` are always in UTC.\n\n```\nRequest:\nGET /auctions HTTP/1.1\nAccept: appliction/json\n\nResponse:\nHTTP/1.1 200\nContent-Type: application/json\n\n[\n  {\n    \"id\": \"1b3ee442-e8fe-4922-9492-8fcb9dccc69c\",\n    \"domain_name\": \"auction.test\",\n    \"starts_at\": \"2019-02-23T22:00:00.000Z\"\n    \"ends_at\": \"2019-02-24T22:00:00.000Z\"\n}\n]\n```\n\n### Health check API\n\nDocumentation on health check API is available at project WiKi [here](https://github.com/internetee/auction_center/wiki/Health-check-API).\n## Settings\n\nThere are certain settings stored in the database that are used for the application logic. For example, the currency in which all auctions are conducted. An administrator can change these settings in /admin/settings page.\n\n## Jobs\n\nTo send out emails and perform other asynchronous tasks, we use a background processing with PostgreSQL as queue backend. To start an executor, use `bundle exec rails jobs:work`.\n\nPart of running the application according to EIS business rules includes creating new auctions at the beginning of the day. Jobs are scheduled outside of the application, as the exact times are no concern of the application.\n\n## Audits\n\nDue to various regulatory requirements, all database tables are audited according to the following procedure:\n\n1. Changes in `public.users` table are recorded into audit.users. Audit records `action` `old_value`, `new_value`, `recorded_at` time according to postgres time zone and `object_id` which corresponds to the primary key of data in `users`.\n2. History of each object is visible in the UI for the administrator.\n3. Audit data is never deleted, even if the original object is. For example, if you destroy user with id `123`, it's history can still be accessed under `/admin/users/123/versions`.\n\n### Adding new database table to audits\n\n1. Create a migration similar to [AuditUsersTable](db/migrate/20180921084531_audit_users_table.rb)\n2. Create a new audit model like [Audit::User](app/models/audit/user.rb).\n   Make sure to set self.table_name to `audit.your_table`\n3. Add auditable concern to administrator routes:\n   ```ruby\n   namespace :admin, constraints: Constraints::Administrator.new do\n     resources posts, concerns: [:auditable]\n   end\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetee%2Fauction_center","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finternetee%2Fauction_center","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetee%2Fauction_center/lists"}