This module provides basic integration functionality for initiating a HelloSign electronic signature process as well as processing event callbacks and retrieving signed documents. You can configure the API key, optional final signer info, and optional cc recipients. There doesn't appear to be any kind of Hellosign integration currently available for Drupal, although a few conversations talking about esign needs, so this will hopefully be helpful for others in addition to our shop.
Project Page: https://www.drupal.org/sandbox/camprandall/2457871
Drupal version: 7.x
GIT: git clone --branch 7.x-1.x http://git.drupal.org/sandbox/camprandall/2457871.git hellosign
Manual Reviews of other projects:
[D7] Password Encryption
| Comment | File | Size | Author |
|---|---|---|---|
| #27 | coder-results.txt | 2.2 KB | klausi |
Comments
Comment #1
camprandall commentedComment #2
PA robot commentedWe are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)
Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #3
camprandall commentedComment #4
camprandall commentedComment #5
darol100 commentedI think the only blocker in here is the line that talks about the license.
Comment #6
klausi@darol100: It is fine if people mention the license in README.txt, the only requirement is that it says GPLv2+.
Comment #7
camprandall commentedOk, thanks for the feedback! We'll get on it.
Comment #8
Anonymous (not verified) commentedThanks for the comments darol100. Additional help text has been added for the module's help page (without getting into the API's technical details too much). The licensing note has been removed from the README. The Coder comments about lines 123 and 178 have been resolved; the one for line 300 is not really applicable to this use case, unless I'm missing something.
Comment #9
PA robot commentedThere are some errors reported by automated review tools, did you already check them? See http://pareview.sh/pareview/httpgitdrupalorgsandboxcamprandall2457871git
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #10
PA robot commentedClosing due to lack of activity. If you are still working on this application, you should fix all known problems and then set the status to "Needs review". (See also the project application workflow).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #11
Anonymous (not verified) commentedThis module is ready for further review. New features have been added (including the ability to do embedded signing and configure a client ID and whether or not to run in test mode), and Pareview has been run and all relevant issues fixed.
Comment #12
profak commentedHello @camprandall!
I see next things:
anonymousany user returns blank page and multiple warnings.Example of warnings generated when i try to access "process-hellosign-callback":
From code site - it works!
Comment #13
klausiThanks @profak that sounds like useful improvements but surely not application blockers. Anything else that you found or should this be RTBC instead?
Comment #14
profak commented@klausi,
i didn't really like those 'white-screens' and multiple warnings with direct-access, and i can inject post data into "process-hellosign-callback" callback like that:
And it just passed in. Not a security issue, but i never leave such things. Just in case.
Sorry, maybe it's not a place for such minor issues?
Comment #15
David_Rothstein commentedI think part of @profak's last comment above might be related to the issue I filed a few days ago (#2563529: If there is no API key, the hash should never be considered valid), which is sort of security-related. So I think that should be fixed.
I think the other suggestions above are all very good suggestions (including the non-security-related part of the last one, which is basically that the module should return "403 Access Denied" when an attempt to visit the callback URL fails validation, rather than an empty result like it returns now). But I don't think any of them are application blockers.
I have been working with this module on a site I'm developing and have looked over the code for that. I filed a few other issues in the queue that have since been fixed, and overall the module looks quite good to me. So besides #2563529: If there is no API key, the hash should never be considered valid I'd vote for this application to be RTBC.
Comment #16
Anonymous (not verified) commentedThanks for all the review notes (and tickets)! We're blocking out some time for next week to work on this and we'll hopefully get all of these patches and suggestions integrated into the module.
Comment #17
Anonymous (not verified) commentedThanks again for all the feedback. I got some time today to update the module. The three things which David_Rothstein created issues for should now be fixed (including the security-related issue discussed above). Additionally, a number of profak's suggestions from #12 have been accounted for. The README has been rewritten, there is now a hellosign.api.php file, .gitignore has been removed from the module folder, and any failures on the process-hellosign-callback page (including when it is accessed directly as a webpage) now return an Access Denied error instead of a broken page.
Comment #18
Anonymous (not verified) commentedThe module has been tweaked to fix a bug; any existing integrations will need to be updated when they start using the new code. The "signers" array which gets passed into the module now uses email address as the key and the signer's name as the value, rather than the other way around, to avoid any potential problems which may occur if multiple signers have the same name.
Comment #19
sysosmaster commentedManual Review
The starred items (*) are fairly big issues and warrant going back to Needs Work. Items marked with a plus sign (+) are important and should be addressed before a stable project release. The rest of the comments in the code walkthrough are recommendations.
If added, please don't remove the security tag, we keep that for statistics and to show examples of security problems.
This review uses the Project Application Review Template.
Comment #20
sysosmaster commentedComment #21
Anonymous (not verified) commentedThanks for the feedback! We'll be sure to integrate these improvements as soon as we can.
Comment #22
Anonymous (not verified) commentedThe HelloSign PHP SDK is now being checked for during runtime using hook_requirements().
For documentation of account setup, I'm not really sure what else to say that isn't already in the README. Account creation and such is all just signing up for HelloSign's external service (since this is just an integration module). After signing up, HelloSign gives you an API Key and Client ID which this module then uses. The settings are currently documented in the README, which also describes how to generate a Client ID since that isn't assigned to you during HelloSign account creation.
Thanks for the input!
Comment #23
mikeegouldingA new function has been added to allow the cancelation of pending signature requests. This should be pretty useful for anyone that has a request with that need. HelloSign queues up cancelation requests and sends a callback event after deletion.
Comment #24
bhavesh.rohida commented1)The variables "hellosign_api_key", "hellosign_client_id", "hellosign_cc_emails" and "hellosign_test_mode" are configuration variables and should be deleted on module un-installation. Check hook_unistall().
2) Its good if you can include all the code necessary to run the administrative interface in .admin.inc file.
By convention .module files should contains only those functions which are implementation of hooks.
Comment #25
kscheirerAssigning to myself for a review, I hope to use this module on a production site either way :)
Comment #26
kscheirerNon-blocking issues:
Consider documenting which portions of the HelloSign API are available through this module, and which features are not. Some additional API hooks could be useful as well. Maybe hook_hellosign_request_alter() to allow modifications to a signature request before it is sent out.
Otherwise very solid module!
Comment #27
klausiReview of the 7.x-1.x branch (commit 20a4ee0):
This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.
manual review:
Otherwise looks good to me.
Thanks for your contribution, Clint!
I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.
Here are some recommended readings to help with excellent maintainership:
You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!
Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.
Thanks to the dedicated reviewer(s) as well.