@fleetbase/solid-engine 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/ACL_SOLUTION.md +72 -0
  2. package/CSS_SCOPE_ISSUE.md +140 -0
  3. package/HOTFIX_SYNTAX_ERROR.md +100 -0
  4. package/LICENSE.md +651 -21
  5. package/MANUAL_ACL_SETUP.md +135 -0
  6. package/README.md +74 -27
  7. package/REFACTORING_SUMMARY.md +330 -0
  8. package/VERIFICATION_CHECKLIST.md +82 -0
  9. package/addon/components/modals/create-solid-folder.hbs +29 -0
  10. package/addon/components/modals/import-solid-resources.hbs +85 -0
  11. package/addon/controllers/data/content.js +17 -0
  12. package/addon/controllers/data/index.js +219 -0
  13. package/addon/controllers/home.js +84 -0
  14. package/addon/engine.js +1 -24
  15. package/addon/extension.js +26 -0
  16. package/addon/routes/data/content.js +11 -0
  17. package/addon/routes/data/index.js +17 -0
  18. package/addon/routes.js +2 -7
  19. package/addon/styles/solid-engine.css +1 -2
  20. package/addon/templates/account.hbs +3 -3
  21. package/addon/templates/application.hbs +2 -12
  22. package/addon/templates/data/content.hbs +48 -0
  23. package/addon/templates/{pods/explorer.hbs → data/index.hbs} +6 -5
  24. package/addon/templates/home.hbs +168 -10
  25. package/app/components/modals/{backup-pod.js → create-solid-folder.js} +1 -1
  26. package/app/components/modals/{resync-pod.js → import-solid-resources.js} +1 -1
  27. package/app/components/modals/{create-pod.js → setup-css-credentials.js} +1 -1
  28. package/composer.json +5 -11
  29. package/extension.json +2 -2
  30. package/index.js +0 -11
  31. package/package.json +9 -9
  32. package/server/migrations/2024_12_21_add_css_credentials_to_solid_identities_table.php +32 -0
  33. package/server/src/Client/OpenIDConnectClient.php +686 -15
  34. package/server/src/Client/SolidClient.php +104 -8
  35. package/server/src/Http/Controllers/DataController.php +261 -0
  36. package/server/src/Http/Controllers/OIDCController.php +42 -8
  37. package/server/src/Http/Controllers/SolidController.php +179 -85
  38. package/server/src/Models/SolidIdentity.php +13 -3
  39. package/server/src/Services/AclService.php +146 -0
  40. package/server/src/Services/PodService.php +863 -0
  41. package/server/src/Services/ResourceSyncService.php +336 -0
  42. package/server/src/Services/VehicleSyncService.php +289 -0
  43. package/server/src/Support/Utils.php +10 -0
  44. package/server/src/routes.php +25 -1
  45. package/addon/components/modals/backup-pod.hbs +0 -3
  46. package/addon/components/modals/create-pod.hbs +0 -5
  47. package/addon/components/modals/resync-pod.hbs +0 -3
  48. package/addon/controllers/pods/explorer/content.js +0 -12
  49. package/addon/controllers/pods/explorer.js +0 -149
  50. package/addon/controllers/pods/index/pod.js +0 -12
  51. package/addon/controllers/pods/index.js +0 -137
  52. package/addon/routes/pods/explorer/content.js +0 -10
  53. package/addon/routes/pods/explorer.js +0 -44
  54. package/addon/routes/pods/index/pod.js +0 -3
  55. package/addon/routes/pods/index.js +0 -21
  56. package/addon/templates/pods/explorer/content.hbs +0 -19
  57. package/addon/templates/pods/index/pod.hbs +0 -11
  58. package/addon/templates/pods/index.hbs +0 -19
  59. package/server/src/LegacyClient/Identity/IdentityProvider.php +0 -174
  60. package/server/src/LegacyClient/Identity/Profile.php +0 -18
  61. package/server/src/LegacyClient/OIDCClient.php +0 -350
  62. package/server/src/LegacyClient/Profile/WebID.php +0 -26
  63. package/server/src/LegacyClient/SolidClient.php +0 -271
