Skip to content

Add Attestify (Issue Certificate action)#21209

Open
novadyne-hq wants to merge 7 commits into
PipedreamHQ:masterfrom
novadyne-hq:add-attestify-components
Open

Add Attestify (Issue Certificate action)#21209
novadyne-hq wants to merge 7 commits into
PipedreamHQ:masterfrom
novadyne-hq:add-attestify-components

Conversation

@novadyne-hq

@novadyne-hq novadyne-hq commented Jun 21, 2026

Copy link
Copy Markdown

Adding Attestify

This PR adds a new app integration: Attestify — issue tamper-evident, cryptographically-verifiable certificates. Each certificate gets a permanent public verify page anyone can check (Ed25519-signed, so it can't be forged after issuance). The service is free with no signup, so the app declares no auth.

Components

  • Issue Certificate action — wraps POST https://attestify.novadyne.ai/cert/issue. Takes issuer, course/credential, recipient name (+ optional email and completion date) and returns the cert_id, the permanent public verify_url, and the Ed25519-signed_record_url.

Notes

  • No credentials required (Attestify needs no API key / no signup), so attestify.app.mjs declares no auth.
  • The action sends a User-Agent: pipedream-attestify/0.0.1 so Pipedream-sourced issuances are identifiable.
  • Docs: https://attestify.novadyne.ai
  • Happy to add an app logo or adjust anything per the component guidelines — let me know.

Summary by CodeRabbit

  • New Features
    • Added Attestify integration to issue tamper-evident, cryptographically verifiable certificates with permanent public verification pages
    • Introduced an “Issue Certificate” action supporting recipient details and optional completion date (validated when provided)
    • Added new Attestify app interface to submit certificate-issuance requests (issuer/course/recipient, optional recipient email)

@vercel

vercel Bot commented Jun 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pipedream-docs-redirect-do-not-edit Ignored Ignored Jun 21, 2026 5:34am

Request Review

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified.

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:

@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 03dccb20-b818-4f5b-864f-c92fd5b98ce8

📥 Commits

Reviewing files that changed from the base of the PR and between 23f5c38 and b09b4be.

📒 Files selected for processing (2)
  • components/attestify/actions/issue-certificate/issue-certificate.mjs
  • components/attestify/attestify.app.mjs

📝 Walkthrough

Walkthrough

A new @pipedream/attestify component package is introduced. It defines a no-auth Pipedream app with prop definitions and an axios-based HTTP client targeting the Attestify API. A single "Issue Certificate" action validates optional date input, constructs the API payload, calls POST /cert/issue, and returns normalized certificate fields.

Changes

Attestify Integration

Layer / File(s) Summary
App definition, HTTP client, and package manifest
components/attestify/attestify.app.mjs, components/attestify/package.json
Declares the ESM package manifest with @pipedream/platform dependency, defines the Pipedream app with no-auth, adds propDefinitions for all five certificate inputs (issuer, course, recipientName, optional recipientEmail, optional completionDate), and implements _baseUrl, _request (with pipedream User-Agent), and issueCertificate (POST /cert/issue).
Issue Certificate action and docs
components/attestify/actions/issue-certificate/issue-certificate.mjs, components/attestify/README.md, components/attestify/actions/issue-certificate/README.md
Declares action metadata and props wired to app propDefinitions, validates completionDate against YYYY-MM-DD, constructs the recipient and request body, calls this.app.issueCertificate, throws on non-OK response or missing cert, sets $summary with cert ID and verify URL, and returns normalized certificate fields. Component and action READMEs document inputs and outputs.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • mariano-pd
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding a new Attestify app integration with an Issue Certificate action.
Description check ✅ Passed The description covers the key aspects of the integration and addresses most template requirements, including versioning and new app checklist items.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/attestify/actions/issue-certificate/issue-certificate.mjs`:
- Line 7: In the component description string (the long sentence starting with
"Issue a tamper-evident..."), change the documentation link text from "[See the
docs]" to "[See the documentation]" while keeping the URL the same. This ensures
compliance with the required documentation-link wording format for component
descriptions.
- Around line 9-10: The action object in issue-certificate.mjs is missing the
required annotations metadata block that provides semantic hints for the action
contract. Add an annotations property to the action object (alongside type and
props) that includes the three required semantic hint fields: readOnlyHint,
destructiveHint, and openWorldHint. Since this action makes external API calls
to issue certificates, set openWorldHint to true as specified in the coding
guidelines.

In `@components/attestify/attestify.app.mjs`:
- Around line 36-37: The completionDate description property (around line 36-37)
specifies the format as YYYY-MM-DD but lacks a concrete date example for
AI-agent clarity. Update the description string to include an inline concrete
example date (such as 2026-06-21) alongside the format specification to make it
clearer for automated agents consuming this schema.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: bd456139-5bda-42a6-a522-87ed938b8bb4

📥 Commits

Reviewing files that changed from the base of the PR and between 607e2c2 and 23f5c38.

📒 Files selected for processing (5)
  • components/attestify/README.md
  • components/attestify/actions/issue-certificate/README.md
  • components/attestify/actions/issue-certificate/issue-certificate.mjs
  • components/attestify/attestify.app.mjs
  • components/attestify/package.json

Comment thread components/attestify/actions/issue-certificate/issue-certificate.mjs Outdated
Comment thread components/attestify/attestify.app.mjs Outdated
@novadyne-hq

Copy link
Copy Markdown
Author

Thanks for the review! Addressed the CodeRabbit findings:

  • Description now ends with [See the documentation](https://attestify.novadyne.ai) (correct wording).
  • Added the required annotations block to the action (readOnlyHint: false, destructiveHint: false, openWorldHint: true for the external API call).
  • Added a concrete date example to the completionDate prop description.

Note: Attestify needs no auth (free, no signup), so the app declares no credentials — happy to add an app logo or adjust anything else per the guidelines. Thanks!

@ashwins01 ashwins01 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @novadyne-hq, thank you for your contribution! Attestify is not an app currently supported by pipedream, would you mind raising an integration request at https://github.com/PipedreamHQ/pipedream/issues/new?template=app---service-integration.md so we can review, test and get changes related to Attestify released one a base integration is in place ?

@ashwins01 ashwins01 moved this from Ready for PR Review to Blocked in Component (Source and Action) Backlog Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

User submitted Submitted by a user

Development

Successfully merging this pull request may close these issues.

5 participants