Programming Quotes · Capability

Programming Quotes API — Authentication

Programming Quotes — Authentication. 1 operation. Lead operation: Programming Quotes Issue Auth Token. Self-contained Naftiko capability covering one Programming Quotes business surface.

Run with Naftiko Programming QuotesAuthenticationOpen Source

What You Can Do

POST
Issueauthtoken — Exchange credentials for a JWT bearer token.
/v1/auth/token

MCP Tools

issue-auth-token

Exchange email and password for a JWT bearer token.

Capability Spec

programming-quotes-authentication.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Programming Quotes API — Authentication"
  description: >-
    Programming Quotes — Authentication. 1 operation. Lead operation: Programming
    Quotes Issue Auth Token. Self-contained Naftiko capability covering one
    Programming Quotes business surface.
  tags:
    - Programming Quotes
    - Authentication
    - Open Source
  created: "2026-05-30"
  modified: "2026-05-30"

binds:
  - namespace: env
    keys:
      PROGRAMMING_QUOTES_EMAIL: PROGRAMMING_QUOTES_EMAIL
      PROGRAMMING_QUOTES_PASSWORD: PROGRAMMING_QUOTES_PASSWORD

capability:

  # ── 1. Consumes — upstream auth surface ────────────────────────────────
  consumes:
    - type: http
      namespace: "programming-quotes-authentication"
      baseUri: "https://programming-quotes-api.azurewebsites.net/api"
      description: "Programming Quotes API — Authentication business capability. Self-contained, no shared references."
      resources:
        - name: "auth-token"
          path: "/auth/token"
          operations:
            - name: "issueAuthToken"
              method: POST
              description: "Exchange email and password for a JWT bearer token. Auto-registers new emails."
              inputParameters:
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Credentials payload `{email, password}`."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  # ── 2. REST exposer ────────────────────────────────────────────────────
  exposes:
    - type: rest
      namespace: "programming-quotes-authentication-rest"
      port: 8080
      description: "REST adapter for Programming Quotes — Authentication. One Spectral-compliant resource per consumed operation, prefixed with /v1."
      resources:
        - path: "/v1/auth/token"
          name: "auth-token"
          description: "REST surface for the auth token exchange."
          operations:
            - method: POST
              name: "issueAuthToken"
              description: "Exchange credentials for a JWT bearer token."
              call: "programming-quotes-authentication.issueAuthToken"
              with:
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."

    # ── 3. MCP exposer ──────────────────────────────────────────────────
    - type: mcp
      namespace: "programming-quotes-authentication-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Programming Quotes — Authentication. One tool per consumed operation, routed inline through this capability's consumes block."
      tools:
        - name: "issue-auth-token"
          description: "Exchange email and password for a JWT bearer token."
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "programming-quotes-authentication.issueAuthToken"
          with:
            "body": "tools.body"
          outputParameters:
            - type: object
              mapping: "$."