@@ -0,0 +1,48 @@
1
+ <Overlay @isOpen={{true}} @position="right" @noBackdrop={{true}} @fullHeight={{true}} @width="800px" @isResizable={{true}}>
2
+ <Overlay::Header @title={{@model.name}} @hideStatusDot={{true}} @titleWrapperClass="leading-5">
3
+ <div class="flex flex-1 justify-end">
4
+ <Button @type="default" @icon="times" @helpText="Close" @onClick={{this.back}} />
5
+ </div>
6
+ </Overlay::Header>
7
+
8
+ <Overlay::Body class="p-6">
9
+ <div class="space-y-4">
10
+ <div>
11
+ <label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">File Information</label>
12
+ <div class="bg-gray-50 dark:bg-gray-800 rounded-lg p-4 space-y-2">
13
+ <div class="flex justify-between">
14
+ <span class="text-gray-600 dark:text-gray-400">Name:</span>
15
+ <span class="text-gray-900 dark:text-white font-medium">{{@model.name}}</span>
16
+ </div>
17
+ <div class="flex justify-between">
18
+ <span class="text-gray-600 dark:text-gray-400">Type:</span>
19
+ <span class="text-gray-900 dark:text-white capitalize">{{@model.type}}</span>
20
+ </div>
21
+ <div class="flex justify-between">
22
+ <span class="text-gray-600 dark:text-gray-400">Size:</span>
23
+ <span class="text-gray-900 dark:text-white">{{@model.size}}</span>
24
+ </div>
25
+ <div class="flex justify-between">
26
+ <span class="text-gray-600 dark:text-gray-400">Created:</span>
27
+ <span class="text-gray-900 dark:text-white">{{@model.created_at}}</span>
28
+ </div>
29
+ </div>
30
+ </div>
31
+
32
+ {{#if @model.url}}
33
+ <div>
34
+ <Button @text="Open File" @icon="external-link-alt" @type="primary" @onClick={{this.viewFile}} class="w-full" />
35
+ </div>
36
+ {{/if}}
37
+
38
+ {{#if @model.content}}
39
+ <div>
40
+ <label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">Preview</label>
41
+ <div class="bg-gray-50 dark:bg-gray-800 rounded-lg p-4 max-h-96 overflow-y-auto">
42
+ <pre class="text-sm text-gray-900 dark:text-white whitespace-pre-wrap">{{@model.content}}</pre>
43
+ </div>
44
+ </div>
45
+ {{/if}}
46
+ </div>
47
+ </Overlay::Body>
48
+ </Overlay>
@@ -1,4 +1,4 @@
1
- <ExplorerHeader @current={{@model.id}} @pod={{this.pod}} @onStateClicked={{this.viewContents}} @searchPlaceholder="Search Contents" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
1
+ <Layout::Section::Header @title="Data" @searchPlaceholder="Search Files and Folders" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
2
  <Button @icon="arrow-left" @onClick={{this.back}} @helpText="Go Back" class="mr-2" />
3
3
  <Button @icon="refresh" @onClick={{this.reload}} @helpText="Refresh" class="mr-2" />
4
4
  {{#if (safe-has this.table "selectedRows")}}
@@ -12,9 +12,10 @@
12
12
  </div>
13
13
  </DropdownButton>
14
14
  {{/if}}
15
- <Button @icon="plus" @iconPrefix="fas" @type="primary" @text="Create new Something" class="mr-2" @onClick={{this.createSomething}} />
16
- </ExplorerHeader>
15
+ <Button @icon="folder-plus" @iconPrefix="fas" @type="secondary" @text="New Folder" class="mr-2" @onClick={{this.createFolder}} />
16
+ <Button @icon="download" @iconPrefix="fas" @type="primary" @text="Import Resources" class="mr-2" @onClick={{this.importResources}} />
17
+ </Layout::Section::Header>
17
18
  <Layout::Section::Body>
18
- <Table @rows={{@model.contents}} @columns={{this.columns}} @selectable={{true}} @canSelectAll={{true}} @onSetup={{fn (mut this.table)}} @tfootVerticalOffset="53" @tfootVerticalOffsetElements=".next-view-section-subheader" />
19
+ <Table @rows={{@model.contents}} @columns={{this.columns}} @selectable={{true}} @canSelectAll={{true}} @onSetup={{fn (mut this.table)}} />
19
20
  </Layout::Section::Body>
20
- {{outlet}}
21
+ {{outlet}}
@@ -1,11 +1,169 @@
1
- <Layout::Section::Header @title="Solid for Fleetbase" />
2
- <Layout::Section::Body class="solid-fleetbase-home-container">
3
- <h1>Welcome to Solid for Fleetbase</h1>
4
- <h2>Getting Started</h2>
5
- <div class="mt-2">
6
- <p>
7
- <a href="#" {{on "click" (perform this.authenticate)}}>Sign up for an account</a> to get started with your own Pod and WebID. Once you are logged in you can begin to manage your pods and sync data directly from Fleetbase to your Pods.
8
- </p>
9
- </div>
10
- {{!-- <Button @text="Click to Test" @icon="magic" @onClick={{perform this.getAccountIndex}} @wrapperClass="mt-4" /> --}}
1
+ <Layout::Section::Header @title="Solid for Fleetbase">
2
+ {{#if this.isAuthenticated}}
3
+ <Button @icon="refresh" @onClick={{perform this.refreshStatus}} @helpText="Refresh Status" @isLoading={{this.refreshStatus.isRunning}} class="mr-2" />
4
+ <Button @icon="sign-out-alt" @onClick={{perform this.logout}} @helpText="Logout" @type="danger" @isLoading={{this.logout.isRunning}} @disabled={{or this.refreshStatus.isRunning this.checkAuthenticationStatus.isRunning}} />
5
+ {{/if}}
6
+ </Layout::Section::Header>
7
+
8
+ <Layout::Section::Body class="solid-fleetbase-home-container overflow-y-scroll h-full">
9
+ {{#if this.checkAuthenticationStatus.isRunning}}
10
+ <div class="flex items-center justify-center h-64">
11
+ <div class="text-center">
12
+ <Spinner class="mb-4" />
13
+ <p class="text-gray-600 dark:text-gray-400">Checking authentication status...</p>
14
+ </div>
15
+ </div>
16
+ {{else}}
17
+ {{#if this.isAuthenticated}}
18
+ <div class="max-w-4xl mx-auto space-y-4">
19
+ <div class="pb-4">
20
+ <h1 class="text-3xl font-bold text-gray-900 dark:text-white">Welcome back!</h1>
21
+ <p class="text-gray-600 dark:text-gray-400">You are successfully connected to your Solid storage.</p>
22
+ </div>
23
+
24
+ <ContentPanel @title="Your Solid Identity" @open={{true}} @wrapperClass="bordered-classic">
25
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
26
+ <div>
27
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">Profile Information</h3>
28
+ <div class="space-y-3">
29
+ <div>
30
+ <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Name</label>
31
+ <p class="text-gray-900 dark:text-white">{{this.userName}}</p>
32
+ </div>
33
+ <div>
34
+ <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Email</label>
35
+ <p class="text-gray-900 dark:text-white">{{this.userEmail}}</p>
36
+ </div>
37
+ <div>
38
+ <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">WebID</label>
39
+ <p class="text-sm text-blue-600 dark:text-blue-400 break-all">{{this.webId}}</p>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div>
44
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">Storage Information</h3>
45
+ {{#if this.hasStorageLocations}}
46
+ <div class="space-y-2">
47
+ <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Storage Locations</label>
48
+ {{#each this.storageLocations as |location|}}
49
+ <div class="bg-gray-50 dark:bg-gray-700 p-2 rounded text-sm">
50
+ <p class="text-blue-600 dark:text-blue-400 break-all">{{location}}</p>
51
+ </div>
52
+ {{/each}}
53
+ </div>
54
+ {{else}}
55
+ <p class="text-gray-600 dark:text-gray-400">No storage locations found</p>
56
+ {{/if}}
57
+ </div>
58
+ </div>
59
+ </ContentPanel>
60
+
61
+ <ContentPanel @title="Quick Actions" @open={{true}} @wrapperClass="bordered-classic">
62
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
63
+ <div class="text-center p-6 bg-gray-50 dark:bg-gray-700 rounded-lg">
64
+ <FaIcon @icon="folder-tree" @size="2x" class="text-blue-600 dark:text-blue-400 mb-3" />
65
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Browse Data</h3>
66
+ <p class="text-gray-600 dark:text-gray-400 mb-4">Explore and manage your Fleetops data in Solid</p>
67
+ <div class="flex items-center justify-center">
68
+ <Button @text="Browse Data" @icon="database" @type="primary" class="w-full" @onClick={{perform this.navigateToPods}} />
69
+ </div>
70
+ </div>
71
+ <div class="text-center p-6 bg-gray-50 dark:bg-gray-700 rounded-lg">
72
+ <FaIcon @icon="user" @size="2x" class="text-green-600 dark:text-green-400 mb-3" />
73
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Account Settings</h3>
74
+ <p class="text-gray-600 dark:text-gray-400 mb-4">Manage your account and profile settings</p>
75
+ <div class="flex items-center justify-center">
76
+ <Button @text="Account" @icon="user" @type="secondary" class="w-full" @onClick={{perform this.navigateToAccount}} />
77
+ </div>
78
+ </div>
79
+ <div class="text-center p-6 bg-gray-50 dark:bg-gray-700 rounded-lg">
80
+ <FaIcon @icon="sync" @size="2x" class="text-purple-600 dark:text-purple-400 mb-3" />
81
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Sync Data</h3>
82
+ <p class="text-gray-600 dark:text-gray-400 mb-4">Sync your Fleetbase data to Solid storage</p>
83
+ <div class="flex items-center justify-center">
84
+ <Button @text="Coming Soon" @icon="sync" @disabled={{true}} />
85
+ </div>
86
+ </div>
87
+ </div>
88
+ </ContentPanel>
89
+
90
+ <ContentPanel @title="Connection Status" @open={{true}} @wrapperClass="bordered-classic">
91
+ <div class="space-y-3">
92
+ <div class="flex items-center">
93
+ <div class="w-3 h-3 bg-green-500 rounded-full mr-3"></div>
94
+ <span class="text-gray-900 dark:text-white">Connected to Solid server</span>
95
+ </div>
96
+ <div class="flex items-center">
97
+ <div class="w-3 h-3 bg-green-500 rounded-full mr-3"></div>
98
+ <span class="text-gray-900 dark:text-white">Authentication active</span>
99
+ </div>
100
+ {{#if this.hasStorageLocations}}
101
+ <div class="flex items-center">
102
+ <div class="w-3 h-3 bg-green-500 rounded-full mr-3"></div>
103
+ <span class="text-gray-900 dark:text-white">{{this.storageLocations.length}} storage location(s) available</span>
104
+ </div>
105
+ {{/if}}
106
+ </div>
107
+ </ContentPanel>
108
+ </div>
109
+ {{else}}
110
+ <div class="max-w-2xl mx-auto text-center">
111
+ <div class="mb-8">
112
+ <FaIcon @icon="shield-alt" @size="4x" class="text-gray-400 dark:text-gray-600 mb-4" />
113
+ <h1 class="text-3xl font-bold text-gray-900 dark:text-white mb-4">Welcome to Solid for Fleetbase</h1>
114
+ <p class="text-lg text-gray-600 dark:text-gray-400 mb-8">
115
+ Connect your Fleetbase account with Solid to manage your data in a decentralized way.
116
+ </p>
117
+ </div>
118
+
119
+ <ContentPanel @title="Getting Started" @open={{true}} @wrapperClass="bordered-classic">
120
+ <div class="text-left space-y-4">
121
+ <div class="flex items-start">
122
+ <div class="flex-shrink-0 w-8 h-8 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center mr-4">
123
+ <span class="text-blue-600 dark:text-blue-400 font-semibold">1</span>
124
+ </div>
125
+ <div>
126
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white">Sign up for a Solid account</h3>
127
+ <p class="text-gray-600 dark:text-gray-400">Create your Solid account and WebID to get started with decentralized data storage.</p>
128
+ </div>
129
+ </div>
130
+ <div class="flex items-start">
131
+ <div class="flex-shrink-0 w-8 h-8 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center mr-4">
132
+ <span class="text-blue-600 dark:text-blue-400 font-semibold">2</span>
133
+ </div>
134
+ <div>
135
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white">Connect your account</h3>
136
+ <p class="text-gray-600 dark:text-gray-400">Authenticate with your Solid provider to enable data synchronization.</p>
137
+ </div>
138
+ </div>
139
+ <div class="flex items-start">
140
+ <div class="flex-shrink-0 w-8 h-8 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center mr-4">
141
+ <span class="text-blue-600 dark:text-blue-400 font-semibold">3</span>
142
+ </div>
143
+ <div>
144
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white">Sync your data</h3>
145
+ <p class="text-gray-600 dark:text-gray-400">Sync vehicles, drivers, and orders from Fleetbase to your Solid storage.</p>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ <div class="mt-8 text-center">
150
+ <Button @text="Connect to Solid" @icon="link" @type="primary" @size="lg" @onClick={{perform this.authenticate}} @isLoading={{this.authenticate.isRunning}} />
151
+ </div>
152
+ </ContentPanel>
153
+
154
+ {{#if this.authStatus.error}}
155
+ <div class="bg-red-50 dark:bg-red-900 border border-red-200 dark:border-red-700 rounded-lg p-4 mt-4">
156
+ <div class="flex">
157
+ <FaIcon @icon="exclamation-triangle" class="text-red-400 mr-3 mt-1" />
158
+ <div>
159
+ <h3 class="text-sm font-medium text-red-800 dark:text-red-200">Authentication Error</h3>
160
+ <p class="text-sm text-red-700 dark:text-red-300 mt-1">{{this.authStatus.error}}</p>
161
+ </div>
162
+ </div>
163
+ </div>
164
+ {{/if}}
165
+ </div>
166
+ {{/if}}
167
+ {{/if}}
168
+ <Spacer @height="200px" />
11
169
  </Layout::Section::Body>
@@ -1 +1 @@
1
- export { default } from '@fleetbase/solid-engine/components/modals/backup-pod';
1
+ export { default } from '@fleetbase/solid-engine/components/modals/create-solid-folder';
@@ -1 +1 @@
1
- export { default } from '@fleetbase/solid-engine/components/modals/resync-pod';
1
+ export { default } from '@fleetbase/solid-engine/components/modals/import-solid-resources';
@@ -1 +1 @@
1
- export { default } from '@fleetbase/solid-engine/components/modals/create-pod';
1
+ export { default } from '@fleetbase/solid-engine/components/modals/setup-css-credentials';
package/composer.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetbase/solid-api",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Solid Protocol Extension to Store and Share Data with Fleetbase",
5
5
  "keywords": [
6
6
  "fleetbase-extension",
@@ -15,7 +15,7 @@
15
15
  "ember-addon",
16
16
  "ember-engine"
17
17
  ],
18
- "license": "MIT",
18
+ "license": "AGPL-3.0-or-later",
19
19
  "authors": [
20
20
  {
21
21
  "name": "Fleetbase Pte Ltd.",
@@ -28,11 +28,11 @@
28
28
  ],
29
29
  "require": {
30
30
  "php": "^8.0",
31
- "fleetbase/core-api": "^1.4.22",
32
- "fleetbase/fleetops-api": "^0.4.27",
31
+ "fleetbase/core-api": "*",
32
+ "fleetbase/fleetops-api": "*",
33
33
  "php-http/guzzle7-adapter": "^1.0",
34
34
  "psr/http-factory-implementation": "*",
35
- "jumbojett/openid-connect-php": "^0.9.10",
35
+ "jumbojett/openid-connect-php": "^1.0.2",
36
36
  "easyrdf/easyrdf": "^1.1",
37
37
  "ml/json-ld": "^1.2",
38
38
  "web-token/jwt-core": "^3.0",
@@ -50,12 +50,6 @@
50
50
  "phpstan/phpstan": "^1.10.38",
51
51
  "symfony/var-dumper": "^5.4.29"
52
52
  },
53
- "repositories": [
54
- {
55
- "type": "vcs",
56
- "url": "https://github.com/fleetbase/laravel-model-caching"
57
- }
58
- ],
59
53
  "autoload": {
60
54
  "psr-4": {
61
55
  "Fleetbase\\Solid\\": "server/src/",
package/extension.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "Solid",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Solid Protocol Extension to Store and Share Data with Fleetbase",
5
5
  "repository": "https://github.com/fleetbase/solid",
6
- "license": "MIT",
6
+ "license": "AGPL-3.0-or-later",
7
7
  "author": "Fleetbase Pte Ltd <hello@fleetbase.io>"
8
8
  }
package/index.js CHANGED
@@ -1,21 +1,10 @@
1
1
  'use strict';
2
2
  const { buildEngine } = require('ember-engines/lib/engine-addon');
3
3
  const { name } = require('./package');
4
- const Funnel = require('broccoli-funnel');
5
4
 
6
5
  module.exports = buildEngine({
7
6
  name,
8
7
 
9
- postprocessTree(type, tree) {
10
- if (type === 'css') {
11
- tree = new Funnel(tree, {
12
- exclude: ['**/@fleetbase/ember-ui/**/*.css'],
13
- });
14
- }
15
-
16
- return tree;
17
- },
18
-
19
8
  lazyLoading: {
20
9
  enabled: true,
21
10
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fleetbase/solid-engine",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Solid Protocol Extension to Store and Share Data with Fleetbase",
5
5
  "fleetbase": {
6
6
  "route": "solid-protocol"
@@ -19,7 +19,7 @@
19
19
  "ember-engine"
20
20
  ],
21
21
  "repository": "https://github.com/fleetbase/solid",
22
- "license": "MIT",
22
+ "license": "AGPL-3.0-or-later",
23
23
  "author": "Fleetbase Pte Ltd <hello@fleetbase.io>",
24
24
  "directories": {
25
25
  "app": "app",
@@ -45,13 +45,14 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@babel/core": "^7.23.2",
48
- "@fleetbase/ember-core": "^0.2.9",
49
- "@fleetbase/ember-ui": "^0.2.13",
50
- "@fleetbase/fleetops-data": "^0.1.14",
51
- "@fortawesome/ember-fontawesome": "^0.4.1",
52
- "@fortawesome/fontawesome-svg-core": "^6.4.0",
53
- "@fortawesome/free-solid-svg-icons": "^6.4.0",
48
+ "@fleetbase/ember-core": "^0.3.9",
49
+ "@fleetbase/ember-ui": "^0.3.15",
50
+ "@fleetbase/fleetops-data": "^0.1.24",
51
+ "@fortawesome/ember-fontawesome": "^2.0.0",
52
+ "@fortawesome/fontawesome-svg-core": "6.4.0",
53
+ "@fortawesome/free-solid-svg-icons": "6.4.0",
54
54
  "broccoli-funnel": "^3.0.8",
55
+ "ember-auto-import": "^2.7.4",
55
56
  "ember-cli-babel": "^8.2.0",
56
57
  "ember-cli-htmlbars": "^6.3.0",
57
58
  "ember-intl": "6.3.2",
@@ -68,7 +69,6 @@
68
69
  "@glimmer/tracking": "^1.1.2",
69
70
  "broccoli-asset-rev": "^3.0.0",
70
71
  "concurrently": "^8.2.2",
71
- "ember-auto-import": "^2.6.3",
72
72
  "ember-cli": "~5.4.1",
73
73
  "ember-cli-clean-css": "^3.0.0",
74
74
  "ember-cli-dependency-checker": "^3.3.2",
@@ -0,0 +1,32 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ */
12
+ public function up(): void
13
+ {
14
+ Schema::table('solid_identities', function (Blueprint $table) {
15
+ $table->string('css_email')->nullable()->after('identifier');
16
+ $table->text('css_password')->nullable()->after('css_email');
17
+ $table->string('css_client_id')->nullable()->after('css_password');
18
+ $table->text('css_client_secret')->nullable()->after('css_client_id');
19
+ $table->string('css_client_resource_url')->nullable()->after('css_client_secret');
20
+ });
21
+ }
22
+
23
+ /**
24
+ * Reverse the migrations.
25
+ */
26
+ public function down(): void
27
+ {
28
+ Schema::table('solid_identities', function (Blueprint $table) {
29
+ $table->dropColumn(['css_email', 'css_password', 'css_client_id', 'css_client_secret', 'css_client_resource_url']);
30
+ });
31
+ }
32
+ };