#sdk #contain #time #alfresco #spaghetti

alfresco-sdk

Some tests that may or may not continue being developed into a SDK for alfresco. Contains spaghetti code and should not be used by anyone, it's shit.

4 releases

0.1.3 Jan 15, 2024
0.1.2 Jan 9, 2024
0.1.1 Jan 9, 2024
0.1.0 Jan 8, 2024

#1823 in Web programming

MIT license

82KB
2K SLoC

Alfresco Rust SDK

This tool is currently in development to address my personal needs. While I intend to eventually make it cover all of Alfresco's REST API endpoints, I do not plan to put on any significant effort in thoroughly testing it to ensure full functionality—at least not yet. My testing will be limited to what is required for my current projects, focusing on ensuring it works for my specific use case. Consequently, it may not function for different use cases.

This is my first time writing Rust, so it will 100% contain spaghetti code.

Compilation

If you haven't already, download rust:

curl -sSf https://static.rust-lang.org/rustup.sh | sh
// TODO: Document compilation steps

API coverage

Authentication API

  • Models
  • Authentication
    • POST /tickets
    • GET /tickets/-me-
    • DELETE /tickets/-me-
  • Documentation

Core API

  • TODO: Proper status code handling
  • Models
  • Audit
    • GET /audit-applications
    • GET /audit-applications/{auditApplicationId}
    • PUT /audit-applications/{auditApplicationId}
    • GET /audit-applications/{auditApplicationId}/audit-entries
    • DELETE /audit-applications/{auditApplicationId}/audit-entries
    • GET /audit-applications/{auditApplicationId}/audit-entries/{auditEntryId}
    • DELETE /audit-applications/{auditApplicationId}/audit-entries/{auditEntryId}
    • GET /nodes/{nodeId}/audit-entries
  • Actions
    • GET /nodes/{nodeId}/action-definitions
    • GET /action-definitions
    • GET /action-definitions/{actionDefinitionId}
    • POST /action-executions
  • Activities
    • GET /people/{personId}/activities
  • Comments
    • GET /nodes/{nodeId}/comments
    • POST /nodes/{nodeId}/comments
    • PUT /nodes/{nodeId}/comments/{commentId}
    • DELETE /nodes/{nodeId}/comments/{commentId}
  • Downloads
    • POST /downloads
    • GET /downloads/{downloadId}
    • DELETE /downloads/{downloadId}
  • Favorites
    • GET /people/{personId}/favorites
    • POST /people/{personId}/favorites
    • GET /people/{personId}/favorites/{favoriteId}
    • DELETE /people/{personId}/favorites/{favoriteId}
  • Networks
    • GET /people/{personId}/networks
    • GET /people/{personId}/networks/{networkId}
    • GET /networks/{networkId}
  • Nodes
    • GET /nodes/{nodeId}
    • PUT /nodes/{nodeId}
    • DELETE /nodes/{nodeId}
    • GET /nodes/{nodeId}/children
    • POST /nodes/{nodeId}/children (File upload)
    • POST /nodes/{nodeId}/children (General node creation)
    • POST /nodes/{nodeId}/copy
    • POST /nodes/{nodeId}/lock
    • POST /nodes/{nodeId}/unlock
    • POST /nodes/{nodeId}/move
    • GET /nodes/{nodeId}/content
    • PUT /nodes/{nodeId}/content
    • POST /nodes/{nodeId}/secondary-children
    • GET /nodes/{nodeId}/secondary-children
    • DELETE /nodes/{nodeId}/secondary-children/{childId}
    • GET /nodes/{nodeId}/parents
    • POST /nodes/{nodeId}/targets
    • GET /nodes/{nodeId}/targets
    • DELETE /nodes/{nodeId}/targets/{targetId}
    • GET /nodes/{nodeId}/sources
  • People
    • POST /people
    • GET /people
    • GET /people/{personId}
    • PUT /people/{personId}
    • POST /people/{personId}/request-password-reset
    • POST /people/{personId}/reset-password
    • GET /people/{personId}/avatar
    • PUT /people/{personId}/avatar
    • DELETE /people/{personId}/avatar
  • Groups
    • GET /people/{personId}/groups
    • GET /groups
    • POST /groups
    • GET /groups/{groupId}
    • PUT /groups/{groupId}
    • DELETE /groups/{groupId}
    • POST /groups/{groupId}/members
    • GET /groups/{groupId}/members
    • DELETE /groups/{groupId}/members/{groupMemberId}
  • Preferences
    • GET /people/{personId}/preferences
    • GET /people/{personId}/preferences/{preferenceName}
  • Probes
    • GET /probes/{probeId}
  • Queries
    • GET /queries/nodes
    • GET /queries/sites
    • GET /queries/people
  • Ratings
    • GET /nodes/{nodeId}/ratings
    • POST /nodes/{nodeId}/ratings
    • GET /nodes/{nodeId}/ratings/{ratingId}
    • DELETE /nodes/{nodeId}/ratings/{ratingId}
  • Renditions
    • POST /nodes/{nodeId}/renditions
    • GET /nodes/{nodeId}/renditions
    • GET /nodes/{nodeId}/renditions/{renditionId}
    • GET /nodes/{nodeId}/renditions/{renditionId}/content
  • Shared Links
    • POST /shared-links
    • GET /shared-links
    • GET /shared-links/{shareId}
    • DELETE /shared-links/{shareId}
    • GET /shared-links/{shareId}/content
    • GET /shared-links/{shareId}/renditions
    • GET /shared-links/{shareId}/renditions/{renditionId}
    • GET /shared-links/{shareId}/renditions/{renditionId}/content
    • POST /shared-links/{shareId}/email
  • Sites
    • GET /people/{personId}/site-membership-requests
    • POST /people/{personId}/site-membership-requests
    • GET /people/{personId}/site-membership-requests/{siteId}
    • PUT /people/{personId}/site-membership-requests/{siteId}
    • DELETE /people/{personId}/site-membership-requests/{siteId}
    • GET /people/{personId}/sites
    • GET /people/{personId}/sites/{siteId}
    • DELETE /people/{personId}/sites/{siteId}
    • GET /sites
    • POST /sites
    • GET /sites/{siteId}
    • PUT /sites/{siteId}
    • DELETE /sites/{siteId}
    • GET /sites/{siteId}/containers
    • GET /sites/{siteId}/containers/{containerId}
    • GET /sites-membership-requests
    • POST /sites/{siteId}/site-membership-requests/{inviteeId}/approve
    • POST /sites/{siteId}/site-membership-requests/{inviteeId}/reject
    • GET /sites/{siteId}/members
    • POST /sites/{siteId}/members
    • GET /sites/{siteId}/members/{personId}
    • PUT /sites/{siteId}/members/{personId}
    • DELETE /sites/{siteId}/members/{personId}
    • GET /sites/{siteId}/group-members
    • POST /sites/{siteId}/group-members
    • GET /sites/{siteId}/group-members/{groupId}
    • PUT /sites/{siteId}/group-members/{groupId}
    • DELETE /sites/{siteId}/group-members/{groupId}
  • Tags
    • GET /nodes/{nodeId}/tags
    • POST /nodes/{nodeId}/tags
    • DELETE /nodes/{nodeId}/tags/{tagId}
    • GET /tags
    • GET /tags/{tagId}
    • PUT /tags/{tagId}
  • Trashcan
    • GET /deleted-nodes
    • GET /deleted-nodes/{nodeId}
    • DELETE /deleted-nodes/{nodeId}
    • GET /deleted-nodes/{nodeId}/content
    • POST /deleted-nodes/{nodeId}/restore
    • GET /deleted-nodes/{nodeId}/renditions
    • GET /deleted-nodes/{nodeId}/renditions/{renditionId}
    • GET /deleted-nodes/{nodeId}/renditions/{renditionId}/content
  • Versions
    • GET /nodes/{nodeId}/versions
    • GET /nodes/{nodeId}/versions/{versionId}
    • DELETE /nodes/{nodeId}/versions/{versionId}
    • GET /nodes/{nodeId}/versions/{versionId}/content
    • POST /nodes/{nodeId}/versions/{versionId}/revert
    • POST /nodes/{nodeId}/versions/{versionId}/renditions
    • GET /nodes/{nodeId}/versions/{versionId}/renditions
    • GET /nodes/{nodeId}/versions/{versionId}/renditions/{renditionId}
    • GET /nodes/{nodeId}/versions/{versionId}/renditions/{renditionId}/content

.env configuration

The .env file has to be configured like this:

ALFRESCO_URL=https://alfresco-base-url.com
ALFRESCO_USERNAME=username
ALFRESCO_PASSWORD=password

Dependencies

~8–20MB
~267K SLoC