Skip to content

PPC2-7113: Add Unified Upload API (v2.1) Tutorial#340

Merged
ajaykumarprocore merged 23 commits intomainfrom
PPC2-7113-unified-upload-tutorial
Mar 26, 2026
Merged

PPC2-7113: Add Unified Upload API (v2.1) Tutorial#340
ajaykumarprocore merged 23 commits intomainfrom
PPC2-7113-unified-upload-tutorial

Conversation

@ajaykumarprocore
Copy link
Contributor

@ajaykumarprocore ajaykumarprocore commented Mar 19, 2026

Summary

  • Adds a new tutorial page for the Unified Upload API (v2.1) at /tutorial-unified-uploads
  • Covers the unified three-step workflow (POST → PUT → PATCH) for both single-part and multi-part uploads
  • Includes curl examples with sample request/response bodies for all endpoints (POST, GET status, GET URL, GET part URL, PATCH)
  • Documents key constraints: 100 MB max part size, 10,000 max parts, URL expiration, ETag ordering
  • Lists upcoming features (malware scan, checksum verification, extended analytics)
  • Adds navigation entry under "Product Guides: Documents & Files"

Test plan

  • Verify the tutorial page renders correctly via Jekyll (bundle exec jekyll serve)
  • Confirm navigation entry appears under "Documents & Files" section
  • Review curl examples for accuracy against the live v2.1 API
  • Verify all internal links resolve correctly

Made with Cursor

- Replace S3/AWS-specific URLs with Procore storage proxy pattern
- Remove cloud-specific headers (x-amz-content-sha256, content-md5) from
  sample responses and PUT examples — only Content-Length remains
- Add prominent callout that presigned URLs and headers are opaque and
  must be copied in their entirety without parsing or assertions
- Update Important Considerations to reinforce URLs/headers are subject
  to change without notice
- Clarify hash computation is for the POST request body, not PUT headers

Made-with: Cursor
@ajaykumarprocore
Copy link
Contributor Author

ajaykumarprocore commented Mar 24, 2026

@yoasyo25 & @cynthiaxhe - I'm ready to publish this page however, I need some help in keeping this page hidden from public and only accessible for the users in the feature flag.

"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"md5": "d41d8cd98f00b204e9800998ecf8427e"
}'
```
Copy link
Contributor

Choose a reason for hiding this comment

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

When I make a curl request following this format I get a Validation failed: segments: Segments is required error. Is segments a required field?

Image

Copy link
Contributor Author

Choose a reason for hiding this comment

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

segment is a required field

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@cynthiaxhe - can you provide this info?

@ajaykumarprocore
Copy link
Contributor Author

Addressing the comments now

@ajaykumarprocore
Copy link
Contributor Author

Resolved all open comments - @yoasyo25 & @cynthiaxhe take a look please.

yoasyo25
yoasyo25 previously approved these changes Mar 26, 2026
Copy link
Contributor

@yoasyo25 yoasyo25 left a comment

Choose a reason for hiding this comment

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

Looks good to me.
Couple of suggestions.

  • Consider adding a clarification that file_size and part_size need to be in bytes.
  • Consider using double quotes in all instances where ${access_token} is set in case a developer copy pastes the curl request.

@ajaykumarprocore ajaykumarprocore merged commit d27e27e into main Mar 26, 2026
3 checks passed
@ajaykumarprocore ajaykumarprocore deleted the PPC2-7113-unified-upload-tutorial branch March 26, 2026 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants