{"id":15748468,"url":"https://github.com/eps1lon/poe-db","last_synced_at":"2026-03-03T20:33:32.870Z","repository":{"id":66070055,"uuid":"95228819","full_name":"eps1lon/poe-db","owner":"eps1lon","description":"relational db backend for Path of Exile's Content.ggpk","archived":false,"fork":false,"pushed_at":"2019-01-02T04:45:35.000Z","size":2017,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-25T02:29:01.529Z","etag":null,"topics":["database","pathofexile"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/eps1lon.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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}},"created_at":"2017-06-23T14:41:03.000Z","updated_at":"2020-07-07T09:16:30.000Z","dependencies_parsed_at":"2023-02-20T19:00:35.866Z","dependency_job_id":null,"html_url":"https://github.com/eps1lon/poe-db","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/eps1lon/poe-db","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eps1lon%2Fpoe-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eps1lon%2Fpoe-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eps1lon%2Fpoe-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eps1lon%2Fpoe-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eps1lon","download_url":"https://codeload.github.com/eps1lon/poe-db/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eps1lon%2Fpoe-db/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30058306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["database","pathofexile"],"created_at":"2024-10-04T05:41:51.092Z","updated_at":"2026-03-03T20:33:32.852Z","avatar_url":"https://github.com/eps1lon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# poe-db\n\n[![Build Status](https://travis-ci.org/eps1lon/poe-db.svg?branch=master)](https://travis-ci.org/eps1lon/poe-db)\n\nRelational database for `Content.ggpk` from Path of Exile@3.3.0.\n\n## Requirements\n\npython 3.4 for PyPoe\n\n## install\n\n```bash\n$ git clone --recursive https://github.com/eps1lon/poedb.git@1.3.0\n\n# run in a python 3.4 virtualenv for PyPoE:\n$ yarn install --production\n\n# you might need to config PyPoE to find the Content.ggpk\n$ yarn run load-content\n\n# Be sure to set the necessary environment variables for the connection\n$ yarn run db:build\n```\n\n## Database Setup\n\n```sql\n# just to display what priviliges are needed\nCREATE USER 'poedb'@'localhost' IDENTIFIED BY '***';\nCREATE DATABASE poedb;\nGRANT USAGE ON *.* TO 'poedb'@'localhost';\nGRANT ALL PRIVILEGES ON `poedb`.* TO 'poedb'@'localhost';\n```\n\n### environment variables\n\nThe following variables have to be set as environment variables in order to\nauthenticate to the database (alternatively follow the instructions in `.env.example`):\n\n* `POEDB_HOST`\n* `POEDB_USER` needs the following privileges\n  * drop/create host wide for `db:create`, `db:drop`\n  * all read/write privileges for the specified db\n* `POEDB_PW`\n* `POEDB_DB`\n\n# Endpoints\n\n## `/describe/:model_name`\n\n* `:model_name` - in CamelCase singular\n\n```javascript\n{\n  attributes: Attribute[],\n  belongsTo: Association[],\n  hasMany: Association[],\n  belongsToMany: Association[],\n  asCollection: string, // table name\n}\n```\n\n## `/find/:model_name`\n\n\u003c!-- see src/controller/find --\u003e\n\n* query params:\n  * `page` - type: number, default: 1\n  * `page_size` - type: number, default: 20\n  * `order` - type: `[AttributeName, 'ASC' | 'DESC'][]`\n  * `withDescription` - includes the `/describe` endpoint type: boolean, default: false\n  * `attributes` - whitelist, type: `AttributeName[]`\n  * `where` - plain js object, see http://docs.sequelizejs.com/manual/tutorial/querying.html#where\n\n### `/find/:model_name/:id`\n\n* `:model_name` - in CamelCase singular\n* `:id` - primary key\n* includes belongsTo and belongsToMany associations\n\n```javascript\n{\n  count: 1,\n  rows: ModelInstance,\n}\n```\n\n### `/find/:model_name`\n\n* `:model_name` - in CamelCase plural\n* includes belongsTo associations\n\n```javascript\n// Returns\n{\n  count: number,\n  rows: ModelInstance[],\n}\n```\n\n## `/describe/:model_name`\n\n* `:model_name` - in CamelCase singular\n\n```javascript\n// Returns\n{\n  attributes: Attribute[],\n  belongsTo: Association[],\n  hasMany: Association[],\n  belongsToMany: Association[],\n  asCollection: string, // table name\n}\n```\n\n## `/scoped/:model_name/:scope_name`\n\n* `:model_name` - in CamelCase singular\n* `:scope_name` - defined scope for this specific model\n  \u003c!-- see src/controller/find --\u003e\n* query params:\n  * `page` - type: number, default: 1\n  * `page_size` - type: number, default: 20\n  * `where` - plain js object, see http://docs.sequelizejs.com/manual/tutorial/querying.html#where\n\n```javascript\n// Returns\nModelInstance[]\n```\n\n# dev environment\n\nThe repository should contain the latest models. If they are out of date\nthe package contains scripts to generate new ones. To do so run the following\ncommands:\n\n```bash\n$ yarn install\n$ yarn run dev:parseContent\n$ yarn run dev:models\n```\n\nRemember to add and run migrations if necessary.\n\n## Patch workflow\n\nDev workflow in case the spec in Content.ggpk changes (i.e. a patch hits):\nWait for spec update in OmegaK2/PyPoE or change submodule and file a PR.\n\n```bash\n$ yarn run load-content\n$ yarn run dev:models --poe $POE_CLIENT_VERSION\n$ yarn run db:schema\n$ yarn run db:migration:generate # adjust for renames\n# verify generated migrations use diff between models as a helper\n$ yarn run db:migration:run up\n$ yarn run db:insert\n$ yarn run test # mainly for scope tests\n```\n\n### models\n\nThe models in src/models/base are auto generated. For specific scopes,\ngetters, setters etc create or update the specific files in the corresponding folders.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feps1lon%2Fpoe-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feps1lon%2Fpoe-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feps1lon%2Fpoe-db/lists"}