Skip to content

Commit 30edcb8

Browse files
authored
Merge pull request #2 from Workday/tag-projects-correctly
Organise the hub: app catalog section, source badges, and easier contributions
2 parents 908002b + b8519bf commit 30edcb8

27 files changed

Lines changed: 628 additions & 311 deletions

File tree

.github/CODEOWNERS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Catalog apps are Workday-maintained. Any PR touching catalog/ needs a
2+
# review from the DevRel team. Adjust the team slug to the real one, and
3+
# note this is enforced once branch protection requires code owner reviews.
4+
/catalog/ @Workday/devrel

.github/workflows/deploy-gallery.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ on:
1212
push:
1313
branches: [main]
1414
paths:
15+
- "catalog/**"
1516
- "examples/**"
1617
- "site/**"
1718
- "hub.config.json"

.github/workflows/validate-examples.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: Validate examples
33
on:
44
pull_request:
55
paths:
6+
- "catalog/**"
67
- "examples/**"
78
- "scripts/**"
89
- "hub.config.json"

CONTRIBUTING.md

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
Thanks for helping build the open home for Workday Build examples. Adding an example is deliberately low effort: a folder, two small files, one validation command.
44

5+
## Two sections
6+
7+
- `examples/` is the community examples section. It is open to everyone, and it is where your PR goes. Everything in this guide is about it.
8+
- `catalog/` holds Workday-built apps and is maintained by Workday (CODEOWNERS requires a DevRel review on any change there). Think something belongs in the catalog? Open an issue and we will take it from there.
9+
510
## Ways to contribute
611

712
- **Add a new example.** The main event. See below.
@@ -12,15 +17,25 @@ Thanks for helping build the open home for Workday Build examples. Adding an exa
1217
## Add an example
1318

1419
1. **Fork** this repository and create a branch.
15-
2. **Scaffold the folder.** From the repository root:
20+
2. **Scaffold the folder.** From the repository root, pick whichever command runs on your machine; they produce identical folders:
1621

1722
```bash
1823
node scripts/new-example.mjs your-example-name --type "Extend App"
1924
```
2025

21-
This creates `examples/your-example-name/` with a prefilled `example.json` and README skeleton. (You can also copy `examples/_template/` by hand.)
26+
No Node on your machine? Use the shell versions instead:
27+
28+
```bash
29+
./scripts/new-example.sh your-example-name --type "Extend App"
30+
```
2231

23-
3. **Drop your artifact in.** Whatever it is: Extend app source exported from App Builder (via Local Disk Sync or the ZIP download), orchestration definitions, an agent skill as markdown, diagrams. The folder must be self-contained.
32+
```powershell
33+
powershell -ExecutionPolicy Bypass -File scripts\new-example.ps1 your-example-name -Type "Extend App"
34+
```
35+
36+
Each creates `examples/your-example-name/` with a prefilled `example.json` and README skeleton. (You can also copy `examples/_template/` by hand.)
37+
38+
3. **Drop your artifact in.** Whatever it is: Extend app source (exported with Local Disk Sync, the WDCLI, or the ZIP download), orchestration definitions, an agent skill as markdown, diagrams. The folder must be self-contained.
2439
4. **Fill in the two files.** `example.json` needs a title, a description, and a type; everything else is optional. The README needs three short sections: What it is, What's inside, How to use it.
2540
5. **Validate.** From the repository root:
2641

@@ -56,7 +71,7 @@ Useful references for what an example artifact looks like:
5671

