{"id":25562681,"url":"https://github.com/fixthestatusquo/proca-server","last_synced_at":"2025-09-01T14:32:46.706Z","repository":{"id":152895153,"uuid":"360283701","full_name":"fixthestatusquo/proca-server","owner":"fixthestatusquo","description":"Proca server, SDKs and services","archived":false,"fork":false,"pushed_at":"2025-04-09T15:05:05.000Z","size":7156,"stargazers_count":6,"open_issues_count":82,"forks_count":5,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-09T16:23:50.768Z","etag":null,"topics":["elixir","typescript"],"latest_commit_sha":null,"homepage":"https://proca.app","language":"Elixir","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/fixthestatusquo.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":"2021-04-21T19:28:30.000Z","updated_at":"2025-04-09T15:05:10.000Z","dependencies_parsed_at":"2024-05-15T20:58:32.791Z","dependency_job_id":null,"html_url":"https://github.com/fixthestatusquo/proca-server","commit_stats":null,"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fixthestatusquo%2Fproca-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fixthestatusquo%2Fproca-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fixthestatusquo%2Fproca-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fixthestatusquo%2Fproca-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fixthestatusquo","download_url":"https://codeload.github.com/fixthestatusquo/proca-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248536113,"owners_count":21120681,"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":["elixir","typescript"],"created_at":"2025-02-20T19:48:48.735Z","updated_at":"2025-04-12T07:37:55.314Z","avatar_url":"https://github.com/fixthestatusquo.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\n\n   ,,\\\\\\\\\\\\,,\n  ,\\\\\\\\\\\\\\\\\\\\\\\n ▲▲▲▲▲▲\\\\\\\\\\\\\\\\  FIX THE STATUS QUO \n▲▲▲▲▲▲▲▲\\\\\\\\\\\\`  PROCA SERVER v3\n▼▼▼▼▼▼▼▼\\\\\\\\\\`   \n ▼▼▼▼▼▼\\\\\\^``    https://proca.app\n\n```\n\n# Proca server \u0026 satelite packages\n\n## About this repository\n\nthe vast majority of this repo is the [elixir server](./proca). However, we have put as well some client api code that often needs to stay in sync with the server.\n\n- Monorepo for [Proca server](https://docs.proca.app)\n- SDK libraries in Typescript and Javascript, and common microservices (Managed by Lerna, JS monorepo manager)\n\n- Included packages:\n  - proca - the core proca api server and processing engine\n  - sdk/api - thin GraphQL api client\n  - sdk/queue - TS library for working with action message queues\n  - sdk/crypto - TS library for working with encryption of personal information\n  - sdk/cli-py - CLI tool to manage the server\n  - service/*-sync - sync-to-CRM tools\n\nTo add a new repository into this one, use `lerna import` tool. It will import all the commit history. Recommended way is:\n\n```\nyarn lerna import --flatten --dest service ../path/to/service-repo-on-disk\n```\nMake sure the dir name of repo is the same as one you want to be created under `service/`\n\n### Caveats \n\n1. Proca server is an Elixir project and tasks for it are run using `mix` tool. It contains `package.json` so lerna will treat it as a project; however, it is set to private and will not be published to npm repositories.\n\n2. You need to use Yarn and not NPM, as this is our choice and Yarn devs did not bother to implement lifecycle events in the same way as NPM `¯\\_(ツ)_/¯`. We are using yarn.\n\n## Available top level commands\n\nWord of warning: NPM 7 changed the lifecycle evens most notably splitting the `prepublish` into `prepare` and `prepareOnly`. However, Yarn and Lerna differ. Lerna uses two lifecycle events: `bootstrap` and `publish`. Yarn uses a simpler events model so `install` runs `preinstall`, `install`, `postinstall`, `prepublish`, `prepare`.\n\n\n- `yarn lerna bootstrap` - installs, inter-links and compiles dependencies in all projects\n- `yarn lerna publish` - publishes all packages (and bumps versions)\n- `yarn test` runs tests\n\n### lifecycle details\n\n- `yarn lerna bootstrap` runs\n  - npm install all external dependencies of each package.\n  - Symlink together all Lerna packages that are dependencies of each other.\n  - npm run prepublish in all bootstrapped packages (unless --ignore-prepublish is passed).\n  - npm run prepare in all bootstrapped packages.\n\n## Build systems\n\n- lerna manages interdependencies, especially in JS projects \n  - yarn (not npm) for individual packages\n    - make - used by AWS SAM in lambda projects\n  - mix - builder for Elixir\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffixthestatusquo%2Fproca-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffixthestatusquo%2Fproca-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffixthestatusquo%2Fproca-server/lists"}