{"id":22727514,"url":"https://github.com/pagopa/io-sign","last_synced_at":"2026-05-27T15:00:45.292Z","repository":{"id":63246019,"uuid":"560799353","full_name":"pagopa/io-sign","owner":"pagopa","description":"IO platform feature that allows the signing of PDF documents","archived":false,"fork":false,"pushed_at":"2026-05-19T15:44:04.000Z","size":8643,"stargazers_count":6,"open_issues_count":19,"forks_count":7,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-05-19T18:48:48.439Z","etag":null,"topics":["io","io-sign"],"latest_commit_sha":null,"homepage":"https://firma.io.italia.it/","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pagopa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":"publiccode.yml","codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-02T09:46:10.000Z","updated_at":"2026-05-19T15:52:32.000Z","dependencies_parsed_at":"2023-10-14T15:55:31.809Z","dependency_job_id":"45d6a0fb-ee66-43a4-8b12-9effb9b33c5e","html_url":"https://github.com/pagopa/io-sign","commit_stats":{"total_commits":102,"total_committers":7,"mean_commits":"14.571428571428571","dds":0.5294117647058824,"last_synced_commit":"43a028435b750707bb8e71276fc2459f7d06e16b"},"previous_names":[],"tags_count":226,"template":false,"template_full_name":null,"purl":"pkg:github/pagopa/io-sign","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagopa%2Fio-sign","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagopa%2Fio-sign/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagopa%2Fio-sign/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagopa%2Fio-sign/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pagopa","download_url":"https://codeload.github.com/pagopa/io-sign/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagopa%2Fio-sign/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33570993,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"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":["io","io-sign"],"created_at":"2024-12-10T17:12:26.109Z","updated_at":"2026-05-27T15:00:45.248Z","avatar_url":"https://github.com/pagopa.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# io-sign ✍️\n\n[![Code Review](https://github.com/pagopa/io-sign/actions/workflows/code-review.yaml/badge.svg?branch=main)](https://github.com/pagopa/io-sign/actions/workflows/code-review.yaml)\n\n`io-sign` is the [IO platform](https://io.italia.it) _feature_ that allows citizens to sign digitally documents and contracts sent by public administration.\n\nThis repository contains the code that composes the `io-sign` back-end, that is organized into two microservices:\n\n1. `io-func-sign-issuer` that exposes the API used by public entities\n2. `io-func-sign-user` that exposes the ReST API consumed by the [IO mobile app](https://github.com/pagopa/io-app)\n\nThese services are deployed as `Azure Function App`, and use the `Node.js` Azure runtime.\n\nIt also contains `io-sign-backoffice-app` the frontend for self-care integration.\n\n## Prerequisites\n\nIn order to run the `io-sign` back-end/front-end locally you need the following tool installed on your machine.\n\n- `Node.js 20`\n- `pnpm 10.28.1`\n\nThe preferred way to set up the local environment is using [nodenv](https://github.com/nodenv/nodenv) to manage `Node.js` installation and `corepack` (included with `Node.js`) to manage the installation of `pnpm`.\n\n## Backend local development\n\nTo test the `Azure Functions` locally:\n\n1. **Setup the Environment Variables.** Create a file called `local.settings.json` in each `Azure Functions App` folder (`./apps/*`) valued according to the environment variables listed in `local.settings.json.example`.\n\n2. **Install the project.** Run from the root folder the following commands.\n\n```bash\n# to install the dependencies\npnpm\n\n# to generate the TypeScript models based on OpenAPI specs\npnpm -r run generate:api-models\n\n# to build all projects\npnpm build\n```\n\n## Frontend local development\n\nTo test the `webapp` locally:\n\n1. **Install the project (if you haven't already).** Run from the root folder the following commands.\n\n```bash\n# to install the dependencies\npnpm\n\n# to build all projects\npnpm build\n```\n\n2. **Run the Web App**. Run (from the root folder) the following command\n\n```bash\npnpm --filter io-sign-backoffice-app dev\n```\n\n## Release management\n\nThis project uses [changesets](https://github.com/changesets/changesets) to automate updating package versions, and changelogs.\n\nEach Pull Request that includes changes that require a version bump should include a `changeset` file that describe that changes.\n\nTo create a new `changeset` file run the following command from the project root:\n\n```bash\npnpm changeset\n```\n\n## Useful commands\n\nThis project uses `pnpm@10.28.1` with workspaces to manage projects and dependencies. Here is a list of useful commands to work in this repo.\n\n### Work with workspaces\n\n```bash\n# to execute COMMAND on WORKSPACE_NAME\npnpm --filter WORKSPACE_NAME run command\n\n# to execute COMMAD on all workspaces\npnpm -r run command\n\n# run unit tests on @io-sign/io-sign\npnpm --filter @io-sign/io-sign run test\n\n# run the typecheck script on all workspaces\npnpm -r run typecheck\n\n# generate the API models for all workspaces\npnpm -r run generate:api-models\n```\n\n### Add dependencies\n\n```bash\n# add a dependency to the workspace root\npnpm add turbo\n\n# add a jest as dev dependency on @io-sign/io-sign\npnpm --filter @io-sign/io-sign add -D jest\n\n# add io-ts as dependency on each workspace\npnpm -r add io-ts\n```\n\n### Build the backend deployment package (for upload on Azure)\n\nThis command generates a deployment package (`ZIP`), in the workspace folder, with bundled dependencies, ready to be deployed on Azure.\n\n```bash\npnpm --filter WORKSPACE_NAME run build:package\n\n# example\npnpm --filter io-func-sign-issuer run build:package\n```\n\n### Build the frontend deployment package (for upload on Azure)\n\nThis command generates static frontend files inside the `.next` folder which can then be uploaded to a static website:\n\n```bash\npnpm --filter io-sign-backoffice-app run build\n```\n\n## LICENSING\n\nFor detailed information regarding the licensing of this project please take\na look at the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpagopa%2Fio-sign","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpagopa%2Fio-sign","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpagopa%2Fio-sign/lists"}