5772
- [Extend app components](https://developer.workday.com/doc/kwv1612374098305.md): what makes up an Extend app (amd, smd, pmd, business objects, and the rest).
5873
- [Local Disk Sync](https://developer.workday.com/doc/GUID-cbfd55e9-04f9-4480-879a-b63c42729a04-enHYPHENus.md): how to get your app source onto disk for submission.
59-
- [App Builder](https://developer.workday.com/doc/zxh1651687589440.md): where Extend apps are built.
74+
- [App Builder](https://developer.workday.com/doc/zxh1651687589440.md): one of the ways Extend apps get built. Your own IDE and the WDCLI work too; the hub does not care which tooling produced the artifact.
6075
- Official orchestration walkthroughs, for example [Create Workday Home Card Orchestration](https://developer.workday.com/doc/mwd1629844754304.md) and [Get and Create Workday Employee Data](https://developer.workday.com/doc/mxj1630014392721.md).
6176

6277
## Preview the gallery locally (optional)
@@ -80,3 +95,5 @@ Workday DevRel reviews every pull request before merge. We look for:
8095
- **It is safe.** No secrets, no real data, nothing tenant-specific.
8196

8297
We aim to respond within a few business days. Discussions on the PR are part of the process, so expect questions and suggestions rather than a silent merge or close.
98+
99+
Merged examples are labeled in the gallery: **Workday** for examples authored by Workday teams, **Community** for everything else. Community examples are held to works, safe, and honest; Workday-authored ones get a stricter pass because people copy them as reference.

README.md

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,31 @@ Browse working examples, copy them into your own projects, and contribute your o
2020

2121
## What is this?
2222

23-
Workday Build samples used to live in many places: the App Catalog, the docs, the forum. This repository brings them into one place that you can browse, copy from, and add to.
23+
Workday Build examples used to live in many places: the App Catalog, the docs, the forum. This repository brings them into one place that you can browse, copy from, and add to.
2424

2525
Every example:
2626

27-
- lives in its own folder under [`examples/`](examples) with everything it needs: Extend app source exported from App Builder, orchestration definitions, agent skills written as markdown, diagrams, whatever the artifact is.
27+
- lives in its own folder under [`catalog/`](catalog) (Workday-built apps) or [`examples/`](examples) (community examples, open to everyone) with everything it needs: Extend app source, orchestration definitions, agent skills written as markdown, diagrams, whatever the artifact is.
2828
- ships with two small files: `example.json` (metadata that drives the index below and the optional gallery) and a README that says what it is and how to use it.
2929
- demonstrates a real Workday capability. Types, components, and products come from the approved lists in [`hub.config.json`](hub.config.json), and CI enforces them.
3030

3131
## Repository layout
3232

3333
```
34-
examples/ Every example is a self-contained folder: open it, read its README
34+
catalog/ Workday-built apps, maintained by Workday
35+
examples/ Community examples, open to external contributions
3536
_template/ Copy this (or run the scaffolder) to start a new example
3637
scripts/
3738
new-example.mjs Scaffold a new example folder in one command
39+
new-example.sh / .ps1 The same scaffolder for machines without Node
3840
validate-examples.mjs CI validation + README index generation
3941
site/ Optional Astro gallery (not required to use the examples)
4042
hub.config.json Repo URLs and the approved type, component, and product lists
4143
```
4244

4345
## Example types
4446

45-
- 🧩 **Extend App**: full app source built in App Builder, ready to import into your development tenant.
47+
- 🧩 **Extend App**: full app source, ready to deploy to your development tenant with whatever tooling you build with.
4648
- 🔌 **Integration App**: orchestration-driven integrations connecting Workday to other systems.
4749
- ⚙️ **Orchestration**: focused orchestration definitions for Orchestration Builder.
4850
- 🤖 **Agent Skill**: agent skills and instructions, written as markdown.
@@ -52,34 +54,41 @@ hub.config.json Repo URLs and the approved type, component, and product
5254

5355
```bash
5456
git clone https://github.com/Workday/Developer-Relations
55-
cd Developer-Relations/examples
57+
cd Developer-Relations
5658
```
5759

58-
Open the folder you want and follow its README. What "use it" means depends on the type:
60+
Open the folder you want under `catalog/` or `examples/` and follow its README. What "use it" means depends on the type:
5961

60-
- **Extend app source**: import the folder into App Builder against your WCP development tenant (or upload the ZIP to App Hub), then deploy, install, and launch.
61-
- **Orchestrations and integration apps**: import into Orchestration Builder and point the credentials at your tenant.
62+
- **Extend app source**: deploy to your WCP development tenant with your usual tooling (App Builder, the (VScode, Cursor, Claude code) plugins, or the WDCLI), then install and launch.
63+
- **Orchestrations and integration apps**: import into Orchestration Builder, promote if your tenant needs it, and deploy to your tenant.
6264
- **Agent skills and reference material**: read, copy, adapt.
6365

64-
## All examples
66+
## App catalog
6567

66-
This table is kept in sync with each example's `example.json` by `scripts/validate-examples.mjs`.
68+
Workday-built apps, maintained by Workday. Both tables below are kept in sync with each entry's `example.json` by `scripts/validate-examples.mjs`.
6769

68-
<!-- examples:start -->
70+
<!-- catalog:start -->
71+
| Example | Description | Type |
72+
| --- | --- | --- |
73+
| [`work-from-anywhere-extend-app`](catalog/work-from-anywhere-extend-app) | Enable employees to request to work from anywhere, for a manager to approve, and see requests on a calendar view. | Extend App |
74+
<!-- catalog:end -->
75+
76+
## Examples
6977

70-
| Example | Description | Type |
71-
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------- |
72-
| [`expense-policy-agent-skill`](examples/expense-policy-agent-skill) | A markdown skill that teaches an agent to answer expense policy questions and escalate anything it cannot verify. | Agent Skill |
73-
| [`employee-data-orchestration`](examples/employee-data-orchestration) | An orchestration that reads worker data from one tenant and creates matching records through the Workday REST API. | Orchestration |
74-
| [`work-from-anywhere-extend-app`](examples/work-from-anywhere-extend-app) | Enable employees to request to work from anywhere, for a manager to approve, and see requests on a calendar view. | Extend App |
78+
Community examples, open to everyone. This is the section external contributions land in.
7579

80+
<!-- examples:start -->
81+
| Example | Description | Type |
82+
| --- | --- | --- |
83+
| [`expense-policy-agent-skill`](examples/expense-policy-agent-skill) | A markdown skill that teaches an agent to answer expense policy questions and escalate anything it cannot verify. | Agent Skill |
84+
| [`employee-data-orchestration`](examples/employee-data-orchestration) | An orchestration that reads worker data from one tenant and creates matching records through the Workday REST API. | Orchestration |
7685
<!-- examples:end -->
7786

7887
## Contributing
7988

80-
We want your examples, and adding one doesn't take much:
89+
We want your examples. Community contributions go into `examples/` (the Examples section); the catalog is Workday-maintained, so if you think something belongs there, open an issue instead. Adding an example doesn't take much:
8190

82-
1. Scaffold a folder: `node scripts/new-example.mjs your-example-name`
91+
1. Scaffold a folder: `node scripts/new-example.mjs your-example-name`. No Node? `./scripts/new-example.sh` (macOS, Linux) and `scripts\new-example.ps1` (Windows) do the same thing.
8392
2. Drop your artifact in, and fill in the generated `example.json` and README.
8493
3. Validate: `node scripts/validate-examples.mjs`
8594
4. Open a pull request. Workday DevRel reviews every submission before merge.
@@ -110,6 +119,10 @@ There is no hosted version while this repository is private. Once it is public,
110119
- **Bugs in an example**: open an [issue](https://github.com/Workday/Developer-Relations/issues) using the bug report template.
111120
- **New example proposals**: open an issue with the proposal template before you build, if you want early feedback.
112121

122+
## Use at your own pace, verify everything
123+
124+
Everything in this repository is provided as is, without warranty of any kind. Examples are starting points, not production software. Review the code, adapt it to your configuration, and always test in a non-production tenant before deploying anything to a tenant you care about. Submissions are reviewed before merge, but review does not replace your own verification.
125+
113126
## License
114127

115128
Copyright 2026 Workday. Licensed under the Apache License, Version 2.0.

catalog/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# App catalog
2+
3+
Workday-built apps, maintained by Workday. Every folder here is a complete app: open it, read its README, and deploy it to your development tenant with whatever tooling you build with.
4+
5+
This section is not open to external pull requests; CODEOWNERS requires a DevRel review on any change. Think something belongs here? Open an issue and we will take it from there.
6+
7+
Contributing your own work? That lives in [examples/](../examples/), and the [contributing guide](../CONTRIBUTING.md) covers the whole flow.

examples/work-from-anywhere-extend-app/README.md renamed to catalog/work-from-anywhere-extend-app/README.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,20 @@
44

55
An Extend app that lets employees request to work from anywhere, routes the request to their manager for approval, and shows everyone's arrangements on a calendar view.
66

7-
Status: this is a sample entry that demonstrates the hub's format. The `app-source/` folder holds a placeholder until the real App Builder export lands.
7+
Status: this is a sample entry that demonstrates the hub's format. The `app-source/` folder holds a placeholder until the real app source export lands.
88

99
## What's inside
1010

11-
- `app-source/` is where the app source exported from App Builder lives: app metadata (amd), site metadata (smd), pages (pmd), business objects, and security domains.
11+
- `app-source/` is where the exported app source lives: app metadata (amd), site metadata (smd), pages (pmd), business objects, and security domains.
1212
- `example.json` drives the card in the gallery and the index table in the repository README.
1313

1414
## Deploy instructions
1515

16-
### App Builder (recommended)
16+
Use whatever tooling you normally build with:
1717

18-
1. Open App Builder against your WCP development tenant.
19-
2. Import this folder with Open a Local Folder, or upload the source as a ZIP to App Hub.
20-
3. Save and Deploy, then install and launch the app in your tenant.
21-
22-
### IntelliJ plugin (alternative)
23-
24-
1. Install the Workday Extend Plugin for IntelliJ.
25-
2. Open this folder in IntelliJ.
26-
3. Log in to Workday Extend and your tenant, then deploy the app to the tenant.
18+
- **App Builder**: import this folder (or upload the source as a ZIP to App Hub), Save and Deploy, then install and launch in your tenant.
19+
- **IntelliJ plugin**: open the folder, log in to Workday Extend and your tenant, then deploy to the tenant.
20+
- **WDCLI**: push the app source to App Hub from your terminal as the developer CLI rolls out.
2721

2822
## Configuration
2923

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# App source goes here
2+
3+
Replace this folder's contents with your exported app source (Local Disk Sync, the WDCLI, or the ZIP download from App Hub). The export includes the amd and smd metadata, pmd pages, business objects, and security domains.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"title": "Work From Almost Anywhere",
3+
"description": "Enable employees to request to work from anywhere, for a manager to approve, and see requests on a calendar view.",
4+
"type": "Extend App",
5+
"components": [
6+
"Presentation",
7+
"Model",
8+
"Template"
9+
],
10+
"products": [
11+
"Workday Extend",
12+
"Workday HCM"
13+
],
14+
"authors": [
15+
"obinnacodes"
16+
],
17+
"tutorial": "",
18+
"source": "workday"
19+
}

examples/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Examples
2+
3+
The community section, open to everyone. Every folder here is a self-contained example: the artifact plus an `example.json` and a README that says what it is and how to use it.
4+
5+
Add your own in minutes:
6+
7+
- `node scripts/new-example.mjs my-example-name` from the repository root
8+
- No Node? `./scripts/new-example.sh` (macOS, Linux) or `scripts\new-example.ps1` (Windows)
9+
- No tooling at all? Copy [_template/](_template/) by hand, even from the GitHub web UI
10+
11+
Fill in the two generated files, drop your artifact in, and open a pull request. The [contributing guide](../CONTRIBUTING.md) has the details, and Workday DevRel reviews every submission before merge.

0 commit comments

Comments
 (0)