{
 "categories": [
  "kindergarten-administration",
  "education",
  "public-sector"
 ],
 "deployment": "hybrid",
 "evidence": [
  {
   "date": "2026-09-13",
   "fact": "homepage",
   "note": "Opened City of Espoo page presents eVaka as the client and information system for Espoo early-childhood units, covering applications, attendance, messaging, fees, and decisions.",
   "source": "https://www.espoo.fi/en/childcare-and-education/early-childhood-education/evaka-e-service-early-childhood-education",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "vendor",
   "note": "The repository README states eVaka is governed, funded, and primarily developed by Espoo, Oulu, Tampere, and Turku (4pack), and that the development team is at the City of Espoo (voltti@espoo.fi).",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/README.md",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "license",
   "note": "The repository LICENSE states the default license for new source files is GNU Lesser General Public License v2.1 or later.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/LICENSE",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "deployment",
   "note": "README describes a web application designed for cloud deployment. Other municipalities may deploy it themselves. Espoo also hosts a public guardian e-service. That is hybrid, not a single SaaS tenant model.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/README.md",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.api.exists",
   "note": "README lists apigw as the API gateway responsible for authentication and routing requests to backend services, and service as the business-logic backend.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/README.md",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.api.kinds[0]",
   "note": "apiRouter mounts Express GET/POST/PUT/DELETE routes under /citizen, /employee, /employee-mobile, /integration, and /dev-api, and proxies authenticated calls to backend services.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/src/app.ts",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.api.auth[0]",
   "note": "Gateway source creates citizen and employee Suomi.fi SAML integrations and, when configured, employee AD SAML. Routes include /citizen/auth/sfi, /employee/auth/sfi, /employee/auth/ad, and /application/auth/saml.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/src/app.ts",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.api.auth[1]",
   "note": "router.all('/integration/{*rest}', ...) wraps the Titania integration prefix in express-basic-auth before proxying.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/src/app.ts",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.api.auth[2]",
   "note": "The apigw README states downstream calls are authenticated with JWK-signed JWTs that contain the user ID, via createAuthHeaders(user).",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/README.md",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.api.coverage",
   "note": "The opened gateway covers citizen, employee, employee-mobile, and a Basic-auth integration prefix. It is the product's own frontend API, not a published partner resource catalogue. CSRF applies to frontend API endpoints.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/src/app.ts",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.api.docs",
   "note": "Opened as the current apigw README describing enduser and internal gateways, SAML sessions, JWT downstream auth, and CSRF.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/README.md",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.extensibility.scripting[0]",
   "note": "The gateway is the documented extension point between frontends and backend services, including session cookies and CSRF for state-changing requests.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/README.md",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.extensibility.scripting[1]",
   "note": "The /integration prefix is an HTTP Basic machine path used by external systems, including a retained Titania URL rewrite.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/src/app.ts",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.rpa.ui_stack[0]",
   "note": "Espoo states eVaka works in the browser and that guardians log in with strong authentication. The page says there is no eVaka app. No UI probe was run.",
   "source": "https://www.espoo.fi/en/childcare-and-education/early-childhood-education/evaka-e-service-early-childhood-education",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "modalities.agent_docs.llms_txt",
   "note": "https://www.espoo.fi/llms.txt returned HTTP 404 on 2026-09-13.",
   "source": "https://www.espoo.fi/llms.txt",
   "tier": "scraped"
  },
  {
   "date": "2026-09-13",
   "fact": "verdict.scores.api",
   "note": "The HTTP API is real and source-inspectable, with SAML, session, JWT, and a Basic-auth integration prefix. Material limits are the missing partner OpenAPI catalogue and municipal identity or self-host operations. That is the useful-with-limits band.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/src/app.ts",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "freshness.watch[0].url",
   "note": "Opened and verified as the current Espoo English eVaka e-service page, including Suomi.fi login and 4pack development.",
   "source": "https://www.espoo.fi/en/childcare-and-education/early-childhood-education/evaka-e-service-early-childhood-education",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "freshness.watch[1].url",
   "note": "Opened and verified as the current repository README, including LGPL, 4pack governance, and the apigw/service split.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/README.md",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "freshness.watch[2].url",
   "note": "Opened and verified as the current apigw README, including SAML session storage and JWK-signed JWT downstream auth.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/README.md",
   "tier": "declared"
  },
  {
   "date": "2026-09-13",
   "fact": "freshness.watch[3].url",
   "note": "Opened and verified as the current Express apiRouter, including citizen/employee/integration routes and Suomi.fi SAML.",
   "source": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/src/app.ts",
   "tier": "declared"
  }
 ],
 "freshness": {
  "last_verified": "2026-09-13",
  "volatility": "medium",
  "watch": [
   {
    "type": "docs",
    "url": "https://www.espoo.fi/en/childcare-and-education/early-childhood-education/evaka-e-service-early-childhood-education"
   },
   {
    "type": "docs",
    "url": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/README.md"
   },
   {
    "type": "docs",
    "url": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/README.md"
   },
   {
    "type": "docs",
    "url": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/src/app.ts"
   }
  ]
 },
 "homepage": "https://www.espoo.fi/en/childcare-and-education/early-childhood-education/evaka-e-service-early-childhood-education",
 "id": "evaka",
 "license": "open-source",
 "modalities": {
  "agent_docs": {
   "llms_txt": false
  },
  "api": {
   "auth": [
    "saml",
    "http-basic",
    "jwt"
   ],
   "coverage": "partial",
   "docs": "https://raw.githubusercontent.com/espoon-voltti/evaka/master/apigw/README.md",
   "exists": true,
   "kinds": [
    "rest"
   ]
  },
  "cli": {
   "exists": "unknown"
  },
  "computer_use": {
   "issues": [],
   "viability": "unknown"
  },
  "data_access": {
   "export": [],
   "import": []
  },
  "extensibility": {
   "scripting": [
    "apigw-proxy",
    "integration-basic-auth"
   ],
   "webhooks": "unknown"
  },
  "integrations": {
   "make": "unknown",
   "n8n": "unknown",
   "power_automate": "unknown",
   "zapier": "unknown"
  },
  "mcp": {
   "first_party": "unknown",
   "third_party": [],
   "verdict": "unknown"
  },
  "rpa": {
   "drivability": "unknown",
   "notes": "No repeatable UI probe was run. Espoo's guardian product is a browser e-service with Suomi.fi strong authentication. The documented machine path is the open-source HTTP API gateway, not browser control of a municipal tenant.\n",
   "ui_stack": [
    "web-dom"
   ],
   "vendor_support": []
  },
  "sdk": {
   "exists": "unknown",
   "languages": [],
   "official": "unknown"
  }
 },
 "name": "eVaka",
 "platforms": [
  "web"
 ],
 "related": {
  "alternatives": [
   "visma-flyt-barnehage",
   "ist-everyday",
   "aula"
  ],
  "our_products": []
 },
 "schema_version": 1,
 "score_version": 1,
 "status": "active",
 "vendor": "City of Espoo",
 "verdict": {
  "best_path": "api",
  "scores": {
   "api": 5,
   "cli": null,
   "computer_use": null,
   "integrations": null,
   "mcp": null,
   "overall": 5,
   "rpa": null
  },
  "summary": "eVaka is automatable as the City of Espoo's open-source early-childhood ERP HTTP API, not as Visma Flyt Barnehage, IST Everyday, or Aula. The Espoo page presents eVaka as the client and information system for Espoo early-childhood units, used to apply for places, book attendance, message staff, and process fees and decisions. Espoo develops it with Tampere, Oulu, and Turku. The espoon-voltti/evaka repository is LGPL-2.1-or-later and names an API gateway that authenticates users and routes citizen, employee, and employee-mobile requests to backend services. Gateway source exposes REST prefixes /citizen, /employee, /employee-mobile, and /integration. Citizen and employee login use Suomi.fi SAML; employees may also use AD SAML. Downstream service calls use JWK-signed JWTs. The /integration prefix uses HTTP Basic. There is no published partner OpenAPI catalogue. A self-hosting municipality can call the same APIs the frontends use. A hosted Espoo tenant still requires municipal identity and process access. First-party MCP ownership is not established. Computer-use viability is unassessed. API scores 5 and is the best path.\n"
 }
}