Skip to content

Commit 9ac4d82

Browse files
authored
fix: build iApp fixes (#27)
1 parent cead2a6 commit 9ac4d82

File tree

105 files changed

+514
-395
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+514
-395
lines changed

.vitepress/config.mts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import { transformerTwoslash } from '@shikijs/vitepress-twoslash';
22
import tailwindcss from '@tailwindcss/vite';
3-
import { defineConfig } from 'vitepress';
3+
import { defineConfig, loadEnv } from 'vitepress';
44
import { fileURLToPath, URL } from 'node:url';
55
import { getSidebar } from './sidebar';
66
import {
77
groupIconMdPlugin,
88
groupIconVitePlugin,
99
} from 'vitepress-plugin-group-icons';
1010

11+
// Charger les variables d'environnement
12+
const env = loadEnv('', process.cwd());
13+
1114
// https://vitepress.dev/reference/site-config
1215
export default defineConfig({
1316
title: 'iExec documentation',
@@ -23,6 +26,12 @@ export default defineConfig({
2326
'@': fileURLToPath(new URL('../src', import.meta.url)),
2427
},
2528
},
29+
// Expose environment variables to the client
30+
define: {
31+
'import.meta.env.VITE_REOWN_PROJECT_ID': JSON.stringify(
32+
env.VITE_REOWN_PROJECT_ID
33+
),
34+
},
2635
},
2736
srcDir: './src',
2837
markdown: {

.vitepress/sidebar.ts

Lines changed: 36 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ export function getSidebar() {
1616
link: '/overview/helloWorld/1-overview',
1717
},
1818
{
19-
text: 'Protect data',
19+
text: 'Protect Data',
2020
link: '/overview/helloWorld/2-protectData',
2121
},
2222
{ text: 'Build iApp', link: '/overview/helloWorld/3-buildIApp' },
2323
{
24-
text: 'Manage data access',
24+
text: 'Manage Data Access',
2525
link: '/overview/helloWorld/4-manageDataAccess',
2626
},
2727
{
28-
text: 'Bonus chapter!',
28+
text: 'Bonus Chapter !',
2929
link: '/overview/helloWorld/5-bonusChapter',
3030
},
3131
],
@@ -79,15 +79,15 @@ export function getSidebar() {
7979
text: 'PROTECT AND MANAGE DATA',
8080
items: [
8181
{
82-
text: '❓  What Is Protected Data?',
82+
text: '❓  What is Protected Data?',
8383
link: '/manage-data/what-is-protected-data',
8484
},
8585
{
8686
text: '📖 Guides',
8787
items: [
8888
{
89-
text: 'Create and Share Access to Protected Data',
90-
link: '/manage-data/guides/create-and-share-access',
89+
text: 'Manage Access',
90+
link: '/manage-data/guides/manage-access',
9191
},
9292
{
9393
text: 'Handle Schemas and Dataset Types',
@@ -254,7 +254,7 @@ export function getSidebar() {
254254
],
255255
},
256256
{
257-
text: 'Read data',
257+
text: 'Read Data',
258258
collapsed: true,
259259
items: [
260260
{
@@ -320,24 +320,6 @@ export function getSidebar() {
320320
},
321321
],
322322
},
323-
{
324-
text: 'iApp',
325-
link: '/manage-data/dataProtector/advanced/iApp',
326-
collapsed: true,
327-
items: [
328-
{
329-
text: 'DataProtector Deserializer',
330-
link: '/manage-data/dataProtector/advanced/iApp/deserializer',
331-
collapsed: true,
332-
items: [
333-
{
334-
text: 'getValue',
335-
link: '/manage-data/dataProtector/advanced/iApp/deserializer/getValue',
336-
},
337-
],
338-
},
339-
],
340-
},
341323
],
342324
},
343325
{
@@ -353,34 +335,34 @@ export function getSidebar() {
353335
{
354336
text: 'BUILD YOUR iAPP',
355337
items: [
356-
{ text: '❓ What Is an iApp?', link: '/build-iapp/what-is-iapp' },
338+
{ text: '❓ What is an iApp?', link: '/build-iapp/what-is-iapp' },
357339
{
358340
text: '📖 Guides',
359341
items: [
360342
{
361-
text: 'Build and Deploy your iApps',
362-
link: '/build-iapp/guides/build-&-deploy-iapp',
343+
text: 'Build and Deploy',
344+
link: '/build-iapp/guides/build-&-deploy',
363345
},
364346
{
365-
text: 'Manage your iApps',
366-
link: '/build-iapp/guides/manage-iapp',
347+
text: 'Manage Access',
348+
link: '/build-iapp/guides/manage-access',
367349
},
368350
{
369-
text: 'Inputs and Outputs (types, differences, formats)',
351+
text: 'Inputs and Outputs',
370352
link: '/build-iapp/guides/inputs-and-outputs',
371353
},
372354
{
373-
text: 'Debugging Your iApp',
374-
link: '/build-iapp/guides/debugging-your-iapp',
375-
},
376-
{
377-
text: 'Using TDX (Trusted Execution) [EXPERIMENTAL]',
378-
link: '/build-iapp/guides/using-tdx-experimental',
355+
text: 'Using TDX',
356+
link: '/build-iapp/guides/using-tdx',
379357
},
380358
{
381359
text: 'How to Get and Decrypt Results',
382360
link: '/build-iapp/guides/how-to-get-and-decrypt-results',
383361
},
362+
{
363+
text: 'Debugging',
364+
link: '/build-iapp/guides/debugging',
365+
},
384366
],
385367
},
386368
{
@@ -392,9 +374,20 @@ export function getSidebar() {
392374
link: '/build-iapp/iapp-generator/getting-started',
393375
},
394376
{
395-
text: 'Building Your iApp',
377+
text: 'Building your iApp',
396378
link: '/build-iapp/iapp-generator/building-your-iexec-app',
397379
},
380+
{
381+
text: 'Deserialize ProtectedData',
382+
link: '/build-iapp/iapp-generator/deserializer',
383+
collapsed: true,
384+
items: [
385+
{
386+
text: 'getValue',
387+
link: '/build-iapp/iapp-generator/deserializer/getValue',
388+
},
389+
],
390+
},
398391
],
399392
},
400393
],
@@ -410,11 +403,11 @@ export function getSidebar() {
410403
text: '📖 Guides',
411404
items: [
412405
{
413-
text: 'Different ways to execute an iApp',
406+
text: 'Different Ways to Execute an iApp',
414407
link: '/use-iapp/guides/different-ways-to-execute',
415408
},
416409
{
417-
text: 'Add inputs to the execution',
410+
text: 'Add Inputs to the Execution',
418411
link: '/use-iapp/guides/add-inputs-to-execution',
419412
},
420413
{
@@ -426,7 +419,7 @@ export function getSidebar() {
426419
link: '/use-iapp/guides/find-iapps',
427420
},
428421
{
429-
text: 'How to pay the executions',
422+
text: 'How to Pay the Executions',
430423
link: '/use-iapp/guides/how-to-pay-executions',
431424
},
432425
],
@@ -435,11 +428,11 @@ export function getSidebar() {
435428
text: '💰 How to Pay',
436429
items: [
437430
{
438-
text: 'How to Pay for Web3mail',
431+
text: 'How to Pay for Web3Mail',
439432
link: '/use-iapp/how-to-pay/how-to-pay-for-web3mail',
440433
},
441434
{
442-
text: 'How to Pay for Web3telegram',
435+
text: 'How to Pay for Web3Telegram',
443436
link: '/use-iapp/how-to-pay/how-to-pay-for-web3telegram',
444437
},
445438
{

README.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -155,22 +155,16 @@ Fork this repository and ensure you're working on the `main` branch:
155155
- Add link to the new explorer feature Asset_Types in the guide =>
156156
`handle-schemas-dataset-types`
157157
- Add link to remix for deploying whitelist
158-
- Move `manage-data/dataProtector/advanced/iApp` (Deserializer doc) in an other
159-
way to be more visible (may in build-iApp section)
160158
- complete `use-iapp` section
161-
- complete `explorer` section
162159
- Maybe split input and output in two diff sub section in build your iapp guide
163160
- SGX vs TDX need review
164161
- Explorer l'intégration de codeSpace
165-
- complete `build-iapp` section
166162
- complete `Protocol`section
167-
- What about Bridge ?
168-
- Made a page on RLC
169-
- Add Dune dashboard
170163
- Add a Development workflow
171164
- Update context7 when doc will be deployed
172165
- Check theGraph Images with design Team
173166
- Update the Dune Dashboard to the final version
174167
- Add new section in `iexec-explorer.md` file to talk about: available chain on
175168
the UI + SRLC/RLC on account section feature of the protocol
176169
- Update or add design illustrations based on the new design system
170+
- Check how to pay guide to update with the launch on Arbitrum (RLC vs xRLC)
Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
11
---
2-
title: Build and Deploy an iApp?
2+
title: Create and Deploy an iApp
33
description:
4-
How to build an confidential iexec application and deploy it on iexec protocol
4+
How to create a confidential iExec application and deploy it on iExec protocol
55
---
66

7-
## iApp Generator: Your Development Tool
7+
# Create and Deploy an iApp
88

99
Bootstrap TEE-compatible applications in minutes without any hardcoding skills,
1010
iApp Generator handles all the low-level complexity for you.
1111

12-
- **Access to TEEs easily** - No need to dive into low-level requirements, build
13-
iApps that connect to TEEs in minutes.
14-
- **Check and deploy iApps quickly** - iApp Generator checks that your iApp
15-
complies with the iExec Framework and streamlines its deployment.
1612
- **Select your project mode & language** - Get started with either a basic or
1713
advanced setup, depending on your experience with the iExec framework. You can
1814
use Python or JavaScript—whichever you prefer!
15+
- **Develop your iApp effortlessly** - Write your application logic using
16+
familiar programming languages while the generator handles all TEE-specific
17+
configurations.
18+
- **Access to TEEs easily** - No need to dive into low-level requirements,
19+
create iApps that connect to TEEs in minutes.
20+
- **Check and deploy iApps quickly** - iApp Generator checks that your iApp
21+
complies with the iExec Framework and streamlines its deployment.
1922

2023
```bash
2124
# Create your iApp (Python or Node.js supported)
@@ -37,21 +40,13 @@ iapp deploy
3740
Here are some real-world examples of iApps to help you understand how they work
3841
in practice.
3942

40-
**Email Notification iApp**
43+
### Email Notification iApp
4144

4245
This iApp lets you send updates to your contacts without ever seeing their email
4346
addresses, privacy is preserved by design.
4447

4548
::: code-group
4649

47-
```python [Python]
48-
# User runs: "Send updates to my contacts about my project"
49-
contacts = load_protecteddata() # User's protected contact list
50-
for contact in contacts:
51-
send_email(contact, project_update_message)
52-
# → Emails sent directly, you never see the addresses
53-
```
54-
5550
```js [Node.js]
5651
/* User runs: "Send updates to my contacts about my project" */
5752
const contacts = loadProtectedData(); // User's protected contact list
@@ -61,15 +56,31 @@ contacts.forEach((contact) => {
6156
// → Emails sent directly, you never see the addresses
6257
```
6358

59+
```python [Python]
60+
# User runs: "Send updates to my contacts about my project"
61+
contacts = load_protecteddata() # User's protected contact list
62+
for contact in contacts:
63+
send_email(contact, project_update_message)
64+
# → Emails sent directly, you never see the addresses
65+
```
66+
6467
:::
6568

66-
**Oracle Update iApp**
69+
### Oracle Update iApp
6770

6871
This iApp securely updates a price oracle using private trading data, ensuring
6972
sensitive information stays confidential.
7073

7174
::: code-group
7275

76+
```js [Node.js]
77+
// User runs: "Update price oracle with my private trading data"
78+
const tradingData = loadProtectedData(); // User's protected trading history
79+
const averagePrice = calculateWeightedAverage(tradingData);
80+
updateOracleContract(averagePrice);
81+
// → Oracle updated with real data, trading history stays private
82+
```
83+
7384
```python [Python]
7485
# User runs: "Update price oracle with my private trading data"
7586
trading_data = load_protecteddata() # User's protected trading history
@@ -78,14 +89,6 @@ update_oracle_contract(average_price)
7889
# → Oracle updated with real data, trading history stays private
7990
```
8091

81-
```js [Node.js]
82-
/* User runs: "Update price oracle with my private trading data" */
83-
const tradingData = loadProtectedData(); // User's protected trading history
84-
const averagePrice = calculateWeightedAverage(tradingData);
85-
updateOracleContract(averagePrice);
86-
// → Oracle updated with real data, trading history stays private
87-
```
88-
8992
:::
9093

9194
**Automated Transactions iApp**
@@ -95,21 +98,21 @@ financial information remains private.
9598

9699
::: code-group
97100

98-
```python [Python]
99-
# User runs: "Automate payments every month"
100-
payment_info = load_protecteddata() # User's payment details
101-
for month in range(12):
102-
process_payment(payment_info)
103-
# → Payments processed, payment details stay private
104-
```
105-
106101
```js [Node.js]
107-
/* User runs: "Automate payments every month" */
102+
// User runs: "Automate payments every month"
108103
const paymentInfo = loadProtectedData(); // User's payment details
109104
for (let month = 0; month < 12; month++) {
110105
processPayment(paymentInfo);
111106
}
112107
// → Payments processed, payment details stay private
113108
```
114109

110+
```python [Python]
111+
# User runs: "Automate payments every month"
112+
payment_info = load_protecteddata() # User's payment details
113+
for month in range(12):
114+
process_payment(payment_info)
115+
# → Payments processed, payment details stay private
116+
```
117+
115118
:::

src/build-iapp/guides/debugging-your-iapp.md renamed to src/build-iapp/guides/debugging.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: Debugging Your iApp
2+
title: Debugging your iApp
33
description:
44
Troubleshoot and optimize your iApp execution in the TEE environment
55
---
66

7-
# 🐛 Debugging Your iApp
7+
# 🐛 Debugging
88

99
**When your iApp doesn't work as expected, debugging in the TEE environment
1010
requires specific techniques.** This guide helps you identify issues and
@@ -24,7 +24,7 @@ Understanding how your task progresses through the iExec network:
2424

2525
**Most failures happen during stages 2-4**
2626

27-
## Monitoring Your Tasks
27+
## Monitoring your Tasks
2828

2929
### iExec Explorer
3030

@@ -112,7 +112,7 @@ with open(f"{os.environ['IEXEC_OUT']}/computed.json", 'w') as f:
112112
json.dump(computed, f)
113113
```
114114

115-
### ⚠️ **Dataset type unmatching**
115+
### ⚠️ **Dataset Type Unmatching**
116116

117117
- **Cause**: The dataset type specified in the frontend (protectData) does not
118118
match with the dataset type specified in the iApp

0 commit comments

Comments
 (0)